天天看點

實戰 iTextSharp

iTextSharp 是用來生成  PDF 的一個元件,在 1998 年夏天的時候,Bruno Lowagie ,iText 的創作者,參與了學校的一個項目,當時使用 HTML 來生成報告,但是,使用 HTML 列印的效果很不理想。最後,他發現,使用 PDF 可以完美解決列印問題,為了能夠在各個系統中使用,iText 元件庫誕生了。

實戰 iTextSharp

最初的 iText 主要是支援 Java 語言。之後針對Microsoft .NET C Sharp做了一個版本,也就是我們今天要介紹的 iTextSharp。

其中主要包含了核心元件:itextsharp.dll

實戰 iTextSharp

但是,直接使用它并不能進行中文,你還要下載下傳兩個元件。

在下載下傳頁面中,注意圖中标注的 extras 檔案夾。

實戰 iTextSharp

點選之後,可以看到如下的下載下傳:

實戰 iTextSharp

注意把标注的兩個壓縮包下載下傳下來,這是使用中文的關鍵。解開兩個壓縮之後可以看到下面的兩個檔案。

iTextAsianCmaps.dll

iTextAsian.dll

在建立的項目中,将這三個程式集都添加到項目的引用中。

<code>// 必須先加入資源</code>

<code>BaseFont.AddToResourceSearch(</code><code>"iTextAsian.dll"</code><code>);</code>

<code>BaseFont.AddToResourceSearch(</code><code>"iTextAsianCmaps.dll"</code><code>);</code>

<code>//"UniGB-UCS2-H" "UniGB-UCS2-V"是簡體中文,分别表示橫向字 和 縱向字</code>

<code>//"STSong-Light"是字型名稱</code>

<code>BaseFont bf = BaseFont.CreateFont(</code><code>"STSong-Light"</code><code>,</code><code>"UniGB-UCS2-H"</code><code>, BaseFont.EMBEDDED);</code>

<code>// 也可以使用 TTF 字型</code>

<code>BaseFont bf0 = BaseFont.CreateFont(</code><code>"C:/WINDOWS/Fonts/SIMYOU.TTF"</code><code>, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);</code>

<code>// 建立 PDF 文檔</code>

<code>iTextSharp.text.Document document</code>

<code>    </code><code>=</code><code>new</code> <code>iTextSharp.text.Document();</code>

<code>// 建立寫入器執行個體,PDF 檔案将會儲存到這裡</code>

<code>iTextSharp.text.pdf.PdfWriter.GetInstance(document,</code>

<code>        </code><code>new</code> <code>System.IO.FileStream(</code><code>"Demo.pdf"</code><code>, System.IO.FileMode.Create)</code>

<code>    </code><code>);</code>

<code>// 打開文檔</code>

<code>document.Open();</code>

<code>iTextSharp.text.Font font =</code><code>new</code> <code>iTextSharp.text.Font(bf);</code>

<code>//寫入一個段落, Paragraph</code>

<code>document.Add(</code><code>new</code> <code>Paragraph(</code><code>"你好, PDF !"</code><code>, font));</code>

<code>document.Close();</code>

現在,你應該已經得到一個 PDF 文檔了。