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.
- Java API do znajdowania i zastępowania tekstu w formacie PDF
- Znajdź i zamień tekst w pliku PDF przy użyciu języka Java
- Zastąp tekst na określonej stronie w formacie PDF
- Zastąp tekst za pomocą wyrażenia regularnego
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.
- Załaduj plik PDF przy użyciu klasy Document.
- Utwórz obiekt klasy TextFragmentAbsorber i zainicjuj go tekstem, który chcesz znaleźć i zamienić.
- Zaakceptuj absorber dla stron w PDF za pomocą metody Document.getPages().accept(TextFragmentAbsorber).
- Pobierz wszystkie wystąpienia tekstu zwróconego przez TextFragmentAbsorber.getTextFragments() do obiektu TextFragmentCollection.
- Przejdź przez każdy TextFragment w obiekcie TextFragmentCollection i zastąp tekst za pomocą metody TextFragment.setText(String).
- Zapisz zaktualizowany plik PDF przy użyciu metody Document.save(String).
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.
- Załaduj plik PDF przy użyciu klasy Document.
- Utwórz obiekt klasy TextFragmentAbsorber i zainicjuj go tekstem, który chcesz znaleźć i zamienić.
- Zaakceptuj absorber dla określonej strony w PDF za pomocą metody Document.getPages().getItem(Int pageIndex).accept(TextFragmentAbsorber).
- Pobierz wszystkie wystąpienia tekstu zwróconego przez TextFragmentAbsorber.getTextFragments() do obiektu TextFragmentCollection.
- Przejdź przez każdy element TextFragment w obiekcie TextFragmentCollection i zamień tekst przy użyciu metody TextFragment.setText(String).
- Zapisz zaktualizowany plik PDF za pomocą metody Document.save(String).
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.
- Załaduj plik PDF za pomocą klasy Document.
- Utwórz obiekt klasy TextFragmentAbsorber i zainicjuj go wyrażeniem regularnym, którego chcesz użyć.
- Utwórz obiekt klasy TextSearchOptions i zainicjuj go wartością true, aby włączyć wyszukiwanie oparte na wyrażeniach regularnych.
- Ustaw opcje za pomocą metody TextFragmentAbsorber.setTextSearchOptions(TextSearchOptions).
- Zaakceptuj absorber dla stron w PDF za pomocą metody Document.getPages().accept(TextFragmentAbsorber).
- Pobierz wszystkie znalezione wystąpienia tekstu zwróconego przez TextFragmentAbsorber.getTextFragments() do obiektu TextFragmentCollection.
- Przejdź przez każdy element TextFragment w obiekcie TextFragmentCollection i zamień tekst przy użyciu metody TextFragment.setText(String).
- Zapisz zaktualizowany plik PDF za pomocą metody Document.save(String).
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.