【问题标题】:Extract particular text from particular page using Aspose PDF in Java在 Java 中使用 Aspose PDF 从特定页面中提取特定文本
【发布时间】:2018-04-03 15:54:34
【问题描述】:

如何在 Java 中使用 Aspose PDF 从 pdf 文件中提取文本? 我正在寻找来自 Aspose API 的 this 功能(没有代码示例?)

编辑-
要求:

假设 pdf 在随机位置包含此文本以及其他一些数据。

First Name: John
Last Name: Doe
City: New York
Phone: (999)-999-9999

注意: 如果它们是 pdf 文件的字段,我可以轻松获取这些值。它们位于一些随机位置,而不是单独的字段。

每个文档的值 John, Doe, New York, (999)-999-9999 会发生变化。

我应该能够搜索First Name, Last Name, City, Phone,所以它也会返回它的前一个值。

有什么建议吗?

【问题讨论】:

    标签: java aspose aspose.pdf


    【解决方案1】:

    @intruder,您可以使用正则表达式来检索所需的文本字符串。 Aspose.PDF for Java API 接受正则表达式,请尝试如下代码:

    Java

    Document pdfDocument = new Document("source.pdf");
    // like 1999-2000
    TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); 
    TextSearchOptions textSearchOptions = new TextSearchOptions(true);
    textFragmentAbsorber.setTextSearchOptions(textSearchOptions);
    pdfDocument.getPages().accept(textFragmentAbsorber);
    TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
    for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) 
        System.out.println("Text :- " + textFragment.getText());
    

    我与 Aspose 合作,担任开发人员宣传员。

    【讨论】:

    • 我通过使用TextAbsorber 实现了它。还有其他有效的方法吗?
    • 只有当我们知道值的确切长度时,您的建议才有效。但是NamesCity 的长度不是固定的。就像我搜索First Name 一样,它应该显示John。在这里,它再次显示First Name
    • @intruder,你可以增强正则表达式。在上面的代码中,我分享了一个正则表达式作为示例。请将您的源 PDF、代码和预期输出发送给我。我将在我的环境中调查您的场景。
    猜你喜欢
    • 2011-08-16
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 2023-02-26
    • 1970-01-01
    相关资源
    最近更新 更多