天天看點

iTextSharp快速使用指南前言iTextSharp開發步驟iTextSharp畫圖總結

最近公司一直使用iText開發PDF報表,使用一段時間之後發現iText這個類庫雖然是龐大無比,但作為程式猿我們不需要知道所有的類和方法,我們隻需要知道如何使用即可。

是以這篇文章就是告訴大家如何快速的使用iTextSharp(iText .net版本)進行開發。

快速開發之前,我們先了解以下4個類:

          class 所代表的含義

Paragraph 報表中的文本

Image 報表中的圖檔

PdfPTable 表格

PdfPCell 單元格

知道這4個類之後就是開發的步驟了:

1. 往單元格PdfPCell類中添加内容。

2.将單元格PdfPCell添加到PdfPTable。

3.将表格PdfPTable添加到Document。

在以上的步驟中最重要的就是第一步也就是往PdfPCell中添加内容,而PdfPCell中的内容又可以分為以下三種情況:

文本 Paragraph

圖檔 Image

表格 PdfPTable

iTextSharp快速使用指南前言iTextSharp開發步驟iTextSharp畫圖總結

文本由Paragraph來表示,在添加之前還要注意一下字型的問題,因為我們用的是中文字型,如果用預設英文字型渲染則會亂碼,是以我們要先定義中文字型:

字型定義完之後下面就添加文本:

其實添加很簡單,就是最上面兩行代碼,而對PdfPCell屬性設定的代碼一般會比較多,因為我們一般要設定其背景色,水準對其,還有邊框Border等。

在大家了解怎麼往PdfPCell添加完文本之後,添加圖檔和表格就簡單很多了,就是将Image和PdfPTable作為PdfPCell的構造器參數傳入即可:

以下就是效果圖:

iTextSharp快速使用指南前言iTextSharp開發步驟iTextSharp畫圖總結

通過以上PdfPCell的操作,大家就可以實作一些比較常見的PDF報表,現在我們更進一步實作一下的效果:

iTextSharp快速使用指南前言iTextSharp開發步驟iTextSharp畫圖總結

這裡就必須用到畫圖,畫圖用的就是PdfContentByte類,這個就類似于畫闆,我們可以直接在上面畫直線和文本:

這裡要注意的是,無論是畫線還是文本我們都需要坐标,而且在畫線的時候,要将具體的代碼放在SaveState和RestoreState中間,這樣就不會導緻畫圖狀态的紊亂。

如果我們希望将上圖畫在一個單元格中,但我們知道畫圖需要坐标,而在PdfPCell中是坐标沒有暴露出來,是以這裡我們需要iTextSharp中的接口:IPdfPCellEvent

這個接口的意思就是在單元格添加到文檔之後暴露的方法。很明顯,通過postion參數我們可以擷取坐标,canvases參數可以擷取畫闆。

是以要畫圖就建立一個實作接口IPdfPCellEvent的類,然後在CellLayout方法中畫線和文本:

最後将這個類和對應的PdfPCell關聯起來:

iTextSharp快速使用指南前言iTextSharp開發步驟iTextSharp畫圖總結

繼續閱讀