V tomto příspěvku se dozvíte, jak bez problémů extrahovat text ze souborů PDF pomocí Java. Extrakce textu může být užitečná v různých scénářích, jako je analýza textu, získávání informací, analýza dokumentů a tak dále. Vzhledem k tomu, že PDF je jedním z nejpoužívanějších digitálních dokumentů, případů použití extrakce textu z dokumentů PDF je více. Takže začněme a zkontrolujeme, jak provádět extrakci textu PDF z aplikací Java.
- Java Text Extraction API – bezplatné stažení
- Extrahujte text z PDF pomocí Java
- Extrahujte text z konkrétní stránky v PDF
- Extrakce textu z oblasti stránky v PDF
Java API pro extrahování textu z PDF – ke stažení zdarma
Aspose.PDF for Java je dobře známé rozhraní API pro manipulaci se soubory PDF, které poskytuje širokou škálu funkcí pro vytváření a zpracování souborů PDF. API obsahuje výkonný extraktor textu, který poskytuje různé způsoby extrahování textu z dokumentů PDF v rámci několika řádků kódu. JAR API si můžete buď stáhnout, nebo jej nainstalovat do aplikací založených na Mavenu pomocí následujících konfigurací.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>20.11</version>
</dependency>
Extrahujte text z PDF pomocí Java
Následují kroky k extrahování textu z dokumentu PDF pomocí Aspose.PDF for Java.
- K načtení souboru PDF použijte třídu Document.
- Vytvořte objekt třídy TextAbsorber.
- Přijměte TextAbsorber pro všechny stránky PDF pomocí metody Document.getPages().accept(TextAbsorber).
- K načtení veškerého textu z PDF použijte metodu TextAbsorber.getText().
- Uložte text do souboru TXT (volitelné).
Následující ukázka kódu ukazuje, jak extrahovat text z PDF pomocí Java.
// Úplné příklady a datové soubory najdete na https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Otevřete dokument
Document pdfDocument = new Document("input.pdf");
// Vytvořte objekt TextAbsorber pro extrahování textu
TextAbsorber textAbsorber = new TextAbsorber();
// Přijměte absorbér pro všechny stránky
pdfDocument.getPages().accept(textAbsorber);
// Získejte extrahovaný text
String extractedText = textAbsorber.getText();
// Vytvořte zapisovač a otevřete soubor
java.io.FileWriter writer = new java.io.FileWriter(new java.io.File("Extracted_text.txt"));
writer.write(extractedText);
// Napište řádek textu do souboru tw.WriteLine(extrahedText);
// Zavřete stream
writer.close();
Extrahujte text z konkrétní stránky v PDF
Pomocí následujících kroků můžete také extrahovat text z konkrétní stránky dokumentu PDF.
- K načtení souboru PDF použijte třídu Document.
- Vytvořte instanci třídy TextDevice.
- Definujte další možnosti pomocí třídy TextExtractionOptions.
- Nastavte možnosti pomocí metody TextDevice.setExtractionOptions(TextExtractionOptions).
- Pomocí TextDevice.Process(Page, String) extrahujte text ze zadané stránky.
Následující ukázka kódu ukazuje, jak extrahovat text z konkrétní stránky v PDF pomocí Java.
// Úplné příklady a datové soubory najdete na https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// otevřít dokument
Document pdfDocument = new Document("input.pdf");
// vytvořit textové zařízení
TextDevice textDevice = new TextDevice();
// nastavit možnosti extrakce textu - nastavit režim extrakce textu (Raw nebo Pure)
TextExtractionOptions textExtOptions = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Raw);
textDevice.setExtractionOptions(textExtOptions);
// získat text z první stránky PDF a uložit jej do formátu souboru
textDevice.process(pdfDocument.getPages().get_Item(1), "ExtractedText.txt");
Extrahujte text z oblasti stránky v PDF
Můžete také extrahovat text z určité oblasti stránky v PDF. Za tímto účelem můžete definovat obdélník, který pokryje oblast, odkud potřebujete extrahovat text. Následují kroky k extrahování textu z oblasti stránky.
- K načtení souboru PDF použijte třídu Document.
- Vytvořte objekt třídy TextAbsorber.
- Nastavte limit na vazbu stránky a vytvořte obdélník pomocí TextAbsorber.getTextSearchOptions().setLimitToPageBounds(true) a TextAbsorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250, 350)) metody resp.
- Přijměte absorbér pro konkrétní stránku.
- K extrahování textu použijte metodu TextAbsorber.getText().
Následující ukázka kódu ukazuje, jak extrahovat text z určité oblasti stránky v Javě.
// Úplné příklady a datové soubory najdete na https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// otevřít dokument
Document doc = new Document("page_0001.pdf");
// vytvořte objekt TextAbsorber pro extrahování textu
TextAbsorber absorber = new TextAbsorber();
absorber.getTextSearchOptions().setLimitToPageBounds(true);
absorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250, 350));
// přijměte absorbér pro první stránku
doc.getPages().get_Item(1).accept(absorber);
// získat extrahovaný text
String extractedText = absorber.getText();
// vytvořte zapisovač a otevřete soubor
BufferedWriter writer = new BufferedWriter(new FileWriter(new java.io.File("ExtractedText.txt")));
// zapisovat extrahovaný obsah
writer.write(extractedText);
// Zavřít spisovatel
writer.close();
Závěr
V tomto článku jste se naučili extrahovat text z PDF pomocí Java. Viděli jste různé způsoby extrakce textu, jako je extrahování textu z celého PDF, konkrétní stránky nebo konkrétní oblasti stránky. Více o Java PDF API se můžete dozvědět pomocí dokumentace.
Viz také
Informace: Aspose nedávno vyvinula bezplatnou online službu Text to GIF, která vám umožňuje animovat texty nebo generovat GIFy z jednoduchých textů.