CEF夏普:打印分辨率

时间:2018-01-03 09:32:44

标签: c# google-chrome chromium-embedded cefsharp

我使用CEFSharpC#的{​​{1}}包装器)将网页打印为PDF,如下所示:

CEF

然而,问题是,与在" real"中手动打印相同页面相比,生成的PDF非常模糊。 Chrome应用程序。

我做了一个比较截图,以显示差异:

enter image description here

(以全分辨率打开以注意区别)

基本上,正如您所看到的,CEF似乎比原始Chrome打印功能压缩图像和其他非矢量图形。

理想情况下,我想完全禁用压缩,或者至少让它更接近原生Chrome级别。可以吗?

还有关系:有没有办法以更高的分辨率打印? PdfPrintSettings类只接受以微米为单位的宽度和高度测量值,但我没有看到任何设置渲染定义(DPI)的方法......是否可能?

1 个答案:

答案 0 :(得分:1)

我猜图像模糊,因为PDF作为预览打印: https://bitbucket.org/chromiumembedded/cef/src/6006f77bd9e030e9b456e180798c7c13d19cae08/libcef/browser/printing/print_view_manager.cc?at=master&fileviewer=file-view-default#print_view_manager.cc-110

这是我的拉动请求,它将PDF打印添加到CEF。打印作为预览似乎对我来说足够好。它允许编写更少的代码并减少PDF打印中涉及的组件。

某些其他设置也可能会使图像模糊。例如: https://bitbucket.org/chromiumembedded/cef/annotate/6006f77bd9e030e9b456e180798c7c13d19cae08/libcef/browser/printing/print_view_manager.cc?at=master&fileviewer=file-view-default#print_view_manager.cc-50

需要一些调试。为了做到这一点,你很可能需要从源代码构建CEF: https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding

无法设置DPI,因为Chromium本身在其PDF打印对话框中没有此类设置。虽然您可以尝试在此处设置不同的DPI选项: https://bitbucket.org/chromiumembedded/cef/src/6006f77bd9e030e9b456e180798c7c13d19cae08/libcef/browser/printing/print_view_manager.cc?at=master&fileviewer=file-view-default#print_view_manager.cc-53但是Chromium可能会忽略这些设置。