iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。
下面简单的整理几个操作pdf相关实例。
1.PDF模版填充
首先需要有一个pdf文件作为模版,可以用如adobe acrobat等工具,添加几个文本域在pdf中,下面就是模版完成后的部分截图。
/**
* @throws IOException
* @throws DocumentException
*/
@SuppressWarnings("unchecked")
@Test
public void fillTemplate()
throws IOException, DocumentException {
PdfReader reader = new PdfReader(templateFile); // 模版文件目录
PdfStamper ps = new PdfStamper(reader, new FileOutputStream(
"f:/fillTemplate.pdf")); // 生成的输出流
// ByteArrayOutputStream bos = new ByteArrayOutputStream();
// PdfStamper ps = new PdfStamper(reader, bos);
AcroFields s = ps.getAcroFields();
Map<String, Object> fieldMap = s.getFields(); // pdf表单相关信息展示
for (Map.Entry<String, Object> entry : fieldMap.entrySet()) {
String name = entry.getKey(); // name就是pdf模版中各个文本域的名字
Item item = (Item) entry.getValue();
System.out.println("[name]:" + name + ", [value]: " + item);
}
s.setField("CUSTOMERNAME", "as该多好公司");
s.setField("TEL", "123456asdzxc");
s.setField("CONTACT", "我是联系人123");
ps.setFormFlattening(true); // 这句不能少
ps.close();
reader.close();
}
效果如下所示:
[name]:CUSTOMERNAME, [value]: