本文共 2081 字,大约阅读时间需要 6 分钟。
首先感谢Bruno Lowagie
本文是对iText in Action 这本书的学习记录,由于原书是英文版,还附带自己的一些自己的翻译理解,方便以后查阅以及做一些分享。
目录简览
第一部分:从零开始:创建PDF文档
1. PDF以及iText介绍
2.使用iText的基础构建块
3.通过相对定位的方式,添加内容
4.采用表格来组织内容
5.表格、单元格、页面事件
第二部分:处理已有PDF文档
6.高效使用已有PDF文档
7.构建可交互的PDF文档
8.填充交互式表单
第三部分:必要的iText技术
9.在Web程序里集成iText
10.在文档中使用颜色和头像
11.选择正确的字体
12.保护文档
第四部分:高级部分
13.由表及里看PDF
14.PDF图像模型
15.PDF的内容和结构
16.PDF流
创建PDF文档
其实,在我们的系统中涉及到多字体混排报表,如藏文汉文,所以用到了iText,这是目前的一种解决方案(其他方案,待探索),下面实现多字体版HelloWorld
首先导入iTextpdf.jar包,以及可选的导入xmlworker.jar或者使用新版xfaworker.jar。
HelloWorldPdf.java如下
package pdf.helloworld;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import com.itextpdf.text.Chunk;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.text.Font;import com.itextpdf.text.FontFactory;import com.itextpdf.text.Paragraph;import com.itextpdf.text.pdf.BaseFont;import com.itextpdf.text.pdf.PdfWriter;/** * @author xiele * @date 2014-8-16 */public class HelloWorldPdf { public static final String BASE_DIR = "PDF\\InAction\\"; public static final Font STKAIti = FontFactory.getFont("stkaiti.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); public static final Font HIMALAYA = FontFactory.getFont("himalaya.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); static { File f = new File(BASE_DIR); if (!f.exists()) { f.mkdirs(); } } public static void main(String[] args) throws DocumentException, IOException { new HelloWorldPdf().createPdf(BASE_DIR + "helloworld.pdf"); } public void createPdf(String filename) throws DocumentException, IOException { // step1 Document document = new Document(); // step2 PdfWriter.getInstance(document, new FileOutputStream(filename)); // step3 document.open(); // step4 Chunk c = new Chunk("Hello,World"); Paragraph p = new Paragraph(c); p.add(Chunk.NEWLINE); Chunk han = new Chunk("你好世界", STKAIti); p.add(han); p.add(Chunk.NEWLINE); Chunk hi = new Chunk("ནིམའོསམི་སའབསདབབདའདསབའདབ", HIMALAYA); p.add(hi); document.add(p); document.close(); }}
PS:此处用到了楷体字体和喜马拉雅字体,分别提供中文和藏文显示,可自行在系统的Font目录下找到,copy到src类路径下就OK。
转载地址:http://wrlbi.baihongyu.com/