【问题标题】:Printing various pdf files with print dialog visible from asp.net使用从 asp.net 可见的打印对话框打印各种 pdf 文件
【发布时间】:2015-05-17 20:49:20
【问题描述】:
我正在一个 asp.net 项目中创建 pdf 文件,该项目存储在服务器上的一个文件夹中。当用户想要打印此文件时,我需要用户指定网络上所有标签打印机中的哪台打印机,因为它也可能包含数字激光打印机。 我已尝试创建打印过程,但这会将 pdf 文件直接发送到默认打印机。有没有办法显示打印对话框以便用户选择所需的打印机?
printjob.StartInfo.FileName = pdfFileName;<br/>
printjob.StartInfo.Verb = "Print";<br/>
printjob.StartInfo.CreateNoWindow = false;<br/>
printjob.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
PrinterSettings setting = new PrinterSettings();<br/>
printjob.Start();
【问题讨论】:
标签:
c#
asp.net
pdf
printing
【解决方案1】:
这可以通过 Spire.pdf.dll 参考来实现。
要安装这个 Open package manager 控制台并输入 Install-Package Spire.pdf。这将安装 spire.pdf。现在下面的代码将帮助您打印 pdf 文件。
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("D:\\sample.pdf");
//Use the default printer to print all the pages
//doc.PrintDocument.Print();
//Set the printer and select the pages you want to print
PrintDialog dialogPrint = new PrintDialog();
dialogPrint.AllowPrintToFile = true;
dialogPrint.AllowSomePages = true;
dialogPrint.PrinterSettings.MinimumPage = 1;
dialogPrint.PrinterSettings.MaximumPage = doc.Pages.Count;
dialogPrint.PrinterSettings.FromPage = 1;
dialogPrint.PrinterSettings.ToPage = doc.Pages.Count;
if (dialogPrint.ShowDialog() == DialogResult.OK)
{
doc.PrintFromPage = dialogPrint.PrinterSettings.FromPage;
doc.PrintToPage = dialogPrint.PrinterSettings.ToPage;
doc.PrinterName = dialogPrint.PrinterSettings.PrinterName;
PrintDocument printDoc = doc.PrintDocument;
dialogPrint.Document = printDoc;
printDoc.Print();
}