当前位置:   article > 正文

Android用itext生成含中文的PDF文档_android itextpdf.text.pdf

android itextpdf.text.pdf

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

  1. package com.example.testpdf;
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import com.itextpdf.text.Document;
  7. import com.itextpdf.text.DocumentException;
  8. import com.itextpdf.text.Font;
  9. import com.itextpdf.text.Paragraph;
  10. import com.itextpdf.text.pdf.BaseFont;
  11. import com.itextpdf.text.pdf.PdfWriter;
  12. import android.os.Bundle;
  13. import android.os.Environment;
  14. import android.app.Activity;
  15. /**
  16. * 生成pdf文档到SD卡下,byte.pdf,可以生成中文字符
  17. * 所用jar包是自己修改过的,将字体植入jar包内
  18. * @author yt
  19. * @date 2015-1-15
  20. *
  21. */
  22. public class MainActivity extends Activity {
  23. @Override
  24. protected void onCreate(Bundle savedInstanceState) {
  25. super.onCreate(savedInstanceState);
  26. setContentView(R.layout.activity_main);
  27. Document doc=new Document();
  28. FileOutputStream fos;
  29. try {
  30. fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory()+"/byte.pdf"));
  31. PdfWriter.getInstance(doc, fos);
  32. doc.open ();
  33. doc.setPageCount(1);
  34. doc.add(new Paragraph("testpdf~~成功哩", setChineseFont()));
  35. //一定要记得关闭document对象
  36. doc.close();
  37. fos.flush();
  38. fos.close();
  39. } catch (FileNotFoundException e1) {
  40. // TODO Auto-generated catch block
  41. e1.printStackTrace();
  42. } catch (DocumentException e) {
  43. // TODO Auto-generated catch block
  44. e.printStackTrace();
  45. } catch (IOException e) {
  46. // TODO Auto-generated catch block
  47. e.printStackTrace();
  48. }
  49. }
  50. // 产生PDF字体
  51. public static Font setChineseFont() {
  52. BaseFont bf = null;
  53. Font fontChinese = null;
  54. try {
  55. bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
  56. fontChinese = new Font(bf, 12, Font.NORMAL);
  57. } catch (DocumentException e) {
  58. // TODO Auto-generated catch block
  59. e.printStackTrace();
  60. } catch (IOException e) {
  61. // TODO Auto-generated catch block
  62. e.printStackTrace();
  63. }
  64. return fontChinese;
  65. }
  66. }

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


声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号