Android在线PDF加载 - 通过Google文档预览不可用错误

时间:2016-12-15 06:32:10

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

我的应用程序的核心部分是在线加载PDF,用户可以根据自己的权限下载它。

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

在android中有两种方法可以在线显示pdf:

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

2)通过谷歌文档。

但在我们的案例中,如果我们使用方式(1),移动网络视图不会重定向PDF的托管网址。 如果我们使用方式(2),那么谷歌文档有关文件大小的某些限制。 (小pdf它将加载5到10,大小为1MB)

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

因此,似乎仍然没有简单的解决方案来从网址查看pdf(在线而不下载pdf)。

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

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

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

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

还请向我推荐一些用于在线显示pdf的pdf查看器库。

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

建议的主要解决方案

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

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

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

还可以使用库查看pdf(MUCH SIMPLER),从此处选择合适的库 https://android-arsenal.com/search?q=pdf

替代解决方案

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

为了增加安全性,请不要将文件存储为pdf,只需将其存储为文件即可。将其下载为文件。如果要访问它,请将类型设置为pdf。

<强>结论

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

安全方面,只有根电话才能访问该文件,但只要您决定存储它。

答案 1 :(得分:0)

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

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