我是c#的新手,我在网上寻找有关如何打印pdf的教程,但没有找到。
然后我想,是否可以使用itextpdf来读取它,就像这里提到的一样:
使用itextsharp dll在VB.NET或C#中读取PDF内容
然后打印它。如果可以的话,怎么做?
我是c#的新手,我在网上寻找有关如何打印pdf的教程,但没有找到。
然后我想,是否可以使用itextpdf来读取它,就像这里提到的一样:
使用itextsharp dll在VB.NET或C#中读取PDF内容
然后打印它。如果可以的话,怎么做?
一种非常简单的方法是使用已安装的Adobe Reader或其他能够打印PDF的PDF查看器:
Process p = new Process( );
p.StartInfo = new ProcessStartInfo( )
{
CreateNoWindow = true,
Verb = "print",
FileName = path //put the correct path here
};
p.Start( );
另一种方法是使用第三方组件,例如PDFView4NET。
public static bool Print(string file, string printer) {
try {
Process.Start(
Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Microsoft\Windows\CurrentVersion" +
@"\App Paths\AcroRd32.exe").GetValue("").ToString(),
string.Format("/h /t \"{0}\" \"{1}\"", file, printer));
return true;
} catch { }
return false;
}
顺便提一下,不能仅仅依赖于方法的返回值...
另一种方法是,如果您只想以编程方式打印PDF文件,则可以使用LPR命令:
https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/lprLPR也适用于较新版本的Windows(如Vista/7),但您需要在可选的Windows组件中启用它。
例如:
Process.Start("LPR -S printerdnsalias -P raw C:\files\file.pdf");
您也可以使用打印机的IP地址代替别名。
前提是您的打印机支持PDF直接打印,否则这只适用于PostScript和ASCII文件。另外,打印机需要安装网络接口并且您需要知道它的IP地址或别名。
PdfiumViewer.Updated
的包。你仍然需要在 x64
和 x86
文件夹中放置 pdfium.dll
(参见:https://github.com/pvginkel/PdfiumBuild)。PDFiumViewer 还可以轻松控制页面方向和布局。 - clamchodahttps://www.nuget.org/packages/Spire.PDF/
PdfDocument pdfdocument = new PdfDocument();
pdfdocument.LoadFromFile(pdfPathAndFileName);
pdfdocument.PrinterName = "My Printer";
pdfdocument.PrintDocument.PrinterSettings.Copies = 2;
pdfdocument.PrintDocument.Print();
pdfdocument.Dispose();
var doc = new Vintasoft.Imaging.Print.ImagePrintDocument { DocumentName = @"C:\Test.pdf" };
doc.Print();
这只是默认打印机的简单打印方式,不会显示任何内容。有几种替代方案和选项。
自动从C#打印PDF的最佳方式是使用打印机的“直接PDF”功能。您只需将PDF文件复制到打印机的网络共享名称即可,其余操作由打印机自己处理。
速度比任何其他方法快10倍。但要求打印机型号支持直接PDF打印,并且具有至少128 MB的DRAM,这对于任何现代打印机来说都很容易达到。
我编写并发布了一个小型的Nuget包,可用于将PDF文件打印到打印机驱动程序。它还可以打印到XPS文件或PDF文件。这里是链接。
private static void ExecuteRawFilePrinter() {
Process process = new Process();
process.StartInfo.FileName = "c:\\Program Files (x86)\\RawFilePrinter\\RawFilePrinter.exe";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.StartInfo.Arguments = string.Format("-p \"c:\\Users\\Me\\Desktop\\mypdffile.pdf\" \"gdn02ptr006\"");
process.Start();
process.WaitForExit();
}
上面的代码启动了RawFilePrinter.exe(类似于2Printer.exe),但支持更好。它不是免费的,但通过捐赠可以让您在任何地方使用它,并将其与您的应用程序重新分发。下载最新版本:http://bigdotsoftware.pl/rawfileprinter
可以使用Ghostscript读取PDF文件并将其打印到指定的打印机上。