为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用java替换pdf中的文本

如何使用java替换pdf中的文本

湖上湖 2021-11-17 17:19:01
我想要实现的是替换pdf文件中的文本。我有以下代码:PdfReader reader = new PdfReader("test.pdf");PdfDictionary dict = reader.getPageN(1);PdfObject object = dict.getDirectObject(PdfName.CONTENTS);if (object instanceof PRStream){    PRStream stream = (PRStream) object;    byte[] data = PdfReader.getStreamBytes(stream);    System.out.println(new String(data));    stream.setData(new String(data).replace("application", "HELLO WORLD").getBytes());}PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("test-output.pdf"));stamper.close();reader.close();当我试图打印出来查看数据 (System.out.println(new String(data))) 时,“ application ”显示为“ ap)-4(plica)-3(tion ”,这就是为什么我未能替换文本,任何想法或其他方法可以实现我想要实现的目标?
查看完整描述

1 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

您将无法使用 iText 执行此操作。

相信我,这是有关 PDF 的最令人沮丧的发现之一:您可以使用 iText 构建它们,但您不能稍后返回并用其他内容替换文本,就像您在示例中所做的那样。

你真的无能为力。一旦文本存在,您就无法修改它。


尽管如此,您通常可以向现有 PDF添加新内容(文本、图像等)。所以......如果你可以稍微改变宇宙并创建一个具有正确大小的空白空间的PDF,你可以稍后返回并使用PdfStamper该类在另一层图形内容上“标记”。


查看完整回答
反对 回复 2021-11-17
  • 1 回答
  • 0 关注
  • 368 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信