CefGlue 静默打印为 PDF

CefGlue silent printing to PDF

我有最新的 CefGlue 版本 (3.2272.2035)

我需要将当前页面保存为 PDF。我想以某种方式与我的 CEF 交互 (JS/C#) 并让它为我创建 PDF。

  1. 我曾尝试使用 javascript.window.print() 来达到这个目的,但没有成功,因为,我所拥有的就是这样 window。

  1. 我在 CefPrintHandler 中找到了 OnPrintJob 方法,但我不知道调用它的正确方法是什么 + 评论说:"Implement this interface to handle printing on Linux" 我需要处理在 Windows 环境(x64/x86)
  2. 上打印为 pdf

任何代码示例将不胜感激。在此先感谢您的帮助。

您需要合并 this patch 并从源代码重新编译 cef;此外,您可能必须向 CefGlue 添加一些胶合逻辑。我自己测试了这个补丁(在 C++ API 上),它运行良好。

已编辑:主干中的补丁 will be merged

如果您只需要打印一些页面(特别是如果这些页面在您的控制之下),您就可以了。但是,如果您需要(就像我当时所做的那样)打印几乎所有内容,您可能会面临这样一个事实,即某些网页不会呈现任何对打印视图有用的内容。此外,即使是那些表现良好的人也与您在屏幕上看到的有很大不同——这不是 CEF 行为,因为甚至 google chrome 也显示了同样的问题。在我的应用程序中,这是不行的,所以我放弃了打印并开始捕获屏幕(并使用 C++ 中的 pdf 库将其保存为 pdf),但也许您的应用程序并不像我的那样苛刻。干杯!