Android用itext生成含中文的PDF文档

最近项目用到itext库,稍微做了一些了解。昨天发现itext库自带的生成PDF的方法不能输出中文PDF,如果是Java工程可以直接用电脑里的字体,但是Android工程,不含字体包。所以今天特地查了资料,重新将itext-asian.jar和itext.jar进行打包,整合成可以生成中文的PDF文档。下面贴上调用方法,亲测可用:

package com.example.testpdf;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;

import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
/**
 * 生成pdf文档到SD卡下,byte.pdf,可以生成中文字符
 * 所用jar包是自己修改过的,将字体植入jar包内
 * @author yt
 * @date 2015-1-15
 *
 */
public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		Document doc=new Document();
		FileOutputStream fos;
		try {
			fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory()+"/byte.pdf"));
			PdfWriter.getInstance(doc, fos);
			doc.open ();  
			doc.setPageCount(1);
			doc.add(new Paragraph("testpdf~~成功哩", setChineseFont()));
			//一定要记得关闭document对象
			doc.close();
			fos.flush();
			fos.close();
		} catch (FileNotFoundException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
} 

	// 产生PDF字体
    public static Font setChineseFont() {
        BaseFont bf = null;
        Font fontChinese = null;
        try {
            bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
            fontChinese = new Font(bf, 12, Font.NORMAL);
        } catch (DocumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return fontChinese;
    }

}

打包后的itext库包:iTextpdf.jar,下载地址:http://download.csdn.net/detail/nihenbuhao/8366099


你可能感兴趣的:(itext,PDF中文,itext-asian.jar,Android)