是否可以在未安装Adobe的情况下打印pdf文件

时间:2019-12-27 09:32:50

标签: c# pdf

我正在尝试将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等。

2 个答案:

答案 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