Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无提示打印到PDF_Javascript_C#_Pdf Generation_Chromium Embedded_Cefglue - Fatal编程技术网

Javascript 无提示打印到PDF

Javascript 无提示打印到PDF,javascript,c#,pdf-generation,chromium-embedded,cefglue,Javascript,C#,Pdf Generation,Chromium Embedded,Cefglue,我有最新版本(3.2272.2035) 我需要将当前页面保存为PDF。我想以某种方式与我的CEF(JS/C#)交互,并让它为我创建PDF 我曾尝试使用javascript.window.print()实现这一目的,但没有成功,因为我所拥有的只是这样一个窗口 我在CefPrintHandler中找到了OnPrintJob方法,但我不知道如何正确地调用它+注释说:“实现此接口以在Linux上处理打印” 我还需要在Windows环境(x64/x86)上处理打印到pdf的操作 任何代码示例都将不胜感激

我有最新版本(3.2272.2035)

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

  • 我曾尝试使用javascript.window.print()实现这一目的,但没有成功,因为我所拥有的只是这样一个窗口

  • 我在CefPrintHandler中找到了OnPrintJob方法,但我不知道如何正确地调用它+注释说:“实现此接口以在Linux上处理打印” 我还需要在Windows环境(x64/x86)上处理打印到pdf的操作
  • 任何代码示例都将不胜感激。提前感谢您的帮助

    您需要从源代码合并并重新编译cef;此外,您可能需要向CefGlue添加一些胶水逻辑。我自己测试了补丁(在C++ API上),它工作得很好。p> 编辑:主干中的补丁


    如果您只需要打印一些页面(特别是在这些页面由您控制的情况下),您就可以完成。但是,如果您需要(正如我当时所做的那样)打印几乎所有内容,您可能会面临这样一个事实,即某些web页面不会呈现任何对打印视图有用的内容。而且,即使是那些表现良好的人也与你在屏幕上看到的有很大的不同——这不是CEF的行为,就连谷歌chrome也出现了同样的问题。在我的应用程序中,这是不可能的,所以我放弃了打印,开始捕获屏幕(并使用C++中的pdf库实现了将屏幕保存为pdf),但也许您的应用程序不像我的应用程序那样要求很高。干杯

    这样就可以打印到PDF,但它不在当前的CEF主干中(所以也不在CEFLUE中)。您必须重新编译,以使用C++没有编码经验,因此,重新编译源代码并添加逻辑到CEFCUE将是微不足道的。目前,我们正在使用库从HTML生成pdf。它简单、免费,并且执行我们现在需要的所有操作。我将在cef论坛上请求合并补丁。正如cef的维护人员所知道的那个样,我相信他将不会在主干中看到任何问题。至少通过这种方式,该功能将在将来可用。维护人员确认它最终将被合并。非常感谢!我希望它很快就会在我的办公室里!