我试图打印一个有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);