Jak zastąpić tekst w pliku PDF
IronPDF dla Java daje programistom bezposrednia kontrole nad istniejaca zawartoscia PDF przez metode replaceText. Niezaleznie od tego, czy potrzeba poprawic blad w generowanym raporcie, zamienic numery wersji w szablonie dokumentu, czy personalizowac umowy danymi specyficznymi dla klienta, metoda przyjmuje wybór stron, ciag przeszukiwany i ciag zastepujacy i obsluguj reszte. Ten przewodnik omawia wymiane dla jednej strony, celowanie w wiele stron, kazda dostepna opcje PageSelection i praktyczne wzorce dla przeplywow roboczych opartych na szablonach.
Szybki start: Zamiana tekstu w PDF
Dodaj zaleznosc IronPDF, zaladuj lub wyrenderuj PDF, wywolaj replaceText i zapisz wynik:
:title=Quickstart Replace Text
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/quickstart.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
public class App {
public static void main(String[] args) throws IOException {
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");
pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7");
pdf.saveAs("replaceText.pdf");
}
}
:title=Quickstart Replace Text
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/quickstart.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
public class App {
public static void main(String[] args) throws IOException {
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");
pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7");
pdf.saveAs("replaceText.pdf");
}
}
Minimalny proces (5 kroków)
- Pobierz bibliotekę Java, aby zastąpić tekst w pliku PDF
- Załaduj istniejący PDF lub renderuj z HTML
- Wywołaj
pdf.replaceText(PageSelection, oldText, newText)aby zastąpić na wybranych stronach - Użyj metod
PageSelectionaby kontrolować które strony są modyfikowane - Zapisz i wyeksportuj zaktualizowany PDF używając
pdf.saveAs('output.pdf')
Jak zastąpić tekst na jednej stronie?
Metoda replaceText przyjmuje trzy argumenty: PageSelection celujacy w jedna lub wiecej stron, dokladny tekst do znalezienia i ciag zastepujacy. Aby celowac w pierwsza strone, przekaz PageSelection.firstPage(). Wszystkie wystąpienia ciągu wyszukiwania na tej stronie są zastępowane jednym wywołaniem. Jeśli tekst nie zostanie znaleziony na docelowych stronach, metoda wyrzuca wyjątek środowiska uruchomieniowego. Zrzut ekranu poniżej pokazuje jak wygląda ten wyjątek w konsoli.

Jakie parametry akceptuje replaceText?
Sygnatura metody to replaceText(PageSelection pageSelection, String oldText, String newText). Dopasowywanie jest domyslnie uwzgledniajace wielkosc liter: "net6" i "NET6" sa traktowane jako rozne ciagi. Zweryfikuj dokładną wielkość liter w renderowanym PDF przed wywołaniem metody. Możesz potwierdzić dokładny tekst wyodrębniając zawartość tekstową PDF-a najpierw. Zależność IronPDF Java jest opublikowana na Maven Central i wymaga Javy 8 lub nowszej.
:title=Replace Text on First Page
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-single-page.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key (required for production use)
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Render HTML content into a PDF document
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");
// Define the search and replacement strings
String oldText = ".NET6";
String newText = ".NET7";
// Replace all instances of oldText on the first page only
// PageSelection.firstPage() targets page index 0
pdf.replaceText(PageSelection.firstPage(), oldText, newText);
// Save the modified PDF
pdf.saveAs("replaceText.pdf");
}
}
:title=Replace Text on First Page
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-single-page.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key (required for production use)
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Render HTML content into a PDF document
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");
// Define the search and replacement strings
String oldText = ".NET6";
String newText = ".NET7";
// Replace all instances of oldText on the first page only
// PageSelection.firstPage() targets page index 0
pdf.replaceText(PageSelection.firstPage(), oldText, newText);
// Save the modified PDF
pdf.saveAs("replaceText.pdf");
}
}
Metoda replaceText naturalnie integruje sie z workflow konwersji HTML do PDF IronPDF. Najpierw renderuj szablon HTML, potem stosuj zamianę tekstu, aby wprowadzić dynamiczne wartości. Dzięki temu Twój HTML jest czysty, podczas gdy nadal produkujesz spersonalizowane wyniki. Dla dokumentow zaladowanych z dysku, przekaz sciezke pliku do PdfDocument.fromFile zamiast uzywac renderHtmlAsPdf.
Jak wygląda wynik?
Jak zamienić tekst na wielu stronach?
Aby celowac w konkretne strony, a nie tylko w pierwsza, przekaz liste numerow stron indeksowanych od zera do PageSelection.pageRange(List<Integer>). Metoda zastępuje tekst wyszukiwania na każdej stronie z listy i pozostawia wszystkie inne strony nienaruszone. Ten wzorzec pasuje do dokumentów z jednolitymi nagłówkami lub stopkami na znanych stronach, lub raportów generowanych partiami, gdzie ciąg wersji pojawia się tylko na niektórych stronach.
Jakie strony są modyfikowane, gdy używam listy stron?
W poniższym przykładzie, trzystronicowy PDF jest tworzony z HTML. Wymiana dziala na stronach 0 i 2 (pierwsza i trzecia strona). Strona 1 (druga strona) zachowuje oryginalny tekst bez zmian. Indeksy stron zawsze zaczynaja sie od 0, zgodnie z konwencjami typu array zerowego w Javie.
:title=Replace Text on Multiple Specific Pages
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-multiple-pages.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Build a 3-page PDF from HTML using CSS page breaks
String html = "<p> .NET6 </p>" +
"<p> This is 1st Page </p>" +
"<div style='page-break-after: always;'></div>" +
"<p> This is 2nd Page</p>" +
"<div style='page-break-after: always;'></div>" +
"<p> .NET6 </p>" +
"<p> This is 3rd Page</p>";
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
String oldText = ".NET6";
String newText = ".NET7";
// Pages are zero-indexed: 0 = first page, 2 = third page
// Page index 1 (second page) is intentionally excluded
List<Integer> pages = Arrays.asList(0, 2);
pdf.replaceText(PageSelection.pageRange(pages), oldText, newText);
pdf.saveAs("replaceTextOnMultiplePages.pdf");
}
}
:title=Replace Text on Multiple Specific Pages
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-multiple-pages.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Build a 3-page PDF from HTML using CSS page breaks
String html = "<p> .NET6 </p>" +
"<p> This is 1st Page </p>" +
"<div style='page-break-after: always;'></div>" +
"<p> This is 2nd Page</p>" +
"<div style='page-break-after: always;'></div>" +
"<p> .NET6 </p>" +
"<p> This is 3rd Page</p>";
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
String oldText = ".NET6";
String newText = ".NET7";
// Pages are zero-indexed: 0 = first page, 2 = third page
// Page index 1 (second page) is intentionally excluded
List<Integer> pages = Arrays.asList(0, 2);
pdf.replaceText(PageSelection.pageRange(pages), oldText, newText);
pdf.saveAs("replaceTextOnMultiplePages.pdf");
}
}
0 jest pierwsza strona, strona 1 jest druga i tak dalej.Tworzac pdf wielostronicowe z HTML, uzyj wlasciwosci CSS page-break-after, aby kontrolowac, gdzie znajduja sie granice stron. Ustawienie właściwego niestandardowego rozmiaru papieru oraz orientacji strony przed renderowaniem zapewnia, że pozycje treści pasują do Twoich oczekiwań, gdy zamiana tekstu zostanie uruchomiona. Po zapisaniu, zweryfikuj wynik otwierając PDF i potwierdzając, że tylko docelowe strony się zmieniły.
Jak wygląda wynik?
IronSuite odgrywa kluczową rolę w naszej działalności. Są to narzędzia zwiększające wydajność w całej firmie, w tym tworzenie planów pięter i poprawa zarządzania zapasami.
Jakie opcje wyboru stron są dostępne?
Klasa PageSelection dostarcza statyczne metody fabryczne, które obejmuja kazdy powszechny wzorzec celowania. Nie jest potrzebne tworzenie instancji; wywołaj metody bezpośrednio na klasie. Wszystkie indeksy są zerowe.
Jakie metody celują w jedną vs. wiele stron?
Kiedy należy używać poszczególnych metod PageSelection?
allPages() jest najprostszym wyborem do globalnej operacji znajdz-i-zamien: kazda wystapienie tekstu docelowego w calej dokumencie jest zastepowane w jedno wywolanie. Uzyj firstPage() lub lastPage() do szybkich poprawek dla stron tytulowych lub stopki ostatniej strony bez dotykania wnetrza. Wybierz pageRange(int, int), gdy tekst pojawia sie na ciagi stron, takich jak rozdzial lub sekcja. Uzyj pageRange(List<Integer>), gdy strony docelowe nie sa ciagle; na przykład, gdy zamieniasz ciąg wersji, który pojawia się tylko na stronach 1, 3 i 7.
Pracując z scalonymi PDF-ami lub dokumentami zawierającymi zakładki i konspekty, najpierw zidentyfikuj zasięg stron dla każdej logicznej sekcji, a następnie zastosuj celowaną zamianę, aby uniknąć przypadkowej modyfikacji wspólnych nagłówków lub stopek. Dokumentacja referencyjna API IronPDF dla Java wymienia wszystkie przeciazenia PageSelection z pelna dokumentacja parametrow.
replaceText w blok try-catch. Metoda wyrzuca wyjątek środowiska uruchomieniowego, kiedy określony tekst do wyszukiwania nie jest znaleziony na żadnej z docelowych stron. Krok walidacyjny (wyodrębnianie tekstu i potwierdzenie, że ciąg jest obecny) zapobiega nieoczekiwanym awariom w produkcji.Jak zamieniam tekst na wszystkich stronach jednocześnie?
PageSelection.allPages() wykonuje wymiane dokumentu w jednym wywolaniu, co jest najbardziej wydajnym sposobem na globalna wymiane tokenow. Przykład poniżej ładuje PDF z dysku i zastępuje każde wystąpienie tokenu zastępczego w całym dokumencie:
:title=Replace Text on All Pages
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-all-pages.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load an existing PDF from disk
PdfDocument pdf = PdfDocument.fromFile(Paths.get("contract-template.pdf"));
// Replace the placeholder token on every page simultaneously
// This is equivalent to calling replaceText for each page individually
pdf.replaceText(PageSelection.allPages(), "{{VERSION}}", "2.0");
// Save the updated document
pdf.saveAs("contract-v2.pdf");
}
}
:title=Replace Text on All Pages
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-all-pages.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load an existing PDF from disk
PdfDocument pdf = PdfDocument.fromFile(Paths.get("contract-template.pdf"));
// Replace the placeholder token on every page simultaneously
// This is equivalent to calling replaceText for each page individually
pdf.replaceText(PageSelection.allPages(), "{{VERSION}}", "2.0");
// Save the updated document
pdf.saveAs("contract-v2.pdf");
}
}
Ten wzorzec naturalnie współgra z szablonowymi przepływami pracy, gdzie ten sam token zastępczy pojawia się w nagłówkach, stopkach lub tekście w wielu stronach. Dla dokumentow jednostronicowych allPages() i firstPage() produkuja identyczne wyniki. Preferuj allPages(), gdy liczba stron moze sie zmieniac w czasie dzialania.
Jak radzić sobie z typowymi scenariuszami zamiany tekstu?
Zamiana tekstu w aplikacjach Java obejmuje kilka wzorców, które wykraczają poza prostą operację wyszukiwania i zamiany. Zrozumienie jak metoda zachowuje się w każdym przypadku zapobiega powstawaniu błędów zanim pojawią się w produkcji.
Jak dopasowanie wrażliwe na wielkość liter wpływa na wyniki?
replaceText wykonuje dokladne, uwzgledniajace wielkosc liter dopasowanie. Ciagi "Version 1.0", "version 1.0" i "VERSION 1.0" sa traktowane jako trzy odrebne wartosci. Przed uruchomieniem zamiany na dokumencie załadowanym z dysku, potwierdź dokładną wielkość liter, przeglądając oryginale źródło lub wyodrębniając tekst z PDF-a i analizując go programowo.
Jak zamienić tekst w formularzach PDF?
PDF-y, które zawierają interaktywne pola formularzy, przechowują swoje wartości tekstowe oddzielnie od strumienia treści dokumentu, zgodnie z specyfikacją PDF. Metoda replaceText operuje na przetworzonym strumieniu i nie modyfikuje wartosci pol formularza. Aby zaktualizować tekst wewnątrz pól formularzy, użyj dedykowanego API tworzenia i edytowania formularzy IronPDF. Łączenie obu podejść w tym samym dokumencie jest bezpieczne: aktualizacje pól formularzy i zamiany w strumieniach treści nie wchodzą sobie w drogę.
Jak zaktualizować tekst w przepływach pracy opartych szablonach?
Powszechnym wzorcem jest utrzymywanie szablonu PDF z tokenami miejsce trzymania (na przyklad {{CUSTOMER_NAME}} lub [INVOICE_DATE]) i zastepowanie ich w czasie dzialania rzeczywistymi wartosciami. Wywolaj replaceText raz na miejsce trzymania, uzywajac PageSelection.allPages(), aby zamiana obejmowala kazda lokalizacje, w której pojawia sie token. Dla dokumentow generowanych z HTML, ten workflow dziala rownie dobrze z renderHtmlAsPdf nastepnie z serią wywolan zamieniajacych. Połącz to z znakowaniem PDF lub tłem i pierwszym planem aby dodać markowanie lub oznaczenie poufności do końcowego wyniku.
Jakie są następne kroki dla zamiany tekstu PDF w Java?
Ten przewodnik objal wymiane jednostronicowa z PageSelection.firstPage(), selektywna wymiane wielostronicowa z PageSelection.pageRange(), wymiane calego dokumentu z PageSelection.allPages() oraz pelny zestaw metod fabrycznych PageSelection. To samo API replaceText dziala, niezaleznie od tego, czy dokument zostal wyrenderowany z HTML-u, zaladowany z dysku czy polaczony przez laczenie wielu zrodel.
Rozpocznij bezpłatny okres próbny IronPDF dla Java i uruchom powyższe przykłady kodu na własnych dokumentach. Kiedy będziesz gotowy do wdrożenia w produkcji, przejrzyj opcje licencyjne. Licencje są na programistę i obejmują rok aktualizacji produktu.
Gotowy, aby zobaczyć co jeszcze może zrobić IronPDF dla Java? Przeglądaj kompletne przewodniki jak-to IronPDF dla Java dla samouczków na temat generowania PDF, anotacji, cyfrowych podpisów, kompresji i więcej.
Często Zadawane Pytania
Jak zamienic tekst w PDF uzywajac Java?
Użyj metody replaceText IronPDF. Wywołaj pdf.replaceText(PageSelection.firstPage(), "oldText", "newText"), aby zastąpić wszystkie wystąpienia starego tekstu na określonej stronie. IronPDF znajduje i zastępuje każde wystąpienie, zachowując oryginalne formatowanie.
Jakie parametry przyjmuje metoda replaceText?
Metoda przyjmuje trzy parametry: PageSelection, aby określić, które strony modyfikować, String z tekstem do znalezienia oraz String z tekstem zamiennym. Na przykład, pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7") zastępuje wszystkie wystąpienia na pierwszej stronie.
Czy moge zamieniac tekst tylko na okreslonych stronach?
Tak. Użyj PageSelection.firstPage() dla strony 0, PageSelection.lastPage() dla ostatniej strony, PageSelection.singlePage(n) dla dowolnej strony przez indeks zero, lub PageSelection.pageRange() z listą liczb całkowitych dla nieciągłych stron.
Co się dzieje, jeśli tekst do zamiany nie zostanie znaleziony?
IronPDF wyrzuca wyjątek czasu wykonania (Exception_RemoteException), gdy docelowy tekst nie może zostać znaleziony na wskazanych stronach. Opakuj wywołanie w blok try-catch i opcjonalnie wyciągnij tekst PDF najpierw, aby zweryfikować, że ciąg istnieje, zanim wywołasz replaceText.
Czy dopasowanie tekstu jest wrażliwe na wielkość liter?
Tak. Metoda replaceText wykonuje precyzyjne, wrażliwe na wielkość liter dopasowanie. Ciągi "Version 1.0", "version 1.0" i "VERSION 1.0" są traktowane jako trzy różne wartości. Zweryfikuj dokładność wielkości liter przed wywołaniem metody.
Czy replaceText zmienia wartości pól formularzy?
Nie. Metoda replaceText działa na strumieniu zawartości PDF i nie zmienia wartości pól interaktywnych formularzy. Aby zaktualizować pola formularzy, użyj dedykowanego API edytowania formularzy IronPDF za pośrednictwem metod formularza PdfDocument.
Jak zamienić token na każdej stronie jednocześnie?
Użyj PageSelection.allPages() jako pierwszego argumentu do replaceText. To zastępuje każde wystąpienie docelowego tekstu na wszystkich stronach w jednym wywołaniu, co jest preferowanym podejściem dla przepływów pracy opartych na szablonach z całościowymi symbolami zastępczymi dokumentu.


