【问题标题】:CefGlue silent printing to PDFCefGlue 静默打印到 PDF
【发布时间】:2015-06-07 16:31:59
【问题描述】:

我有最新的 CefGlue 版本 (3.2272.2035)

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

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

  1. 我在 CefPrintHandler 中找到了 OnPrintJob 方法,但我不知道调用它的正确方法是什么 + cmets 说:“实现此接口以在 Linux 上处理打印” 我需要在 Windows 环境(x64/x86)上处理打印到 pdf

任何代码示例都将不胜感激。提前感谢您的帮助。

【问题讨论】:

  • There is a patch 可以打印到 PDF,但它不在当前的 CEF 主干中(因此不在 CefGlue 中)。您必须重新编译两者才能使用它

标签: javascript c# pdf-generation chromium-embedded cefglue


【解决方案1】:

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

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

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

【讨论】:

  • 我没有使用 C++ 编码的经验,因此重新编译源代码并向 CefGlue 添加逻辑对我来说并非易事。现在我们使用SelectPdf 库从HTML 生成pdf。它简单、免费,可以满足我们目前所需的一切。
  • 我会在 cef 论坛上询问要合并的补丁。由于 cef 维护者知道该补丁,我相信他不会看到合并到主干中的问题。至少以这种方式,该功能最终将在未来可用。
  • 维护者确认它最终会被合并。
  • 非常感谢!我希望它很快就会出现在 CefGlue 中!
猜你喜欢
  • 2015-01-27
  • 2011-05-28
  • 2010-11-27
  • 2010-11-01
  • 1970-01-01
  • 2017-05-24
  • 2012-12-17
  • 1970-01-01
相关资源
最近更新 更多