大家使用iTextSharp的機緣都不太一樣, 由於單位Crystal Report的License數量有限主管要我去找一個免費產生PDF方法, 避免Crystal Report的License使用過多, 於是乎就找上了iTextSharp.
Crystal Report 與 iTextSharp比較表
| Crystal Report | iTextSharp |
視覺化界面 | YES | NO |
轉換成PDF | YES | YES |
費用 | YES | NO |
第一次總是特別辛苦的, 為了畫出一張收據, 沒有視覺化界面的幫忙, 透過大腦的想像, 終於完成了任務, 但是對於使用Crystal Report的老手們, 應該相當不習慣, 因為看不見畫的東西, 對他們是不方便的, 但可以省錢, 我想老闆不會說不, 最後我把我學習的成果做成一個範例.
請記得先去網站下載iTextSharp.dll這個檔案加入參考
02 | using System.Collections.Generic; |
06 | using System.Web.UI.WebControls; |
09 | using iTextSharp.text.pdf; |
11 | public partial class _Default : System.Web.UI.Page |
13 | protected void Page_Load( object sender, EventArgs e) |
16 | Document Doc= new Document(); |
18 | MemoryStream Memory= new MemoryStream(); |
20 | PdfWriter PdfWriter = PdfWriter.GetInstance(Doc, Memory); |
23 | string FontPath = Server.MapPath( "kaiu.ttf" ); |
25 | BaseFont bfChinese = BaseFont.CreateFont(FontPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); |
27 | Font ChFont = new Font(bfChinese, 9); |
33 | iTextSharp.text.Table Tb = new iTextSharp.text.Table(4,5); |
37 | Tb.AutoFillEmptyCells = true ; |
40 | Paragraph Title = new Paragraph( "iTextSharp畫表格測試" , ChFont); |
42 | Title.SetAlignment( "center" ); |
45 | iTextSharp.text.Cell Tc; |
46 | Tc= new iTextSharp.text.Cell( new Phrase( "點部落" ,ChFont)); |
48 | Tc.HorizontalAlignment = Element.ALIGN_CENTER; |
50 | Tc.VerticalAlignment = Element.ALIGN_TOP; |
57 | Tc = new iTextSharp.text.Cell( new Phrase( "www.dotblogs.com.tw" , ChFont)); |
59 | Tc.HorizontalAlignment = Element.ALIGN_CENTER; |
61 | Tc.VerticalAlignment = Element.ALIGN_TOP; |
86 | Response.AddHeader( "Content-Disposition" , "attachment; filename=pdfExample.pdf" ); |
87 | Response.ContentType = "application/octet-stream" ; |
89 | Response.OutputStream.Write(Memory.GetBuffer(), 0, Memory.GetBuffer().Length); |
90 | Response.OutputStream.Flush(); |
91 | Response.OutputStream.Close(); |
厲害喔!
回覆刪除加油!!!
^_^