摘要:ASP.NET 轉自定內容到 PDF - 使用 iTextSharp
前一篇講到「ASP.NET 輕鬆轉 GridView 資料轉檔到 PDF - 使用 iTextSharp」,利用很簡單幾乎不用做更動的方式,就可以輕鬆的將 Gridview 資料轉到 PDF,而這一篇要說是手動的依序加入 PDF 的內容。 相關 iTextSharp 安裝及下載請參考前一篇! 題目:這次的例子是要在 PDF 裡加入幾段的英文及中文的內容,並且插入圖片到其中!我們就直接利用程式碼來做說明~ 其他要求: 先看執行的結果 首先~先在專案裡新增一個 PDFs 的目錄,目的是用來存放產出的 PDF 檔案目錄。 程式片段 ------- Protected Sub btnpdfexport_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnpdfexport.Click --20101011 updated----- QQ:換頁、換頁符號該怎麼做? A:只要在 Doc.add 串文件時,利用「doc1.NewPage()」就可以達到換頁功能的效果了! ------- 這個例子不算太難,但 iTextSharp 實際提供的功能更強,這只是很粗略的使用,下一次在來討論怎麼樣在 PDF 裡繪製表格。 ------- 範例檔案 Tutorial: ~ End
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