Znajdź i zamień tekst w PDF Java

W różnych przypadkach może być konieczne znalezienie i zastąpienie określonego fragmentu tekstu w dokumentach PDF. Jednak ręczne wyszukiwanie i aktualizowanie każdego wystąpienia może kosztować dodatkowy czas i wysiłek. W takich przypadkach opcja znajdź i zamień ułatwia życie. W tym artykule dowiesz się, jak znaleźć i zamienić tekst w dokumentach PDF za pomocą Java.

Interfejs API języka Java do znajdowania i zastępowania tekstu w formacie PDF — bezpłatne pobieranie

Aspose.PDF for Java jest przeznaczony do generowania i manipulowania plikami PDF z poziomu aplikacji Java. Interfejs API zapewnia szeroki zakres podstawowych i zaawansowanych funkcji manipulacji plikami PDF, w tym znajdowanie i zastępowanie tekstu. Możesz pobrać interfejs API lub zainstalować go przy użyciu następujących konfiguracji Mavena.

<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>21.1</version>    
</dependency>

Znajdź i zamień tekst w pliku PDF przy użyciu języka Java

Aby zastąpić określony tekst w pliku PDF, najpierw uzyskasz wszystkie fragmenty tekstu pasujące do wyszukiwanego ciągu. Gdy już je masz, po prostu zastąp każdy fragment zaktualizowanym tekstem jeden po drugim.

Poniżej przedstawiono kroki znajdowania i zastępowania tekstu w pliku PDF przy użyciu języka Java.

Poniższy przykładowy kod pokazuje, jak znaleźć i zamienić tekst w pliku PDF.

// Pełne przykłady i pliki danych można znaleźć na stronie https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Otwórz dokument
Document pdfDocument = new Document("source.pdf");

// Utwórz obiekt TextAbsorber, aby znaleźć wszystkie wystąpienia wprowadzonej frazy wyszukiwania
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");

// Zaakceptuj pochłaniacz dla wszystkich stron dokumentu
pdfDocument.getPages().accept(textFragmentAbsorber);

// Pobierz wyodrębnione fragmenty tekstu do kolekcji
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Przejrzyj fragmenty
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Zaktualizuj tekst i inne właściwości
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Zapisz zaktualizowany plik PDF
pdfDocument.save("Updated_Text.pdf");

Wyszukaj i zamień tekst na określonej stronie w formacie PDF

Zamiast znajdować i zastępować tekst w całym pliku PDF, możesz określić pojedynczą stronę, na której chcesz zastąpić wystąpienia tekstu. W takim przypadku zaakceptujesz TextFragmentAbsorber dla konkretnej strony tylko poprzez podanie indeksu strony.

Poniżej przedstawiono kroki wyszukiwania i zastępowania tekstu na określonej stronie w formacie PDF w języku Java.

Poniższy przykładowy kod pokazuje, jak znaleźć i zamienić tekst na określonej stronie w pliku PDF przy użyciu języka Java.

// Pełne przykłady i pliki danych można znaleźć na stronie https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Otwórz dokument
Document pdfDocument = new Document("source.pdf");

// Utwórz obiekt TextAbsorber, aby znaleźć wszystkie wystąpienia wprowadzonej frazy wyszukiwania
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");

// Zaakceptuj pochłaniacz pierwszej strony dokumentu
pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber);

// Pobierz wyodrębnione fragmenty tekstu do kolekcji
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Przejrzyj fragmenty
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Zaktualizuj tekst i inne właściwości
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Zapisz zaktualizowany plik PDF
pdfDocument.save("Updated_Text.pdf");

Znajdź i zamień tekst za pomocą wyrażeń regularnych w formacie PDF

Możesz także określić wyrażenie regularne, aby wyszukać tekst pasujący do określonego wzorca, takiego jak e-maile, numery SSN itp. Poniżej przedstawiono kroki definiowania i używania wyrażenia regularnego do wyszukiwania i zastępowania tekstu w formacie PDF przy użyciu języka Java.

Poniższy przykładowy kod pokazuje, jak znaleźć i zamienić tekst w pliku PDF przy użyciu wyrażenia regularnego.

// Pełne przykłady i pliki danych można znaleźć na stronie https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Otwórz dokument
Document pdfDocument = new Document("input.pdf");

// Utwórz obiekt TextAbsorber, aby znaleźć wszystkie wystąpienia wprowadzonej frazy wyszukiwania
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000

// Ustaw opcję wyszukiwania tekstowego, aby włączyć użycie wyrażeń regularnych
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);

// Zaakceptuj pochłaniacz dla wszystkich stron dokumentu
pdfDocument.getPages().accept(textFragmentAbsorber);

// Pobierz wyodrębnione fragmenty tekstu do kolekcji
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Przejrzyj fragmenty
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Zaktualizuj tekst i inne właściwości
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}

// Zapisz zaktualizowany plik PDF
pdfDocument.save("Updated_Text.pdf");

Uzyskaj bezpłatną licencję API

Możesz wypróbować interfejs API bez ograniczeń ewaluacyjnych za darmo. Uzyskaj bezpłatną licencję tymczasową teraz.

Wniosek

W tym artykule nauczyłeś się znajdować i zastępować tekst w formacie PDF przy użyciu języka Java. Ponadto widziałeś, jak używać wyrażeń regularnych do wyszukiwania i zastępowania tekstu według określonego wzorca. Możesz dowiedzieć się więcej o interfejsie Java PDF API, korzystając z dokumentacji.

Zobacz też