iText創建一個含有中文的pdf文檔


有朋友問我pdfbox支不支持向pdf文檔中寫入中文。然后試了好多遍都是有亂碼,也找了好多資料沒有找到解決辦法。

但是在查找資料的過程中發現了另一個處理pdf的開源庫iText.官方介紹 http://itextpdf.com/

在這參考了兩篇博客

博客1.pdfbox&iText生成PDF文件格式及讀取PDF資料內容的小示例-完美支持中文版

博客2.iText生成pdf

iText的功能很強大,用起來也很靈活,我這里只是簡單的了解了一下創建一個包含中文的pdf的方法。以后有時間在深入了解。

廢話不多說,正題!

下載jar包,官網沒找到o(╯□╰)o,jarfire上收錄了一些jar包,下載jar包  我下載的是itext-2.0.6.jar.zip

上代碼

 1 package pdf.itext;
 2 
 3 import java.awt.Color;
 4 import java.io.File;
 5 import java.io.FileOutputStream;
 6 import java.io.IOException;
 7 
 8 import com.lowagie.text.Document;
 9 import com.lowagie.text.DocumentException;
10 import com.lowagie.text.Font;
11 import com.lowagie.text.PageSize;
12 import com.lowagie.text.Paragraph;
13 import com.lowagie.text.Rectangle;
14 import com.lowagie.text.pdf.BaseFont;
15 import com.lowagie.text.pdf.PdfWriter;
16 
17 public class Handler {
18     private static String CHINESE_FONT = "SIMFANG.TTF";//仿宋字體,在C:/Windows/fonts里找的font文件放到src目錄下,參見 博客1
19     public static final Rectangle PAGE_SIZE = PageSize.A4;
20     public static final float MARGIN_LEFT = 50;
21     public static final float MARGIN_RIGHT = 50;
22     public static final float MARGIN_TOP = 50;
23     public static final float MARGIN_BOTTOM = 50;
24     public static final float SPACING = 20;
25 
26     public static void  createPDF(String fileName,String content) throws DocumentException, IOException {
27         File file = new File(fileName);//生成的文件
28         FileOutputStream fout = new FileOutputStream(file);//輸出流
29         Document document = new Document(PAGE_SIZE, MARGIN_LEFT, MARGIN_RIGHT, MARGIN_TOP, MARGIN_BOTTOM);//頁面大小以及布局
30         PdfWriter.getInstance(document, fout);//將文檔添加的輸出流
31         document.open();//打開文檔准備寫入
32         BaseFont baseFont = BaseFont.createFont(CHINESE_FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);//創建一個支持中文的字體
33         Font chinese = new Font(baseFont, 20, Font.BOLDITALIC, Color.red);//博客1里的BaseColor在我下載的jar包中沒有就用java.awt.color代替了
34         document.add(new Paragraph(content, chinese));//寫入內容      
35         document.close();//關閉文檔
36     }
37     public static void main(String[] args) throws DocumentException, IOException {
38         createPDF("apdf.pdf", "正在使用iText創建一個包含中文的pdf文檔!");
39     }
40 }

 

不同版本的jar包,差異應該還挺大的,我的代碼中包結構還有方法等和博客1的差異比較大,和博客2的基本一致。
相關信息官網肯定,由於時間問題沒有仔細查看。留后吧(*^__^*) 。

 寫入內容 方法比較多,創建pdf也很具體詳細,很靈活。

TO BE CONTINUED……

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM