0

我想使用 C# 打印网页而不显示打印机对话框。我想提供 url,它应该打印显示的页面。目前我的代码正在打印 HTML 代码。请指导我这样做。

4

2 回答 2

0

我通过这些线路成功地做到了这一点。但问题是这只打印到默认打印机。我知道要设置默认打印机,但我正在寻找传递打印机名称并打印网页而不先将其设置为默认打印机的解决方案。

ie.Navigate(URL, ref missing, ref missing, ref missing, ref missing);
while (!documentLoaded && ie.QueryStatusWB(OLECMDID.OLECMDID_PRINT) != OLECMDF.OLECMDF_ENABLED)
    ie.ExecWB(OLECMDID.OLECMDID_PRINT, OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, ref missing, ref missing);
于 2019-02-24T00:50:39.570 回答
0

这听起来比它更棘手(很可能)。我的理解是,您需要某种引擎来翻译所有网页的样式、布局和绘画。就在渲染之后,最终结果是什么。记住这一点会立即出现一件事:浏览器自动化,特别是 - selenium 可以完成这项工作。由于您在没有显示打印机对话框的情况下询问,您可以在无头模式下运行 我认为您最好的选择是通过 js.ExecuteScript("setTimeout(window.print, 5);");参考)加载打印预览页面 ,然后仔细找到等待处理程序的打印按钮。

PS。我不相信这是最干净和最简单的解决方案,但它是我目前唯一能想到的。

于 2019-02-15T11:10:07.760 回答