如何从 .pdf 工件中清除文本?
How to clean text from .pdf artifacts?
我正在替换 .pdf 文件中的占位符,就像 itext7 文档中提到的那样
PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));
PdfPage page = pdfDoc.getFirstPage();
PdfDictionary dict = page.getPdfObject();
PdfObject object = dict.get(PdfName.Contents);
if (object instanceof PdfStream) {
PdfStream stream = (PdfStream) object;
byte[] data = stream.getBytes();
String replacedData = new String(data).replace("{#Address_line1}", "Saint-Petersburg");
stream.setData(replacedData.getBytes(StandardCharsets.UTF_8));
}
pdfDoc.close()
我的 .pdf 文件有点复杂,所以我的 {#Address_line1}
占位符看起来像 ({#)4(Add)-4(ress)-17(_)6(L)-6(i)3(n)-8(e1)4(})
有什么工具可以清理我的占位符,让 ({#)4(Add)-4(ress)-17(_)6(L)-6(i)3(n)-8(e1)4(})
变成 {#Address_line1}
吗?我可以自己写,但也许有一些现成的解决方案
没办法,需要实现我自己的解决方案。
我正在替换 .pdf 文件中的占位符,就像 itext7 文档中提到的那样
PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));
PdfPage page = pdfDoc.getFirstPage();
PdfDictionary dict = page.getPdfObject();
PdfObject object = dict.get(PdfName.Contents);
if (object instanceof PdfStream) {
PdfStream stream = (PdfStream) object;
byte[] data = stream.getBytes();
String replacedData = new String(data).replace("{#Address_line1}", "Saint-Petersburg");
stream.setData(replacedData.getBytes(StandardCharsets.UTF_8));
}
pdfDoc.close()
我的 .pdf 文件有点复杂,所以我的 {#Address_line1}
占位符看起来像 ({#)4(Add)-4(ress)-17(_)6(L)-6(i)3(n)-8(e1)4(})
有什么工具可以清理我的占位符,让 ({#)4(Add)-4(ress)-17(_)6(L)-6(i)3(n)-8(e1)4(})
变成 {#Address_line1}
吗?我可以自己写,但也许有一些现成的解决方案
没办法,需要实现我自己的解决方案。