在没有 pdf 的应用程序中显示 pdf reader
Display pdf inside app without pdf reader
我的目标是在表单内查看 pdf,就像浏览器组件在表单内显示的方式一样。我已经尝试了 here 中的代码,但它在外部 pdf reader 中打开了 pdf。我的目标是在应用程序中显示 pdf 内容。所以我认为我要么必须在浏览器组件内显示 pdf,要么集成外部 pdf reader api 以在表单内打开 pdf。现在,我需要以下任一方面的帮助:
- 如何在浏览器组件中显示 pdf
或者
- 是否有 pdf reader api 可以集成到我的应用程序中,以便 pdf 在表单或容器中打开?
在html中,“object”标签可以让您在支持该标签的浏览器中轻松查看pdf。不幸的是,在桌面浏览器中可以毫无问题地显示带有对象标签的 pdf,而在本机应用程序中它不起作用:特别是 Android 10 根本不支持它(它将显示白色屏幕),而 iOS 13 部分支持它,仅显示第一页并将其拉伸到屏幕大小而不考虑 pdf 页面的比例(不允许转到下一页)。
幸运的是,有一个折衷的解决方案在 Android 和 iOS 上都能很好地工作,尽管有一些差异。如果启用了 CEF (https://www.codenameone.com/blog/big-changes-jcef.html),它也可以在模拟器中使用。
这是一个示例代码。请注意,您无需登录 Google,但有使用限制 (Reaching the bandwidth limit for viewing pdf files in WebView through Google docs):
String pdfUrl = "https://www.galgani.it/pdf/linguaggi_programmazione.pdf";
Form hi = new Form("PDF Viewer", new BorderLayout());
BrowserComponent browser = new BrowserComponent();
browser.setURL("https://docs.google.com/viewer?url=" + pdfUrl);
hi.add(BorderLayout.CENTER, browser);
hi.show();
如果您不想陷入 Google 的鸟笼及其使用限制,那么您可以使用此 javascript 实施您自己的 cross-platform 解决方案:https://mozilla.github.io/pdf.js/
最后,您可以使用本机界面来使用 third-party 库来查看 pdf,但这是最复杂的情况。有商业解决方案,但我不想向任何人做广告。
我的目标是在表单内查看 pdf,就像浏览器组件在表单内显示的方式一样。我已经尝试了 here 中的代码,但它在外部 pdf reader 中打开了 pdf。我的目标是在应用程序中显示 pdf 内容。所以我认为我要么必须在浏览器组件内显示 pdf,要么集成外部 pdf reader api 以在表单内打开 pdf。现在,我需要以下任一方面的帮助:
- 如何在浏览器组件中显示 pdf 或者
- 是否有 pdf reader api 可以集成到我的应用程序中,以便 pdf 在表单或容器中打开?
在html中,“object”标签可以让您在支持该标签的浏览器中轻松查看pdf。不幸的是,在桌面浏览器中可以毫无问题地显示带有对象标签的 pdf,而在本机应用程序中它不起作用:特别是 Android 10 根本不支持它(它将显示白色屏幕),而 iOS 13 部分支持它,仅显示第一页并将其拉伸到屏幕大小而不考虑 pdf 页面的比例(不允许转到下一页)。
幸运的是,有一个折衷的解决方案在 Android 和 iOS 上都能很好地工作,尽管有一些差异。如果启用了 CEF (https://www.codenameone.com/blog/big-changes-jcef.html),它也可以在模拟器中使用。
这是一个示例代码。请注意,您无需登录 Google,但有使用限制 (Reaching the bandwidth limit for viewing pdf files in WebView through Google docs):
String pdfUrl = "https://www.galgani.it/pdf/linguaggi_programmazione.pdf";
Form hi = new Form("PDF Viewer", new BorderLayout());
BrowserComponent browser = new BrowserComponent();
browser.setURL("https://docs.google.com/viewer?url=" + pdfUrl);
hi.add(BorderLayout.CENTER, browser);
hi.show();
如果您不想陷入 Google 的鸟笼及其使用限制,那么您可以使用此 javascript 实施您自己的 cross-platform 解决方案:https://mozilla.github.io/pdf.js/
最后,您可以使用本机界面来使用 third-party 库来查看 pdf,但这是最复杂的情况。有商业解决方案,但我不想向任何人做广告。