从.NET应用程序以静默方式打印PDF文件

本文关键字:式打印 PDF 文件 静默 NET 应用程序 | 更新日期: 2023-09-27 18:00:11

我正在尝试从文件中以静默方式打印PDF。我尝试了许多来自网络上其他帖子的建议,但似乎都不起作用。做这件事最好的方法是什么?

如果从文件打印是个问题,我可以直接从MemoryStream打印。我最初使用库将HTML转换为PDF。这将按照我想要的方式呈现PDF。

从.NET应用程序以静默方式打印PDF文件

我过去曾使用过Foxit。在这里查看我的问题/解决方案:使用Adobe Acrobat 安静地打印PDF

如果你试图让客户端浏览器自动将pdf从链接发送到本地打印机,那么你就倒霉了。这个星球上没有一个浏览器可以让你这么做。

如果您试图通过服务器自己的打印机驱动程序将文件发送到服务器本地的打印机,请参阅Cole W的答案。

我使用了这个解决方案。

Document pdf = new Document(PageSize.LETTER);
PdfWriter writer = PdfWriter.GetInstance(pdf, 
new FileStream(Request.PhysicalApplicationPath + "~1.pdf", FileMode.Create));
pdf.Open();
//This action leads directly to printer dialogue
PdfAction jAction = PdfAction.JavaScript("this.print(true);'r", writer);
writer.AddJavaScript(jAction);
pdf.Add(new Paragraph("My first PDF on line"));
pdf.Close();
//Open the pdf in the frame
frame1.Attributes["src"] = "~1.pdf";

PdfAction.JavaScript("this.print(true);'r", writer);可以通过发送类似PdfAction.JavaScript("this.print(false);'r", writer);false参数来更改

我还没有尝试过,但可能是一种方法。

您可以尝试Aspose.Pdf.kit将Pdf文件打印到物理或虚拟打印机,同时隐藏打印对话框。为了隐藏打印对话框,您只需要将PrintPageDialog属性设置为false。

披露:我在Aspose担任开发人员宣传员。