在我的应用程序中显示 docx、excel、pdf 文件
Posted
技术标签:
【中文标题】在我的应用程序中显示 docx、excel、pdf 文件【英文标题】:Displaying docx, excel, pdf files within my app 【发布时间】:2019-04-30 01:00:22 【问题描述】:我有一个 android 应用程序,我想在其中显示来自其各自 URL 的 pdf、excel、docx、txt 格式的文件。我可以使用外部应用程序显示这些文件,但为此,文件首先下载并存储在设备上,然后再显示。我不想下载,我尝试使用 Google 文档查看器在 WebView 中显示文件,但由于文件是私有的,它们不会显示。我尝试过类似以下的方法:-
mDocumentUrl = mIntent.getStringExtra(Constant.DOCUMENT_URL);
wvDocumentReader.getSettings().setjavascriptEnabled(true);
wvDocumentReader.setWebViewClient(new WebViewClient()
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon)
super.onPageStarted(view, url, favicon);
wvProgressBar.setVisibility(View.VISIBLE);
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request)
view.loadUrl(request.getUrl().toString());
return true;
@Override
public void onPageFinished(WebView view, String url)
super.onPageFinished(view, url);
wvProgressBar.setVisibility(View.GONE);
);
wvDocumentReader.loadUrl("http://docs.google.com/gview?embedded=true&url="+ mDocumentUrl);
任何人都可以建议一个库或解决方法来实现这一点吗?任何帮助表示赞赏。
【问题讨论】:
当然不能显示私人文件。这不应该工作,这是一件好事! @finki 当然。我们还有一个 ios 应用程序,其中文档链接在 WebView 中打开,但在显示它之前,仅在成功登录时才要求登录,然后显示文档。现在,Android WebView 要求登录,成功登录后,文档将下载到设备。我试图避免下载 How to open/display documents(.pdf, .doc) without external app?的可能重复 @MahendraGohil 我在我的问题中提到了同样的问题,我已经尝试过该问题中给出的答案。但我的文件是私密的,因此无法使用。 【参考方案1】:我认为您应该使用自定义库来完成这项工作。
见:https://github.com/googlesamples/android-PdfRendererBasic
还有另一种无需调用其他应用程序即可显示 PDF 的方法
这是一种在 android 应用程序中显示 PDF 的方法,该应用程序使用 http://docs.google.com/viewer 的支持将 PDF 文档嵌入到 android webview 中
伪
String doc="<iframe src='http://docs.google.com/viewer?url=+location to your PDF File+'
width='100%' height='100%'
style='border: none;'></iframe>";
示例如下所示
String doc="<iframe src='http://docs.google.com/viewer?url=http://www.iasted.org/conferences/formatting/presentations-tips.ppt&embedded=true'
width='100%' height='100%'
style='border: none;'></iframe>";
代码
WebView wv = (WebView)findViewById(R.id.webView);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setPluginsEnabled(true);
wv.getSettings().setAllowFileAccess(true);
wv.loadUrl(doc);
//wv.loadData( doc, "text/html", "UTF-8");
并在清单中提供
<uses-permission android:name="android.permission.INTERNET"/>
或
看到这个:https://***.com/a/43292083/9976418
【讨论】:
感谢您的回复。这是否也显示其他文件格式?以上是关于在我的应用程序中显示 docx、excel、pdf 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ruby on rails 中显示 Datatable 表格工具(复制、csv、excel、pdf、保存)