我正在尝试将pdf文件发送到打印机
Process p = new Process( );
p.StartInfo = new ProcessStartInfo( )
{
CreateNoWindow = true,
Verb = "Print",
FileName = pdfFilePath
WindowStyle := ProcessWindowsStyle.Hidden;
UseShellExecute := true;
};
p.Start( );
但是我一直在获取“此应用程序没有与指定文件关联的应用程序”。
我正在使用Edge打开pdf文件(我也尝试将IE和Chrome设置为默认的.pdf应用程序),但是我没有安装pdf阅读器。我的问题是,是否可以仅使用默认的Windows工具将pdf文件直接发送到打印机-无需安装Acrobat Reader等。
答案 0 :(得分:1)
检查此库Spire.PDF
https://www.nuget.org/packages/Spire.PDF/
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("Sample.pdf");
//Set the printer
pdf.PrintSettings.PrinterName = "HP LasterJet P1007";
//Only print the second and fourth page
pdf.PrintSettings.SelectSomePages(new int[] { 2,4 });
//Print the pages from 1 to 15
pdf.PrintSettings.SelectPageRange(1,15);
pdf.Print();
答案 1 :(得分:0)
这是使用GemBox.Pdf的另一种方法,它也不需要安装Adobe Acrobat:
using (PdfDocument document = PdfDocument.Load(pdfFilePath))
document.Print();
以上内容将使用默认打印机和打印选项打印PDF。
但是,如果需要,您可以指定目标打印机和类似的选项:
using (var document = PdfDocument.Load(pdfFilePath))
{
var printer = "your printer's name";
var printOptions = new PrintOptions()
{
FromPage = 2,
ToPage = 4
};
document.Print(printer, printOptions);
}
您可以找到更多Print example's here。