如何解决itext PDF编辑PDF模板并设置新值
我有一个PDF模板,我想使用Itext PDF在模板中添加一些值,我编写了html版本的模板,并尝试将html转换为pdf(使用XMLWorkerHelper),但是pdf不能正确显示。
如何使用Itext Pdf编辑此pdf文件并在那些红色区域中设置值?
解决方法
您需要首先确认您的PDF是可填充PDF。如果其为可填写的PDF,请阅读该字段的键(每个字段都需要有一个唯一的键)。然后使用键在这些字段中设置值,并将PDF写回到另一个文件。
完整示例:
我正在使用librepdf。
<groupId>com.github.librepdf</groupId>
<artifactId>openpdf</artifactId>
import com.lowagie.text.pdf.*;
import java.io.*;
import java.util.Map;
public class FormFillerTest {
public static void main(String[] args) throws Exception{
ByteArrayOutputStream pdfReportBAOS = new ByteArrayOutputStream();
try (PdfReader pdfReader = new PdfReader("filename.pdf")) {
pdfReader.selectPages("1,6"); //choose page range
PdfStamper pdfStamper = new PdfStamper(pdfReader,pdfReportBAOS);
AcroFields pdfForm = pdfStamper.getAcroFields();
//for debug only:
for (Map.Entry<String,AcroFields.Item> fieldMap : pdfForm.getAllFields().entrySet()) {
//print all field keys
System.out.println(fieldMap.getKey());
}
//set fields
pdfForm.setField("FIELD_KEY","VALUE ");
pdfStamper.setFormFlattening(true);
pdfStamper.close();
//write output file
try (FileOutputStream outputStream = new FileOutputStream("output.pdf")) {
outputStream.write(pdfReportBAOS.toByteArray());
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。