I det här inlägget kommer du att lära dig hur du extraherar text från PDF-filer sömlöst med Java. Textextraktion kan vara användbart i olika scenarier som textanalys, informationssökning, dokumenttolkning och så vidare. Eftersom PDF är ett av de mest använda digitala dokumenten är användningsfallen för textextraktion från PDF-dokument fler. Så låt oss börja och kontrollera hur man utför PDF-textextraktion från Java-applikationer.
- Java Text Extraction API - Gratis nedladdning
- Extrahera text från PDF med Java
- Extrahera text från specifik sida i PDF
- Textextraktion från en sidregion i PDF
Java API för att extrahera text från PDF - Gratis nedladdning
Aspose.PDF för Java är ett välkänt API för PDF-filmanipulation som ger ett brett utbud av funktioner för att skapa och bearbeta PDF-filer. API:et innehåller en kraftfull textextraktor som ger olika sätt att extrahera text från PDF-dokument inom några rader kod. Du kan antingen ladda ner API:s JAR eller installera den i dina Maven-baserade applikationer med följande konfigurationer.
<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>
Extrahera text från PDF med Java
Följande är stegen för att extrahera text från ett PDF-dokument med Aspose.PDF för Java.
- Använd klassen Document för att ladda PDF-filen.
- Skapa ett objekt av klassen TextAbsorber.
- Acceptera TextAbsorber för alla sidor i PDF-filen med metoden Document.getPages().accept(TextAbsorber).
- Använd metoden TextAbsorber.getText() för att hämta all text från PDF:en.
- Spara texten i en TXT-fil (valfritt).
Följande kodexempel visar hur man extraherar text från PDF med Java.
// För fullständiga exempel och datafiler, gå till https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Öppna dokumentet
Document pdfDocument = new Document("input.pdf");
// Skapa TextAbsorber-objekt för att extrahera text
TextAbsorber textAbsorber = new TextAbsorber();
// Acceptera absorbenten för alla sidor
pdfDocument.getPages().accept(textAbsorber);
// Hämta den extraherade texten
String extractedText = textAbsorber.getText();
// Skapa en författare och öppna filen
java.io.FileWriter writer = new java.io.FileWriter(new java.io.File("Extracted_text.txt"));
writer.write(extractedText);
// Skriv en textrad till filen tw.WriteLine(extractedText);
// Stäng strömmen
writer.close();
Extrahera text från specifik sida i PDF
Du kan också extrahera text från en specifik sida i PDF-dokumentet genom att använda följande steg.
- Använd klassen Dokument för att ladda PDF-filen.
- Skapa en instans av klassen TextDevice.
- Definiera ytterligare alternativ med klassen TextExtractionOptions.
- Ställ in alternativ med metoden TextDevice.setExtractionOptions(TextExtractionOptions).
- Använd TextDevice.Process(Page, String) för att extrahera texten från den angivna sidan.
Följande kodexempel visar hur man extraherar text från en specifik sida i PDF med Java.
// För fullständiga exempel och datafiler, gå till https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// öppet dokument
Document pdfDocument = new Document("input.pdf");
// skapa textenhet
TextDevice textDevice = new TextDevice();
// ställ in textextraktionsalternativ - ställ in textextraktionsläge (Raw eller Pure)
TextExtractionOptions textExtOptions = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Raw);
textDevice.setExtractionOptions(textExtOptions);
// hämta texten från första sidan i PDF och spara den i filformat
textDevice.process(pdfDocument.getPages().get_Item(1), "ExtractedText.txt");
Extrahera text från en sidregion i PDF
Du kan också extrahera text från en viss del av sidan i PDF. För detta kan du definiera en rektangel för att täcka området där du behöver extrahera texten. Följande är stegen för att extrahera text från en sidregion.
- Använd klassen Document för att ladda PDF-filen.
- Skapa ett objekt av klassen TextAbsorber.
- Sätt en gräns för sidbunden och skapa en rektangel med TextAbsorber.getTextSearchOptions().setLimitToPageBounds(true) och [TextAbsorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250)][170) ] metoder respektive.
- Acceptera absorbenten för den specifika sidan.
- Använd metoden TextAbsorber.getText() för att extrahera text.
Följande kodexempel visar hur man extraherar text från en viss sidregion i Java.
// För fullständiga exempel och datafiler, gå till https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// öppet dokument
Document doc = new Document("page_0001.pdf");
// skapa TextAbsorber-objekt för att extrahera text
TextAbsorber absorber = new TextAbsorber();
absorber.getTextSearchOptions().setLimitToPageBounds(true);
absorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250, 350));
// acceptera absorbenten för första sidan
doc.getPages().get_Item(1).accept(absorber);
// hämta den extraherade texten
String extractedText = absorber.getText();
// skapa en författare och öppna filen
BufferedWriter writer = new BufferedWriter(new FileWriter(new java.io.File("ExtractedText.txt")));
// skriva utdraget innehåll
writer.write(extractedText);
// Nära författare
writer.close();
Slutsats
I den här artikeln har du lärt dig hur du extraherar text från PDF med Java. Du har sett olika sätt att extrahera text, som att extrahera text från en hel PDF, en specifik sida eller en specifik sidregion. Du kan lära dig mer om Java PDF API med dokumentation.
Se även
Info: Aspose utvecklade nyligen en gratis onlinetjänst Text till GIF som låter dig animera texter eller generera GIF-filer från enkla texter.