资源简介
生成pdf的中文问题解决办法、导出pdf时,设置段落行间距方法,表单填充,使用itext方法填充相应表单域。
代码片段和文件信息
package com.itextpdf.demo;
import java.io.FileOutputStream;
import com.itextpdf.io.IOException;
import com.itextpdf.io.source.ByteArrayOutputStream;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.baseFont;
import com.itextpdf.text.pdf.PdfCopy;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
public class ITextPdf {
public static void FillForm() throws Exception {
// 模板路径
String templatePath = “C:/PdfTest/template/b.pdf“;
// 生成的新文件路径
String newPDFPath = “C:/PdfTest/template/b2.pdf“;
PdfReader reader;
FileOutputStream out;
ByteArrayOutputStream bos;
PdfStamper stamper;
try{
out = new FileOutputStream(newPDFPath);// 输出流到新的pdf没有b2.pdf时会创建
reader = new PdfReader(templatePath);// 读取pdf模板
bos = new ByteArrayOutputStream();
stamper = new PdfStamper(reader bos);
AcroFields form = stamper.getAcroFields();
baseFont bf = baseFont.createFont(“C:/PdfTest/template/simsun.ttc1“ baseFont.IDENTITY_H baseFont.embedDED);//加载字体
//获取form表单的表单名称--》测试看能不能获得pdf文件中的Form表单的名称
java.util.Iterator it = form.getFields().keySet()
.iterator();
while (it.hasNext())
{
String name = it.next().toString();
System.out.println(name);
}
form.setFieldProperty(“name“ “textfont“ bf null);//设置字体
form.setField(“name“ “王燕冬-王厝“);
form.setFieldProperty(“age“ “textfont“ bf null);
form.setField(“age“ “1“);
form.setFieldProperty(“class“ “textfont“ bf null);
form.setField(“class““jsj“);
stamper.setFormFlattening(true);// 如果为false那么生成的PDF文件还能编辑,一定要设为true
stamper.close();
Document doc = new Document();
PdfCopy copy = new PdfCopy(doc out);
doc.open();
PdfImportedPage importPage = null;
for(int i = 1; i <= reader.getNumberOfPages(); i++) {
importPage = copy
.getImportedPage(new PdfReader(bos.toByteArray()) i);
copy.addPage(importPage);
}
doc.close();
}
catch (IOException e)
{
e.printStackTrace();
}
catch (DocumentException e)
{
e.printStackTrace();
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-05-30 15:09 TestDemo\
文件 1778 2018-08-01 16:42 TestDemo\pom.xm
目录 0 2018-08-01 16:14 TestDemo\src\
目录 0 2018-08-01 16:14 TestDemo\src\main\
目录 0 2018-08-01 16:19 TestDemo\src\main\java\
目录 0 2018-08-01 16:19 TestDemo\src\main\java\com\
目录 0 2018-08-01 16:19 TestDemo\src\main\java\com\itextpdf\
目录 0 2018-08-01 16:20 TestDemo\src\main\java\com\itextpdf\demo\
文件 2916 2018-08-01 17:32 TestDemo\src\main\java\com\itextpdf\demo\ITextPdf.java
目录 0 2018-08-01 16:14 TestDemo\src\main\resources\
目录 0 2018-08-01 16:14 TestDemo\src\test\
目录 0 2018-08-01 16:25 TestDemo\src\test\java\
目录 0 2018-08-01 16:24 TestDemo\src\test\java\com\
目录 0 2018-08-01 16:24 TestDemo\src\test\java\com\itextpdf\
目录 0 2018-08-01 16:25 TestDemo\src\test\java\com\itextpdf\test\
文件 267 2018-08-01 17:15 TestDemo\src\test\java\com\itextpdf\test\TestDemo.java
目录 0 2018-08-01 16:14 TestDemo\src\test\resources\
- 上一篇:OpenGLWindow.zip
- 下一篇:2048-AI-master 的源码
评论
共有 条评论