通过 Java 搜索 PDF

高级 PDF 文档搜索。使用 Aspose.PDF for Java 以编程方式修改 PDF 文档

Aspose.PDF for Java Logo

如何使用Java搜索PDF檔

為了搜尋 PDF 文件,我們將使用 Aspose.PDF for Java API,這是一個功能豐富、強大且易於使用的 Java 平台轉換 API。您可以直接從 Maven 下載其最新版本,並透過在 pom.xml 檔案中新增以下設定將其安裝到您的 Maven 專案中。

Repository

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java AP</name>
    <url>https://releases.aspose.com/java/repo/</url>
</repository>
    

Dependency

<dependency>
  <groupId>com.aspose</groupId>
  <artifactId>aspose-pdf</artifactId>
  <version>version of aspose-pdf API</version>
</dependency>

通過Java搜索 PDF 檔


您需要 Aspose.PDF for Java 才能在您的環境中測試程式碼。

  1. 載入包含文件實例的 PDF。 創建文本碎片用文本作為參數查找的吸收器物件。 獲取所有提取的文字片段集合。
  2. 迴圈遍歷每個片段以獲取其所有資訊。

搜尋 PDF 檔 - Java


// Load PDF document
Document pdfDocument = new Document("source.pdf");

// Create TextAbsorber object to find all instances of the input search phrase
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 0000-9999

// Set text search option to specify regular expression usage
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);

// Accept the absorber for first page of document
pdfDocument.getPages().accept(textFragmentAbsorber);

// Get the extracted text fragments into collection
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Loop through the fragments
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
    System.out.println("Text :- " + textFragment.getText());
    System.out.println("Position :- " + textFragment.getPosition());
    System.out.println("XIndent :- " + textFragment.getPosition().getXIndent());
    System.out.println("YIndent :- " + textFragment.getPosition().getYIndent());
    System.out.println("Font - Name :- " + textFragment.getTextState().getFont().getFontName());
    System.out.println("Font - IsAccessible :- " + textFragment.getTextState().getFont().isAccessible());
    System.out.println("Font - IsEmbedded - " + textFragment.getTextState().getFont().isEmbedded());
    System.out.println("Font - IsSubset :- " + textFragment.getTextState().getFont().isSubset());
    System.out.println("Font Size :- " + textFragment.getTextState().getFontSize());
    System.out.println("Foreground Color :- " + textFragment.getTextState().getForegroundColor());
}
pdfDocument.close();