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

时间:2011-06-24 15:28:21

标签: c# asp.net pdf

我正在尝试从文件中静默打印PDF。我已经尝试过网上其他帖子提出的大量建议,但似乎都没有。这样做的最佳方式是什么?

如果从文件打印是个问题,我可以直接从MemoryStream打印。我最初使用库从HTML转换为PDF。这使PDF完全符合我的要求。

4 个答案:

答案 0 :(得分:1)

过去我曾使用Foxit来做这件事。在这里查看我的问题/解决方案:Printing a PDF Silently with Adobe Acrobat

答案 1 :(得分:1)

如果您尝试让客户端浏览器自动从链接发送pdf到本地打印机,那么您运气不好。这个星球上没有可以让你这么做的浏览器。

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

答案 2 :(得分:1)

我使用了这个solution

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);可以更改false参数,例如PdfAction.JavaScript("this.print(false);\r", writer);

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

答案 3 :(得分:0)

隐藏打印对话框时,您可以try Aspose.Pdf.kit to print the PDF file使用物理或虚拟打印机。要隐藏打印对话框,您只需要set PrintPageDialog property to false

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