首页 > 解决方案 > 通过打印管理器打印 PDF - 打印预览与输出不匹配

问题描述

我在这里使用示例通过 Android 打印框架 打印 PDF:如何使用 Android 4.4 打印框架打印 PDF

但是,打印预览与打印输出不匹配。事实上,输出是正确的,但预览不正确。有什么办法可以纠正这个吗?

编辑:Google PDF 查看器在尝试打印 PDF 时显然正确显示了预览。是否有一些未知的方法可以让预览在打印预览中正确显示?似乎在任何地方都没有任何解决方案。

标签: androidpdfandroid-print-framework

解决方案


我的建议是您想要打印的数据,通过 webview 加载并使用 PrintManager 使用 webview 适配器打印该数据

我们有 Printmanager https://developer.android.com/reference/android/print/PrintManager并打印数据,这个管理器需要 printadapter,它将从 webview createPrintDocumentAdapter

PrintManager printManager = (PrintManager)getSystemService(Context.PRINT_SERVICE);
PrintDocumentAdapter printAdapter;
if(android.os.Build.VERSION.SDK_INT >= 21){
    printAdapter = webView.createPrintDocumentAdapter(jobName);
}else{
    printAdapter = webView.createPrintDocumentAdapter();
}
PrintAttributes.Builder builder = new PrintAttributes.Builder();
builder.setMinMargins(PrintAttributes.Margins.NO_MARGINS);
builder.setMediaSize(PrintAttributes.MediaSize.ISO_A4);
File filePdf = new File(pathAndJobName);
printManager.print(filePdf.getName(), printAdapter, builder.build());

谢谢,


推荐阅读