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 {@Overrideprotected 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 blocke1.printStackTrace();} catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.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 blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return fontChinese;}}

打包后的itext库包:iTextpdf.jar,下载地址:

看不见我将要去的地方,记不得我已经去过的地方。

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

相关文章:

你感兴趣的文章:

标签云: