【问题标题】:Print multiple PDF files without showing Printer Dialog打印多个 PDF 文件而不显示打印机对话框
【发布时间】:2011-01-05 12:26:40
【问题描述】:

我想在 Web 应用程序 ASP.Net + C# 中创建一个方法,以将 PDF 文件路径作为输入参数,然后在不显示选择打印机对话框的情况下打印所有内容,因此使用默认打印机进行打印。

【问题讨论】:

  • PDF 文件是驻留在客户端机器上还是服务器上? “Web 应用程序中的方法”是指在客户端计算机上还是在服务器上执行的方法?打印机是连接到客户端还是服务器?
  • PDF 在服务器端,打印机连接到客户端

标签: c# asp.net pdf


【解决方案1】:

您可以做的最好的事情是将 PDF 文件连接成一个文件,然后打印它,在该过程开始时显示一次打印机对话框。有许多具有此功能的商业 .NET PDF 库。

免责声明:我在 Atalasoft 工作。这是使用 DotImage 执行此操作的代码

PdfDocument.Combine("Output.pdf", "doc1.pdf", "doc2.pdf", "doc3.pdf");

http://www.atalasoft.com/products/dotimage/white-papers/building-pdf-documents-with-dotimage

【讨论】:

  • 在没有浏览器提示的情况下进行打印的唯一可能方法是制作浏览器扩展程序/插件。允许网站在没有用户交互的情况下打印是一个安全问题。如果您可以从 Web 服务器访问用户的打印机,则可以从服务器端打印而无需对话框。但是,他们需要事先在您的应用中设置打印机。
【解决方案2】:

Web 应用程序无法以静默方式打印到客户端的打印机。这将违反浏览器安全模型。浏览器和 PDF 浏览器插件必须显示一个对话框并提示用户允许打印。

【讨论】:

  • 那么有什么办法可以使用我的网络应用程序中的客户端打印机来解决这个问题
  • 如果您的服务器与客户端(Intranet 用户)在同一个 LAN 上,并且您的服务器可以访问相同的打印机 -- 那么是的,服务器可以在没有对话框的情况下打印到它。通常情况下,公共互联网不会出现这种情况,但在公司内部,这是可能的。
  • 如果您的用户愿意使用 Java 小程序,那么可以这样做。可以使小程序选择客户端的打印机,然后打印到它。但是,请考虑这方面的影响。想象一下访问某个网站,然后网页突然打印到您的打印机上,甚至没有通知您。此外,您的应用程序将如何确定要打印到哪台打印机 - 随机选择或只是第一个?这就是为什么需要用户干预的原因。这是我的Java小程序文章gnostice.com/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-18
  • 1970-01-01
  • 1970-01-01
  • 2013-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多