5

我有最新的 CefGlue 版本(3.2272.2035)

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

  1. 我试图为此目的使用 javascript.window.print() 没有成功,因为我所拥有的就是这样的窗口。

在此处输入图像描述

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

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

4

1 回答 1

1

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

已编辑:补丁将合并到主干中。

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

于 2015-05-26T21:01:11.710 回答