【问题标题】:Print Web Page without showing Print Dialog打印网页而不显示打印对话框
【发布时间】:2019-06-18 15:51:53
【问题描述】:

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

【问题讨论】:

  • 简单地说:如果你想显示一个 html 页面(或打印时与显示的外观相同),你需要一个 Web 浏览器,而不是 C#。或者您需要从 C# 调用浏览器。
  • 感谢您的回复。
  • 对,我需要指导从 C# 调用浏览器来打印显示的网页。
  • 有帮助吗?
  • @AdeelKamran 到目前为止你取得了什么进展?

标签: c# printing webpage system.printing


【解决方案1】:

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

PS。我不认为这是目前最干净、最简单的解决方案,但这是我目前能想到的唯一解决方案。

【讨论】:

  • 谢谢,我会这样检查
【解决方案2】:

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

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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多