如何在没有使用 Google 文档或 Google 云端硬盘的情况下从 URL 打开 PDF?

4

我是一名新手安卓开发者。

我试图在webview中从url打开PDF文件。对于小的PDF文件,它可以正常工作,但如果我从服务器接收到大的PDF文件,则会出现错误:

(无法预览)。

我希望仅以查看模式显示来自服务器的PDF文件,并且用户不应下载,返回后还需要清除缓存。以下是我用于打开来自服务器的PDF文件的代码:

enter image description here

代码:

webview.getSettings().setJavaScriptEnabled(true);

webview.getSettings().setPluginState(WebSettings.PluginState.ON);

webview.setWebViewClient(new Callback());

webview.loadUrl("http://docs.google.com/gview?embedded=true&url=" + pdfUrl);
3个回答

4

使用这个

private String showPdf(String url) {
     String googleDocsUrl = "http://docs.google.com/viewer?embedded=true&url=";
     return googleDocsUrl+Uri.encode(url);
}

如果仍然无法访问,可能是因为该URL位于私有服务器上。

谢谢您回复。但我仍然遇到相同的错误。请查看附加的屏幕截图。我的PDF大约有40-50页。 - Shaan

2
void showWebView(){ 
    webview.setWebViewClient(new MyBrowser());
    webview.getSettings().setJavaScriptEnabled(true);
    webview.getSettings().setBuiltInZoomControls(false);
    webview.getSettings().setSupportZoom(true);
    webview.loadUrl("https://docs.google.com/viewer?url=" + your_url+ "&embedded=true");
}

private class MyBrowser extends WebViewClient {

    @Override
    public void onUnhandledKeyEvent(WebView view, KeyEvent ke) {

        Log.e("Unhandled Key Event", ke.toString());
        //mProg.cancel();

    }

    @Override
    public void onPageFinished(WebView view, String url) {

        //mProg.cancel();
        super.onPageFinished(view, url);
        wv_webview_content.loadUrl("javascript:(function() { " +
                "document.getElementsByClassName('ndfHFb-c4YZDc-GSQQnc-LgbsSe ndfHFb-c4YZDc-to915-LgbsSe VIpgJd-TzA9Ye-eEGnhe ndfHFb-c4YZDc-LgbsSe')[0].style.display='none'; })()");
    }

}

0

试一下

webView.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=https://sherlock-holm.es/stories/pdf/a4/1-sided/advs.pdf");  

将此网址 https://sherlock-holm.es/stories/pdf/a4/1-sided/advs.pdf 替换为您的网址。如果仍无法正常工作,请检查您的PDF文件。


谢谢您的回复。但我仍然遇到相同的错误。请查看附加的屏幕截图。我的PDF大约有40-50页。 - Shaan
那种URL格式现在似乎不起作用了。请尝试使用https://docs.google.com/viewer?url=https://sherlock-holm.es/stories/pdf/a4/1-sided/advs.pdf - murkle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接