如何禁用 Chromium 中的打印对话框?

How to disable print dialog in Chromium?

有网页,有 "Print" 按钮。我使用 DCEF3 加载它。如果用户单击该按钮,将显示打印机选择对话框。我想一劳永逸地禁用打印。 我一直在尝试使用 example 传递命令行参数。 所以,我尝试了以下方法:

--disable-print-preview
--kiosk
--kiosk-printing

但其中 none 成功了。我错过了什么吗?

CEF3 不支持 "silent" 打印,即没有打印机选择对话框的打印。

你所能做的就是:

  • 打印到临时 PDF 文件,然后打印 PDF 文件。
  • 从浏览器拍摄快照并打印位图。
  • 修改 CEF3 库以隐藏打印机选择对话框。

这些函数在 CEF4Delphi or OldCEF4Delphi 中更易于使用。要打印 PDF 文件,您只需调用 TChromium.PrintToPDF 并拍摄快照,您需要调用 TChromium.TakeSnapshot

并非所有 Chromium 标志或命令行开关都受 CEF3 支持。如您所见,不支持 --kiosk 和 --kiosk-printing here.

您甚至可能需要修改该网页中的 JavaScript 代码,以使用在 CEF3 中注册的自定义 JavaScript 扩展替换 "print" 按钮功能。该扩展程序会向主浏览器进程发送一条消息,以使用您的自定义函数进行打印。