關於生成 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();