在我的应用程序中显示docx,excel,pdf文件

时间:2018-11-28 07:16:22

标签: android pdf webview document docx

我有一个Android应用,我想在其中以pdf,excel,docx,txt格式显示来自其各自Urls的文件。我可以使用外部应用程序显示这些文件,但为此,首先下载文件并将其存储在设备上,然后显示。我不想下载,我尝试使用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);

有人可以建议图书馆或解决方法来实现这一目标吗?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我认为您应该使用自定义库来完成该工作。

请参阅: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"/>

OR

请参阅:https://stackoverflow.com/a/43292083/9976418