添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

从android webview打印多页pdf时,pdf的第一页被打印出来了。

0 人关注

我试图打印一个有4页的PDF,我从一个URL中收到了这个文件。 但在打印管理器中只显示了pdf的第一页。 所以我在打印时得到的是一个单页。

在试图从打印管理器中保存时,第一页被保存到了设备中。 (我在代码中添加了一个演示网址)

**private void printWebView() throws UnsupportedEncodingException {
        webview= new WebView(this);
        webview.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return false;
            @Override
            public void onPageFinished(WebView view, String url) {
                PrintManager printManager= (PrintManager) getSystemService(Context.PRINT_SERVICE) ;
                String jobName = " Document1";
                PrintDocumentAdapter printAdapter = view.createPrintDocumentAdapter(jobName);
                PrintJob printJob = printManager.print(jobName, printAdapter,
                        new PrintAttributes.Builder().build());
                ArrayList<PrintJob> mPrintJobs = new ArrayList();
                mPrintJobs.add(printJob);
        String url=URLEncoder.encode("https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611_sample_explain.pdf", "utf-8");
        webview.loadUrl("http://docs.google.com/gview?embedded=true&url="+url);

如果我在webview中添加更多的设置,那么我将在一张纸上得到所有这些页面的打印结果。 我在添加设置后的Webview。

webview= new WebView(this);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setAllowFileAccessFromFileURLs(true);
webview.getSettings().setAllowUniversalAccessFromFileURLs(true);
webview.getSettings().setBuiltInZoomControls(true);
webview.getSettings().setDomStorageEnabled(true);
webview.getSettings().setLoadWithOverviewMode(true);