【问题标题】:Android Online PDF Load - Preview Not available error via Google DocAndroid Online PDF Load - Preview Not available 错误通过 Google Doc
【发布时间】:2016-12-15 06:32:09
【问题描述】:

我的应用程序的核心部分是在线加载 PDF,用户可以根据他们的给定权限进行下载。

我面临的问题是我想在线加载 pdf。经过大量研究,我发现,

在android中在线显示pdf可能有两种方式:

1) 通过加载简单的托管 URL 在 Web 视图中

2) 由谷歌文档提供。

但在我们的例子中,如果我们使用方式 (1),移动 Web 视图不会重定向 PDF 的托管 url。 如果我们使用方式(2),那么谷歌文档对文件大小有一定的限制。 (小 pdf 它会加载 5 到 10 个大小为 1MB 的文件)

但在加载大小为 2 或 3 MB 的 PDF 后,它也会给我错误“没有可用的预览”,并且在打开不同的 url 时不断给我这个错误。

因此,似乎仍然没有简单的解决方案可以从 url 查看 pdf(无需下载 pdf 在线)。

另一种在线打开 pdf 的方法是我们可以在任何其他第三方应用程序中打开它,例如浏览器、adobe pdf 阅读器或设备中可用的任何类型的 pdf 查看器应用程序。

缺点:如果我们在浏览器中打开 pdf,它将自动下载,如果我们在任何第三方应用程序中打开它,那么他们可以选择下载 pdf。

请给我一些在线阅读PDF的解决方案。

如果有任何可用的付费 pdf SDK 提供从 URL 在线加载 pdf 的功能,那么请也提供相关信息。

还请建议我一些用于在线显示 pdf 的 pdf 查看器库。

我已经使用了很多库,但它会将我的应用程序的大小增加到 8 到 10 MB。

提前致谢。

【问题讨论】:

  • 您是从 SD 卡还是从其他地方加载这些 PDF 文件?
  • @BradleyWilson 我想从托管在我们这边的 URL 加载 PDF 文件。我们要加载的文件非常安全。

标签: android pdf google-docs google-document-viewer


【解决方案1】:

建议的主要解决方案,

下载文件,将其存储在应用程序特定的文件夹中,这样用户就无法访问。对于无权下载文件的查看者,您将在他们离开视图时删除文件。对于有权下载文件的观看者,他们可以选择将文件复制到他们的 SD 卡(可访问的位置),然后您将在他们离开视图时删除原始文件。

用于存储在应用特定目录中以限制用户访问,

http://www.grokkingandroid.com/how-to-correctly-store-app-specific-files-in-android/

也可以使用库来查看pdf(简单得多),从这里选择一个合适的 https://android-arsenal.com/search?q=pdf

替代解决方案,

如果安全是一个主要问题,您可以加密 pdf 文件并将其存储在服务器上。并在将文件下载到设备时解密。

为了增加安全性,请勿将文件存储为 pdf,只需将其存储为文件即可。将其下载为文件。当你想访问它时,将类型设置为 pdf。

结论,

数据方面,即使您在线加载它,设备也会消耗与下载 pdf 几乎相同的数据。 (事实上​​,为了在线查看内容,您的设备会下载数据并将其存储在缓存中,您可以查看)

安全方面,只有 root 手机才能访问该文件,但只要您决定存储该文件,也可以访问该文件。

【讨论】:

  • 感谢您的解决方案。我已经应用了第一个解决方案,但也感谢您的替代解决方案,并想应用一次。
【解决方案2】:

我建议您查看PDF.js,这是一个来自 Mozilla 的 Javascript 库,用于在浏览器中呈现 PDF。您可以轻松地将其调整为 WebView,无需下载即可显示 PDF。

Here is an open source app which does something similar to what you're looking for

【讨论】:

    猜你喜欢
    • 2015-09-24
    • 2022-12-01
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    相关资源
    最近更新 更多