android - 通过打印管理器打印 PDF - 打印预览与输出不匹配
问题描述
我在这里使用示例通过 Android 打印框架 打印 PDF:如何使用 Android 4.4 打印框架打印 PDF
但是,打印预览与打印输出不匹配。事实上,输出是正确的,但预览不正确。有什么办法可以纠正这个吗?
编辑:Google PDF 查看器在尝试打印 PDF 时显然正确显示了预览。是否有一些未知的方法可以让预览在打印预览中正确显示?似乎在任何地方都没有任何解决方案。
解决方案
我的建议是您想要打印的数据,通过 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());
谢谢,
推荐阅读
- git - Git Bash(Guest OS) 和 GitBash(Host OS) 显示不同的状态
- python - 内存使用:字符串列表与字符串列表
- excel - 在一系列列上使用 SUMIF 或使用 SUMPRODUCT 忽略文本项
- php - 如何在 Windows 服务器上安装 ImageMagick php 扩展以在 IIS 服务器上使用
- android - 在 Android 自定义通知视图中显示内联回复
- .htaccess - 重写规则不起作用 - 重定向到新网址
- c - 函数参数从初始化的 char* 起作用,但如果从 char[] 转换则不起作用
- javascript - 如何在长循环过程中显示 JQuery 弹出对话框(用于处理进度)
- css - 线性渐变或 calc() 在 IE11 中不起作用
- mysql - 如何修复mysql中的密码相关问题