
Extraheer tekst uit een PDF-bestand in Java
- [PDF Java-bibliotheek - installatiestappen][3]
- [Tekst extraheren uit een PDF-bestand in Java][4]
- [Tekst extraheren uit een bepaald paginagebied][5]
- [Java-bibliotheek om tekst uit PDF-bestand te extraheren in de vorm van alinea’s][6]
PDF Java-bibliotheek - installatiestappen
U kunt deze bibliotheek eenvoudig in uw Java-toepassing installeren door de [jar-bestanden][7] te downloaden, of u kunt de volgende Maven-configuraties volgen. Opslagplaats
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
Afhankelijkheid
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>20.12</version>
<classifier>jdk17</classifier>
</dependency>
Extraheer tekst uit een PDF-bestand in Java
In dit gedeelte schrijven we de stappen en het codefragment waarmee tekst uit alle pagina’s van een PDF-document wordt geëxtraheerd. Doorloop de volgende stappen:
- Open een PDF-document door een object van de klasse [Document][8] te maken.
- Initialiseer een object van de klasse [TextAbsorber][9] om tekstextractie uit te voeren.
- Roep de methode [getPages()][10] aan die de absorber voor alle pagina’s accepteert.
- Haal de geëxtraheerde tekst op door de methode [getText()][11] aan te roepen.
- Schrijf geëxtraheerde tekst naar het bestand en sluit de schrijver.
Kopieer en plak het volgende codefragment om tekst programmatisch uit een PDF-document te extraheren.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
// Open a PDF document by creating an object of Document class. Document pdfDocument = new Document("INPUT-PDF-FILE"); // Initialize an object of TextAbsorber to performs text extraction. TextAbsorber textAbsorber = new TextAbsorber(); // Call the getPages() method that accepts the absorber for all the pages. pdfDocument.getPages().accept(textAbsorber); // Get the extracted text by calling getText() method. String extractedText = textAbsorber.getText(); try { FileWriter writer = new FileWriter( "PATH-FOR-OUTPUT-FILE/extracted-text.txt", true); // Write a line of text to the file writer.write(extractedText); // Close the stream writer.close(); } catch (java.io.IOException e) { e.printStackTrace(); }
Tekst extraheren uit een bepaald paginagebied
Met deze [bibliotheek][12] kunt u ook tekst extraheren van de gewenste pagina van een PDF-document. We zullen de volgende stappen volgen om dit te bereiken:
- Maak een object van de klasse [Document][8] en laad een PDF-bronbestand.
- Maak een instantie van een object van de klasse [TextAbsorber][9] om gegevens te extraheren.
- Roep de methode [getTextSearchOptions()][13] aan waarmee een rechthoek kan worden gedefinieerd die de geëxtraheerde tekst afbakent.
- Roep [getPages()][10] aan om de verzameling documentpagina’s op te halen en accepteer de absorber voor de eerste pagina.
- Roep [getText()][11] aan om de geëxtraheerde tekst op te halen en naar het bestand te schrijven.
- Roep de methode close() aan om de stream te sluiten.
Kopieer en plak het volgende codefragment in uw Java-bestand:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
// create an object of Document class and load a source PDF file. Document doc = new Document("INPUT-PDF-FILE"); // instantiate an object of TextAbsorber to extract data. TextAbsorber absorber = new TextAbsorber(); // call getTextSearchOptions() method that allows to define rectangle which delimits the extracted text.- absorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250, 350)); // invoke getPages() to get the collection of document pages and accept the absorber for first page. doc.getPages().get_Item(1).accept(absorber); // Call getText() to get the extracted text and write it to the file String extractedText = absorber.getText(); // create a writer and open the file BufferedWriter writer = new BufferedWriter(new FileWriter(new java.io.File("PATH-FOR-OUTPUT-FILE/ExtractedText.txt"))); // write extracted contents writer.write(extractedText); // Close writer writer.close();
Java-bibliotheek om tekst uit een PDF-bestand te extraheren in de vorm van alinea’s
In dit gedeelte worden de volgende stappen en de codefragmenten gedemonstreerd om gegevens in alinea’s uit PDF-documenten te extraheren.
- Initialiseer een object van de klasse [Document][8] en laad een PDF-bronbestand.
- Maak een object van de klasse [ParagraphAbsorber][14].
- Roep [visit(Document doc)][15] op dat zoekt naar secties en paragrafen over het gespecificeerde document.
- Roep [getPageMarkups()][16] aan om een verzameling van [PageMarkup][28] op te halen die zijn geabsorbeerd.
- Doorloop de verzameling van [MarkupSection][17] die op de pagina is gevonden met de methode [getSections()][18].
- Roep deze methode [getParagraphs()][19] aan die de verzameling van [MarkupParagraph][20] ophaalt die op de pagina is gevonden.
- Roep de methode [getLines()][21] aan om regels van de alinea te herhalen.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
// Initialize an object of Document class and load a source PDF file. Document doc = new Document( "./static/sample.pdf"); // Create an object of ParagraphAbsorber class. ParagraphAbsorber absorber = new ParagraphAbsorber(); // Call visit(Document doc) that performs search for sections and paragraphs on the specified document. absorber.visit(doc); // Invoke getPageMarkups() to gets collection of PageMarkup that were absorbed. for (PageMarkup markup : absorber.getPageMarkups()) { int i = 1; // Loop through the collection of MarkupSection that was found on the page using getSections() method. for (MarkupSection section : markup.getSections()) { int j = 1; // Invoke thsi getParagraphs() methid that gets collection of MarkupParagraph that was found on the page. https://apireference.aspose.com/pdf/java/com.aspose.pdf/PageMarkup#getParagraphs-- for (MarkupParagraph paragraph : section.getParagraphs()) { StringBuilder paragraphText = new StringBuilder(); // Call getLines() method to iterate lines of the paragraph. for (java.util.List<TextFragment> line : paragraph.getLines()) { for (TextFragment fragment : line) { paragraphText.append(fragment.getText()); } paragraphText.append("\r\n"); } paragraphText.append("\r\n"); System.out.println("Paragraph "+j+" of section "+ i + " on page"+ ":"+markup.getNumber()); System.out.println(paragraphText.toString()); j++; } i++; } }
Ontvang een gratis licentie
U kunt een [gratis tijdelijke licentie][22] krijgen om de [API][2] zonder evaluatiebeperkingen uit te proberen.
Opsommen
Dit brengt ons aan het einde van dit artikel. We hebben besproken hoe tekst programmatisch uit een PDF-bestand in Java kan worden geëxtraheerd. Daarnaast hebben we de codefragmenten doorgenomen om tekst uit een bepaald paginagebied te extraheren en hebben we ook tekstextractie in alineavorm onderzocht. Bovendien kunt u de [documentatie][23] doornemen om andere functies van deze [PDF Java-bibliotheek][2] te ontdekken. Ten slotte schrijft [conholdate.com][23] consequent nieuwe blogposts. Blijf daarom op de hoogte voor de laatste updates.
Een vraag stellen
Als u vragen heeft, kunt u ons schrijven op het [forum][24].
Zie ook
- [Conversie van PDF naar afbeelding in Java - PDF naar PNG, PDF naar JPEG][25]
- [Converteer SVG programmatisch naar PDF in Java][26]
- [XML importeren in Excel in Node.js][27] [1]: https://docs.fileformat.com/pdf/ [2]: https://products.aspose.com/pdf/java/ [3]: #PDF-Java-library—installation-steps [4]: #Extract-Text-from-a-PDF-File-in-Java [5]: #How-to-extract-text-from-a-particular-page-region [6]: #Java-library-to-extract-text-from-PDF-file-in-paragraphs-form [7]: https://releases.aspose.com/pdf/java/ [8]: https://apireference.aspose.com/pdf/java/com.aspose.pdf/Document [9]: https://apireference.aspose.com/pdf/java/com.aspose.pdf/TextAbsorber [10]: https://apireference.aspose.com/pdf/java/com.aspose.pdf/Document#getPages-- [11]: https://apireference.aspose.com/pdf/java/com.aspose.pdf/TextAbsorber#getText-- [12]: https://apireference.aspose.com/pdf/java [13]: https://apireference.aspose.com/pdf/java/com.aspose.pdf/TextAbsorber#getTextSearchOptions-- [14]: https://apireference.aspose.com/pdf/java/com.aspose.pdf/ParagraphAbsorber [15]: https://apireference.aspose.com/pdf/java/com.aspose.pdf/ParagraphAbsorber#visit-com.aspose.pdf.Document- [16]: https://apireference.aspose.com/pdf/java/com.aspose.pdf/ParagraphAbsorber#getPageMarkups-- [17]: https://apireference.aspose.com/pdf/java/com.aspose.pdf/MarkupSection [18]: https://reference.aspose.com/pdf/java/com.aspose.pdf/page/Markup#getSections-- [19]: https://reference.aspose.com/pdf/java/com.aspose.pdf/page/Markup#getParagraphs-- [20]: https://apireference.aspose.com/pdf/java/com.aspose.pdf/MarkupParagraph [21]: https://apireference.aspose.com/pdf/java/com.aspose.pdf/MarkupParagraph#getLines-- [22]: https://purchase.conholdate.com/temporary-license [23]: https://docs.aspose.com/pdf/java/ [24]: https://forum.conholdate.com/ [25]: https://blog.conholdate.com/nl/total/pdf-to-image-conversion-in-java-pdf-to-png-pdf-to-jpeg/ [26]: https://blog.conholdate.com/nl/total/convert-svg-to-pdf-programmatically-in-java/ [27]: https://blog.conholdate.com/nl/total/import-xml-into-excel-in-nodejs/ [28]: https://reference.aspose.com/pdf/java/com.aspose.pdf/page/Markup