java – PDFBox 2.0 RC3 – 查找和替换文本
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – PDFBox 2.0 RC3 – 查找和替换文本,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1788字,纯文字阅读大概需要3分钟。
内容图文
![java – PDFBox 2.0 RC3 – 查找和替换文本](/upload/InfoBanner/zyjiaocheng/736/b26109c0a31140e6baac46f27c76c564.jpg)
如何使用PDFBox 2.0查找和替换PDF文档中的文本,他们提取旧的示例,它的语法不再有效,所以我想知道它是否仍然可行,如果是这样,最好的方法是什么.谢谢!
解决方法:
你可以尝试这样:
public static PDDocument replaceText(PDDocument document, String searchString, String replacement) throws IOException {
if (Strings.isEmpty(searchString) || Strings.isEmpty(replacement)) {
return document;
}
PDPageTree pages = document.getDocumentCatalog().getPages();
for (PDPage page : pages) {
PDFStreamParser parser = new PDFStreamParser(page);
parser.parse();
List tokens = parser.getTokens();
for (int j = 0; j < tokens.size(); j++) {
Object next = tokens.get(j);
if (next instanceof Operator) {
Operator op = (Operator) next;
//Tj and TJ are the two operators that display strings in a PDF
if (op.getName().equals("Tj")) {
// Tj takes one operator and that is the string to display so lets update that operator
COSString previous = (COSString) tokens.get(j - 1);
String string = previous.getString();
string = string.replaceFirst(searchString, replacement);
previous.setValue(string.getBytes());
} else if (op.getName().equals("TJ")) {
COSArray previous = (COSArray) tokens.get(j - 1);
for (int k = 0; k < previous.size(); k++) {
Object arrElement = previous.getObject(k);
if (arrElement instanceof COSString) {
COSString cosString = (COSString) arrElement;
String string = cosString.getString();
string = StringUtils.replaceOnce(string, searchString, replacement);
cosString.setValue(string.getBytes());
}
}
}
}
}
// now that the tokens are updated we will replace the page content stream.
PDStream updatedStream = new PDStream(document);
OutputStream out = updatedStream.createOutputStream();
ContentStreamWriter tokenWriter = new ContentStreamWriter(out);
tokenWriter.writeTokens(tokens);
page.setContents(updatedStream);
out.close();
}
return document;
}
内容总结
以上是互联网集市为您收集整理的java – PDFBox 2.0 RC3 – 查找和替换文本全部内容,希望文章能够帮你解决java – PDFBox 2.0 RC3 – 查找和替换文本所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。