如何使用iText制作中文PDF

1. 下载itextpdf.jar

基础包:http://jaist.dl.sourceforge.net/project/itext/iText/iText5.5.2/itext-5.5.2.zip

附加包:http://cznic.dl.sourceforge.net/project/itext/extrajars/extrajars-2.3.zip

 

我们只下载基础包就可以

2. 创建工作文件夹

daniel@daniel-mint ~/itext $ ls
daniel.java  fonts  itextpdf-5.5.2.jar  run.sh

  

其中fonts是一个目录,用来存放我们用到的字体文件。

daniel@daniel-mint ~/itext $ cat run.sh 
javac -cp .:itextpdf-5.5.2.jar $1.java
java -cp .:itextpdf-5.5.2.jar $1 
rm $1.class

  

daniel@daniel-mint ~/itext $ cat daniel.java 
import java.io.FileOutputStream;
import java.io.IOException;
 
import com.itextpdf.text.Document;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Rectangle;

import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.BaseFont;
 
public class daniel 
{
 
    public static final String RESULT = "daniel.pdf";
 
    public static void main(String[] args)
         throws DocumentException, IOException 
    {
        Document document = new Document(PageSize.A4);
        PdfWriter.getInstance(document, new FileOutputStream(RESULT));
        document.open();

	BaseFont noto_hans_bold  = BaseFont.createFont("./fonts/kaiti.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
	Font noto_hans_bold_24  = new Font(noto_hans_bold, 24);

        Paragraph par1 = new Paragraph(20);

	Chunk chk1 = new Chunk("Daniel King is a software engineer", noto_hans_bold_24);
	par1.add(chk1);

	Chunk chk2 = new Chunk("\u8FD9\u4E2A\u4EBA\u662F\u4E2A\u7A0B\u5E8F\u5458\u554A", noto_hans_bold_24);
	par1.add(chk2);

	document.add(par1);
        document.close();
    }
}

  

3. 可以编写一个shell用来编码Unicode

首先下载 unicode工具

sudo apt-get install unicode

  

daniel@daniel-mint ~/itext $ cat tounicode.sh 
unicode -s $1 | grep 'Uppercase' | sed -re 's/^U.*: U\+/\\u/g' | awk '{printf("%s", $1);}END{print ""}'

  

daniel@daniel-mint ~/itext $ bash tounicode.sh 这个人是个程序员啊
\u8FD9\u4E2A\u4EBA\u662F\u4E2A\u7A0B\u5E8F\u5458\u554A

  

4. 执行脚本生成PDF文件

daniel@daniel-mint ~/itext $ bash run.sh daniel
daniel@daniel-mint ~/itext $ ls
daniel.java  daniel.pdf  fonts  itextpdf-5.5.2.jar  run.sh  tounicode.sh

  

5. 添加源码目录

将itextpdf-5.5.2-sources.jar解压到src目录下

然后创建ctags文件,这样就可以在源码中方便来回浏览了。

daniel@daniel-mint ~/itext $ ls
daniel.java  daniel.pdf  fonts  itextpdf-5.5.2.jar  run.sh  src  tags  tounicode.sh

  

posted @ 2014-08-29 16:57  Daniel King  阅读(627)  评论(0编辑  收藏  举报