欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用ASP .NET (C#) 产生PDF档的好帮手—iTextSharp library(上)

程序员文章站 2022-09-28 17:19:47
由於工作內容需要使用ASP .NET C#產生PDF檔,但是微軟的.NET framework 並沒有內建產生PDF 的功能,所以只能上網找Third-Party 提供的函式庫。請...

由於工作內容需要使用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

 

使用ASP .NET (C#) 产生PDF档的好帮手—iTextSharp library(上)

在這個範例中,我們利用web application在Server Memory產生pdf 檔後,使用者可以自行下載瀏覽或存檔,採用的是PdfWriter類別:

使用ASP .NET (C#) 产生PDF档的好帮手—iTextSharp library(上)
若是要在Server FileSystem 先產生pdf檔,可以使用下列程式碼:

使用ASP .NET (C#) 产生PDF档的好帮手—iTextSharp library(上)
在PDF檔案內容中要顯示中文,最重要的是字型設定,如果沒有正確設定中文字型,會造成中文無法顯示的問題。首先設定基本字型:kaiu.ttf 是作業系統系統提供的標楷體字型,IDENTITY_H 是指編碼(The Unicode encoding with horizontal writing),及是否要將字型嵌入PDF 檔中。再來針對基本字型做變化,例如Font Size、粗體斜體以及顏色等。當然你也可以採用其他中文字體字型。

 

使用ASP .NET (C#) 产生PDF档的好帮手—iTextSharp library(上)

開啟檔案寫入內容後,將檔案關閉。

 

使用ASP .NET (C#) 产生PDF档的好帮手—iTextSharp library(上)

到此階段,您已經產生了一個可以在瀏覽器端下載的檔案(檔名為pdfExample.pdf)。執行程式結果如下:

 

使用ASP .NET (C#) 产生PDF档的好帮手—iTextSharp library(上)

選擇開啟舊檔,顯示如下圖:

 

使用ASP .NET (C#) 产生PDF档的好帮手—iTextSharp library(上)

Part 2:使用chunk、phrase及paragraph建立文字段落內容

 Paragraph是文章段落,可由phrases (句子)組成,然後phrase又可以由chunks(文字片段)所組成。這樣的組成方式可以很方便的在文字段落中穿插不同的字型樣式。但要注意的是chunk不會自動換行,必須自行插入換行符號”\n” 或是使用Environment.NewLine。至於Paragraph有許多樣式可以設定,像是Alignment、indentation、leading及spacing 等。


 

使用ASP .NET (C#) 产生PDF档的好帮手—iTextSharp library(上)
 使用ASP .NET (C#) 产生PDF档的好帮手—iTextSharp library(上)

執行結果如下:

 

 

使用ASP .NET (C#) 产生PDF档的好帮手—iTextSharp library(上)