使用ASP .NET (C#) 产生PDF档的好帮手—iTextSharp library(上)
由於工作內容需要使用ASP .NET C#產生PDF檔,但是微軟的.NET framework 並沒有內建產生PDF 的功能,所以只能上網找Third-Party 提供的函式庫。請出Google大神幫忙,搜尋出來的結果有上萬筆,在沒有頭緒的情況下真是大海撈針。搜尋結果中有很多PDF 函式庫是要付費的,就先將它排除,我們將搜尋範圍縮小至free又能支援中文後,終於讓我找到一個很實用且容易上手的library — iTextSharp。
本函式庫原名是iText,主要是支援Java程式語言。之後針對Microsoft .NET C Sharp做了一個版本,也就是我們今天要介紹的iTextSharp。針對PDF檔案的製作與修改,支援的功能如下:
1. Create:Automate、Convert、Sign、Encrypt。
2. Read:Extract。
3. Update:Stamp、Fill out、Split/Merge、Convert、Sign、Encrypt。
接下來就讓我帶領大家一步一步用程式碼產生PDF 檔。
開發環境
1. 我的ASP .NET開發環境是Microsoft Visual Studio 2010 版,使用的程式語言是C#。
2. iTextSharp 目前版本是5.0.4,下載位置:http://sourceforge.net/projects/itextsharp/ 。請先下載zip,解壓縮後只有一個dll檔,利用Add Reference方式將itextsharp.dll 加入您微軟專案的Bin目錄中,就這麼簡單而且可以開始coding了。
Part 1:首先建立一個Web Application
在這個範例中,我們利用web application在Server Memory產生pdf 檔後,使用者可以自行下載瀏覽或存檔,採用的是PdfWriter類別:
若是要在Server FileSystem 先產生pdf檔,可以使用下列程式碼:
在PDF檔案內容中要顯示中文,最重要的是字型設定,如果沒有正確設定中文字型,會造成中文無法顯示的問題。首先設定基本字型:kaiu.ttf 是作業系統系統提供的標楷體字型,IDENTITY_H 是指編碼(The Unicode encoding with horizontal writing),及是否要將字型嵌入PDF 檔中。再來針對基本字型做變化,例如Font Size、粗體斜體以及顏色等。當然你也可以採用其他中文字體字型。
開啟檔案寫入內容後,將檔案關閉。
到此階段,您已經產生了一個可以在瀏覽器端下載的檔案(檔名為pdfExample.pdf)。執行程式結果如下:
選擇開啟舊檔,顯示如下圖:
Part 2:使用chunk、phrase及paragraph建立文字段落內容
Paragraph是文章段落,可由phrases (句子)組成,然後phrase又可以由chunks(文字片段)所組成。這樣的組成方式可以很方便的在文字段落中穿插不同的字型樣式。但要注意的是chunk不會自動換行,必須自行插入換行符號”\n” 或是使用Environment.NewLine。至於Paragraph有許多樣式可以設定,像是Alignment、indentation、leading及spacing 等。
執行結果如下:
上一篇: asp获取客户端浏览器的语言代码
下一篇: C++静态成员变量和静态成员函数使用总结