博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iText实现pdf导出
阅读量:6668 次
发布时间:2019-06-25

本文共 6963 字,大约阅读时间需要 23 分钟。

/**

* AsianTest.java
*/

import java.io.FileOutputStream;  import java.io.IOException;  import com.lowagie.text.*;  import com.lowagie.text.pdf.PdfWriter;  import com.lowagie.text.pdf.BaseFont;  import com.lowagie.text.Font;  import java.awt.Color;  public class AsianTest {      public static void main(String[] args) {          // 创建一个Document对象          Document document = new Document();          try {              // 生成名为 AsianTest.pdf 的文档              PdfWriter.getInstance(document, new FileOutputStream(                      "c://AsianTest.pdf"));              /**              * 新建一个字体,iText的方法 STSongStd-Light 是字体,在iTextAsian.jar 中以property为后缀              * UniGB-UCS2-H 是编码,在iTextAsian.jar 中以cmap为后缀 H 代表文字版式是 横版, 相应的 V              * 代表竖版              */              BaseFont bfChinese = BaseFont.createFont("STSongStd-Light",                      "UniGB-UCS2-H", false);              Font bold_fontChinese = new Font(bfChinese, 12, Font.BOLD,                      Color.BLACK);              Font italic_fontChinese = new Font(bfChinese, 12, Font.ITALIC,                      Color.BLACK);              Font impressFont = new Font(bfChinese, 16, Font.BOLDITALIC,                      Color.BLACK);              // 打开文档,将要写入内容              document.open();              // 插入一个段落              // Paragraph par = new Paragraph("我们", fontChinese);              // document.add(par);              //              document.add(new Paragraph(" ", bold_fontChinese));              document.add(new Paragraph(" ", bold_fontChinese));              document.add(new Paragraph(" ", bold_fontChinese));              String[] Trainspotting1 = { "选择生命,选择工作,选择职业,选择家庭,",                      "选择可恶的大彩电,选择洗衣机、汽车、雷射碟机,", "选择健康、低胆固醇和牙医保险,选择楼宇按揭,",                      "选择你的朋友,选择套装、便服和行李,选择分期付款和三件套西装,",                      "选择收看无聊的游戏节目,边看边吃零食……选择你的未来,选择生命……", "太多选择,你选择什么,我选择不选择。" };              String[] Trainspotting2 = { "这是电影《猜火车》开头的旁白。", "这是一个关于“选择”的故事。" };              String[] Benjamin1 = { "有些人就在河边出生长大,", "有些人被闪电击中,",                      "有些人对音乐有着非凡的天赋,", "有些人是艺术家,", "有人会游泳,", "有人懂得做纽扣,",                      "有人会背莎士比亚,", "而有些人。。。是母亲,", "也有些人,可以翩翩起舞。",                      "Goodnight  Daisy", "Goodnight  Benjamin" };              String[] Benjamin2 = { "这是电影《本杰明传奇》结尾的旁白。", "这是一个关于“错过”的故事。" };              String[] text1 = { "我想说的是,", "我们选择,同时,我们错过。" };              String[] text2 = { "抛去无可选择的选择,抑或不选择的选择,",                      "很有趣的一件事:当面临(太多的)选择,人们会如何选择;", "同时,人们又会如何看待错过。" };              String[] text3 = { "在开始和结束之间,选择了什么,又会错过什么,我还不知道。" };              String[] text4 = { "你会知道么?" };              //              for (String s : Trainspotting1) {                  document.add(new Paragraph(s, italic_fontChinese));                  document.add(new Paragraph(" ", italic_fontChinese));              }              for (String s : Trainspotting2) {                  document.add(new Paragraph(s, bold_fontChinese));              }              document.add(new Paragraph(" ", bold_fontChinese));              document.add(new Paragraph(" ", bold_fontChinese));              document.add(new Paragraph(" ", bold_fontChinese));              for (String s : Benjamin1) {                  document.add(new Paragraph(s, italic_fontChinese));                  document.add(new Paragraph(" ", italic_fontChinese));              }              for (String s : Benjamin2) {                  document.add(new Paragraph(s, bold_fontChinese));              }              document.add(new Paragraph(" ", bold_fontChinese));              document.add(new Paragraph(" ", bold_fontChinese));              document.add(new Paragraph(" ", bold_fontChinese));              for (String s : text1) {                  document.add(new Paragraph(s, bold_fontChinese));              }              document.add(new Paragraph(" ", bold_fontChinese));              for (String s : text2) {                  document.add(new Paragraph(s, bold_fontChinese));              }              document.add(new Paragraph(" ", bold_fontChinese));              for (String s : text3) {                  document.add(new Paragraph(s, bold_fontChinese));              }              document.add(new Paragraph(" ", bold_fontChinese));              for (String s : text4) {                  document.add(new Paragraph(s, bold_fontChinese));              }              document.add(new Paragraph(" ", bold_fontChinese));              //              String[] end = { "Some people were born to sit by a river...",                      "Some get struck by light...",                      "Some have an ear for music...", "Some are artists...",                      "Some swim...", "Some know buttons...",                      "Some know Shakespeare...", "Some are mothers...",                      "And some people can dance..." };              for (String s : end) {                  document.add(new Paragraph(s, bold_fontChinese));              }              document.add(new Paragraph(                      "by the way, some people can write code.你", impressFont));              // Chapter              Paragraph title1 = new Paragraph("Chapter 1", italic_fontChinese);              Chapter chapter1 = new Chapter(title1, 1);              chapter1.setNumberDepth(0);              Paragraph title11 = new Paragraph(                      "This is Section 1 in Chapter 1中文", italic_fontChinese);              Section section1 = chapter1.addSection(title11);              Paragraph someSectionText = new Paragraph(                      "This text comes as part of section 1 of chapter 1.");              section1.add(someSectionText);              someSectionText = new Paragraph("Following is a 3 X 2 table.");              section1.add(someSectionText);              //              document.add(chapter1);              //              // 定义一个图片              Image jpeg = Image.getInstance("E:/01.jpg");              // 图片居中              jpeg.setAlignment(Image.ALIGN_CENTER);              document.add(jpeg);          } catch (DocumentException de) {              System.err.println(de.getMessage());          } catch (IOException ioe) {              System.err.println(ioe.getMessage());          }          // 关闭打开的文档          document.close();      }  }

此上的文章转载别人的,觉得挺好就借鉴过来



原创部分

  • 建立Document对象的实例

    Document document = new Document();

  • 建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中,filePath是pdf的生成路径

PdfWriter.getInstance(document, new FileOutputStream(                        filePath));
  • 新建一个字体,iText的方法STSongStf-Ligth 是字体,在BaseFont中设置之后,我们到处的pdf就可以兼容中文了。itext还有两种输出中文字体的设置,

    • 1 使用iTextAsian.jar中的字体
BaseFont bfChinese = BaseFont.createFont("STSongStd-Light",                        "UniGB-UCS2-H", false);
-  2 使用Windows系统字体(TrueType)

BaseFont.createFont(“C:/WINDOWS/Fonts/SIMYOU.TTF”, BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);

  • 使用资源地址
BaseFont.createFont("/SIMYOU.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);

转载于:https://www.cnblogs.com/zhangxinhua/p/8319235.html

你可能感兴趣的文章
1.1 DHCP服务的介绍和安装
查看>>
计算机安全篇1
查看>>
drawable 如何单个设置边界
查看>>
Nachos File System
查看>>
tomcat远程调试、普通java程序远程调试
查看>>
python day11
查看>>
office 2013-word选项配置参数
查看>>
Hadoop调试源代码
查看>>
Hanoi塔算法c语言实现
查看>>
ecshop新会员注册邮件提醒管理员
查看>>
mysqldump实现mysql备份小脚本
查看>>
JQuery--实用技巧总结
查看>>
语言,编程语言
查看>>
Redis事务处理
查看>>
C# []、List、Array、ArrayList 区别及应用
查看>>
继续说一下js对数组的处理---删除某个指定元素的方法
查看>>
data truncated for column at row 1原因
查看>>
java 关键字
查看>>
linux io过程自顶向下分析
查看>>
UNIX 技巧: UNIX 高手的另外10个习惯
查看>>