ASP.NET 轉自定內容到 PDF - 使用 iTextSharp

摘要:ASP.NET 轉自定內容到 PDF - 使用 iTextSharp

 前一篇講到「ASP.NET 輕鬆轉 GridView 資料轉檔到 PDF - 使用 iTextSharp」,利用很簡單幾乎不用做更動的方式,就可以輕鬆的將 Gridview 資料轉到 PDF,而這一篇要說是手動的依序加入 PDF 的內容。

相關 iTextSharp 安裝及下載請參考前一篇!

題目:這次的例子是要在 PDF 裡加入幾段的英文及中文的內容,並且插入圖片到其中!我們就直接利用程式碼來做說明~

其他要求:

  1. 選用特定中文字
  2. 設定檔案輸出的目錄

先看執行的結果

首先~先在專案裡新增一個 PDFs 的目錄,目的是用來存放產出的 PDF 檔案目錄。

程式片段

-------

 

Protected Sub btnpdfexport_Click(ByVal sender As ObjectByVal e As EventArgs) Handles btnpdfexport.Click
   Dim doc1 As Document = New Document 
宣告 Document 文件
   Dim path As String = Server.MapPath("PDFs"
預設檔案存放的路徑
   Dim filename As String = "test" 
檔案名稱
   Dim para1 As String = "AAAAAAAAAAAA" + vbCrLf + "BBBBBBBBBBBB" + vbCrLf + "CCCCCCCCCC" 文字段落1。要跳行要用 vbCrLf 
   Dim para2 As String = "我是中文字~大家好....." + vbCrLf + "我是中文字~大家好....." 文字段落2
   PdfWriter.GetInstance(doc1, New FileStream(path + "/" + doi + ".pdf", FileMode.Create))
   doc1.Open()
開啟文件
   Dim jpgx As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(path + "/photo.jpg"
宣告要插入的圖片檔案
   Dim fontpath As String = Environment.GetFolderPath(Environment.SpecialFolder.System) + "\..\Fonts\dft_yf3.ttc"
設定選用文字樣式的檔案
   FontFactory.Register(fontpath) 登記文字樣式路徑
   Dim fontchinese As Font = FontFactory.GetFont("
華康雅風體W3(P)", BaseFont.IDENTITY_H, 16.0F) 宣告文字樣式。請注意這邊所使用的字型名稱,必須跟前面宣告使用的字型檔同一個,才能正常顯示中文,不然你只會得到「……」。並且如果字型檔描述該有 W3(P) 之類的也必須加入,少了一樣中文字會出不來。
   Dim content As iTextSharp.text.Paragraph = New iTextSharp.text.Paragraph("" + filename + vbCrLf + para1 + vbCr + para2 + vbCrLf, fontchinese) 
將文字段落串起來,並設定文字樣式
   doc1.Add(jpgx)
 ‘插入 JPG/GIF 圖片
   doc1.Add(content)
 ‘插入文字段落內容
   doc1.Close() 
‘ 關閉輸出文件
   Response.Redirect("~/PDFs/" + filename + ".pdf"
‘ 利用 response.redirect 開始剛剛存的 PDF 檔案,若無此行則單純存入不會直接顯示文件內容
End Sub

--20101011 updated-----

QQ:換頁、換頁符號該怎麼做?

A:只要在 Doc.add 串文件時,利用「doc1.NewPage()」就可以達到換頁功能的效果了!

-------

這個例子不算太難,但 iTextSharp 實際提供的功能更強,這只是很粗略的使用,下一次在來討論怎麼樣在 PDF 裡繪製表格。

-------

範例檔案 Tutorial:

 

 

~ End