.NET 操作PDF文档以及PDF文件打印摸索总结
关于生成 PDF 的操作,相信大家的在实际的工作过程中难免会碰到。以前我们通过生成 word 文档来进行文件的打印,但是由于太过依赖 office 软件,因此尝试能不能使用 PDF 进行文件打印。
在整理资料过程中碰到了最麻烦的问题不是文档生成,而是PDF文件的打印问题。
关于 PDF 的组件网上有很多:
1、Spire.Pdf 功能强大的PDF生成组件,同时又收费版本。
2、PDFsharp
1.可以使用任何.NET编程语言动态创建PDF文档
2.很容易使用对象模型来构建文档
3.全部用C#重写设计和编写代码
4.可以生成PDF文件和显示在窗体或者打印,都使用同一源文件
5.可以修改、合并或者分割PDF文件
6.可以控制图片的透明度,嵌入了字体
3、iTextSharp 比较常用的
相当于 Java 版的 iText,缺点是没办法打印。
重点说一下对于 PDF 的打印。
在 stackoverflow 上搜索:c# print pdf
http://stackoverflow.com/questions/5566186/print-pdf-in-c-sharp
方法一:
Process p = new Process( ); p.StartInfo = new ProcessStartInfo( ) { CreateNoWindow = true, Verb = "print", FileName = path //put the correct path here }; p.Start( );
问题:需要设置默认的PDF阅读软件才可以。
方法二:
有一个 LPR 的组件,需要在控制面板添加应用程序,太麻烦,不推荐使用。
Process.Start("LPR -S printerdnsalias -P raw C:\files\file.pdf");
方法三:
一些第三方组件(都是收费的)
最后有一招管用(Spire.PDF):
有对应的免费版,可以使用。
https://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();
.......................................this is a good man