通过打印管理器打印 PDF - 打印预览与输出不匹配

问题描述 投票:0回答:2

我使用此处的示例通过 Android 打印框架打印 PDF: 如何使用Android 4.4打印框架打印PDF

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

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

android pdf android-print-framework
2个回答
1
投票

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

我们有 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());

谢谢,


0
投票

任何更新我也面临同样的问题,有些pdf工作正常,有些没有pdf文件中的所有数据出现,有什么解决方案吗?

© www.soinside.com 2019 - 2024. All rights reserved.