java - 无法替换 PDF 的占位符
问题描述
所以我有这个函数替换我的模板 pdf 文件的特定占位符并将替换的数据保存为新文件:
public void manipulatePdf(String src, String dest) throws IOException, DocumentException {
PdfReader reader = new PdfReader(src);
PdfDictionary dict = reader.getPageN(1);
PdfObject object = dict.getDirectObject(PdfName.CONTENTS);
if (object instanceof PRStream) {
PRStream stream = (PRStream) object;
byte[] data = PdfReader.getStreamBytes(stream);
stream.setData(new String(data).replace("{0}", "one for all").getBytes());
}
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.close();
reader.close();
if (Desktop.isDesktopSupported()) {
File myFile = new File(dest);
Desktop.getDesktop().open(myFile);
}
}
这就是我的 src(模板文件)的样子:
创建新文件后,它看起来一样。占位符没有改变。如何使用 iText 替换文本
解决方案
推荐阅读
- android - Android Studio 3.2.1 中未加载设计布局预览
- python - 随机森林(在python中)是一种增强算法吗?
- r - 如何在决策树中使用熵作为拆分方法 - R Programming
- c++ - 有没有办法从非 C/C++ 文件中读取 C++ 原始字符串文字的内容?
- smooch - whatsapp 沙盒集成不支持链接
- pyspark - Pyspark:观察到 pyspark 数据帧中缺失值的插值
- javascript - 提交时的两个 http POST 请求
- android - Android studio Logcat 显示错误消息“null”,然后停止工作
- java - java - 如何通过使用javalinkedlist将列表中的每个元素向右移动n次来旋转列表
- amazon-emr - 如何使用 aws 控制台在 aws 数据管道中运行多个步骤