
Wyodrębnij tekst z pliku PDF w Javie
W tym dynamicznym świecie ilość danych rośnie wykładniczo. Pliki PDF są szeroko wykorzystywane do przechowywania i reprezentowania danych. Przechodzenie przez dużą liczbę stron PDF w celu uzyskania dostępu do przydatnych akapitów staje się trudne. Dlatego dowiemy się, jak programowo wyodrębnić tekst z pliku PDF w Javie. Jednak automatyzacja całego procesu wyodrębniania tekstu pozwoli zaoszczędzić czas i wysiłek oraz zapewni wydajność. Będziemy korzystać z łatwej w instalacji biblioteki PDF Java, która oferuje konfigurowalne metody pracy z plikami PDF.
W tym poście na blogu zostaną omówione następujące kwestie:
- PDF Biblioteka Java - kroki instalacji
- Wyodrębnij tekst z pliku PDF w Javie
- Jak wyodrębnić tekst z określonego obszaru strony
- Biblioteka Java do wyodrębniania tekstu z pliku PDF w formie akapitów
PDF Biblioteka Java - kroki instalacji
Możesz łatwo zainstalować tę bibliotekę w swojej aplikacji Java, pobierając pliki jar lub możesz skorzystać z poniższych konfiguracji Mavena.
Magazyn
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
Zależność
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>20.12</version>
<classifier>jdk17</classifier>
</dependency>
Wyodrębnij tekst z pliku PDF w Javie
W tej sekcji napiszemy kroki i fragment kodu, który wyodrębni tekst ze wszystkich stron dokumentu PDF.
Wykonaj następujące kroki:
- Otwórz dokument PDF, tworząc obiekt klasy Document.
- Zainicjuj obiekt klasy TextAbsorber, aby wyodrębnić tekst.
- Wywołaj metodę getPages(), która akceptuje absorber dla wszystkich stron.
- Pobierz wyodrębniony tekst, wywołując metodę getText().
- Zapisz wyodrębniony tekst do pliku i zamknij moduł zapisywania.
Skopiuj i wklej następujący fragment kodu, aby programowo wyodrębnić tekst z dokumentu PDF.
// Otwórz dokument PDF, tworząc obiekt klasy Document.
Document pdfDocument = new Document("INPUT-PDF-FILE");
// Zainicjuj obiekt TextAbsorber, aby przeprowadzić wyodrębnianie tekstu.
TextAbsorber textAbsorber = new TextAbsorber();
// Wywołaj metodę getPages(), która akceptuje absorber dla wszystkich stron.
pdfDocument.getPages().accept(textAbsorber);
// Pobierz wyodrębniony tekst, wywołując metodę getText().
String extractedText = textAbsorber.getText();
try {
FileWriter writer = new FileWriter( "PATH-FOR-OUTPUT-FILE/extracted-text.txt", true);
// Napisz linię tekstu do pliku
writer.write(extractedText);
// Zamknij strumień
writer.close();
} catch (java.io.IOException e) {
e.printStackTrace();
}
Jak wyodrębnić tekst z określonego obszaru strony
Ta [biblioteka] umożliwia także wyodrębnienie tekstu z żądanej strony dokumentu PDF.
Aby to osiągnąć, wykonamy następujące kroki:
- Utwórz obiekt klasy Document i załaduj źródłowy plik PDF.
- Utwórz instancję obiektu klasy TextAbsorber w celu wyodrębnienia danych.
- Wywołaj metodę getTextSearchOptions() pozwalającą na zdefiniowanie prostokąta wyznaczającego wyodrębniony tekst.
- Wywołaj getPages(), aby pobrać kolekcję stron dokumentu i zaakceptować absorber dla pierwszej strony.
- Wywołaj getText(), aby pobrać wyodrębniony tekst i zapisać go w pliku.
- Wywołaj metodę close(), aby zamknąć strumień.
Skopiuj i wklej następujący fragment kodu do pliku Java:
// utwórz obiekt klasy Document i załaduj źródłowy plik PDF.
Document doc = new Document("INPUT-PDF-FILE");
// utwórz instancję obiektu TextAbsorber w celu wyodrębnienia danych.
TextAbsorber absorber = new TextAbsorber();
// wywołaj metodę getTextSearchOptions(), która pozwala zdefiniować prostokąt ograniczający wyodrębniony tekst.-
absorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250, 350));
// wywołaj funkcję getPages(), aby pobrać zbiór stron dokumentu i zaakceptować absorber dla pierwszej strony.
doc.getPages().get_Item(1).accept(absorber);
// Wywołaj funkcję getText(), aby pobrać wyodrębniony tekst i zapisać go w pliku
String extractedText = absorber.getText();
// utwórz moduł piszący i otwórz plik
BufferedWriter writer = new BufferedWriter(new FileWriter(new java.io.File("PATH-FOR-OUTPUT-FILE/ExtractedText.txt")));
// napisz wyodrębnioną zawartość
writer.write(extractedText);
// Bliski pisarz
writer.close();
Biblioteka Java do wyodrębniania tekstu z pliku PDF w formie akapitów
W tej sekcji przedstawiono następujące kroki i fragmenty kodu umożliwiające wyodrębnienie danych z dokumentów PDF w akapitach.
- Zainicjuj obiekt klasy Document i załaduj źródłowy plik PDF.
- Utwórz obiekt klasy ParagraphAbsorber.
- Wywołanie visit(Document doc), które przeszukuje sekcje i akapity w określonym dokumencie.
- Wywołaj getPageMarkups(), aby pobrać kolekcję PageMarkup, które zostały wchłonięte.
- Przejrzyj kolekcję MarkupSection, która została znaleziona na stronie, używając metody getSections().
- Wywołaj metodę getParagraphs(), która pobiera kolekcję MarkupParagraph znalezioną na stronie.
- Wywołaj metodę getLines(), aby iterować wiersze akapitu.
// Zainicjuj obiekt klasy Document i załaduj źródłowy plik PDF.
Document doc = new Document( "./static/sample.pdf");
// Utwórz obiekt klasy ParagraphAbsorber.
ParagraphAbsorber absorber = new ParagraphAbsorber();
// Wywołaj wizytę (dokument dokumentu), która przeszukuje sekcje i akapity określonego dokumentu.
absorber.visit(doc);
// Wywołaj funkcję getPageMarkups(), aby pobrać kolekcję wchłoniętych znaczników PageMarkup.
for (PageMarkup markup : absorber.getPageMarkups()) {
int i = 1;
// Przejdź przez kolekcję MarkupSection znalezioną na stronie, używając metody getSections().
for (MarkupSection section : markup.getSections()) {
int j = 1;
// Wywołaj metodę getParagraphs(), która pobiera kolekcję MarkupParagraph znalezioną na stronie. https://apireference.aspose.com/pdf/java/com.aspose.pdf/PageMarkup#getParagraphs--
for (MarkupParagraph paragraph : section.getParagraphs()) {
StringBuilder paragraphText = new StringBuilder();
// Wywołaj metodę getLines(), aby iterować wiersze akapitu.
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++;
}
}
Zdobądź bezpłatną licencję
Możesz uzyskać bezpłatną licencję tymczasową, aby wypróbować API bez ograniczeń ewaluacyjnych.
Podsumowując
To prowadzi nas do końca tego artykułu. Omówiliśmy, jak programowo wyodrębnić tekst z pliku PDF w Javie. Ponadto sprawdziliśmy fragmenty kodu umożliwiające wyodrębnienie tekstu z określonego regionu strony, a także sprawdziliśmy wyodrębnianie tekstu w formie akapitu. Ponadto możesz przejrzeć dokumentację, aby poznać inne funkcje tej biblioteki PDF Java. Wreszcie conholdate.com konsekwentnie pisze nowe posty na blogu. Dlatego prosimy o kontakt w celu uzyskania najnowszych aktualizacji.
Zadać pytanie
W razie jakichkolwiek pytań prosimy pisać do nas na forum.