Jak zastąpić tekst w pliku PDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF for Java zapewnia programistom bezpośrednią kontrolę nad istniejącą zawartością plików PDF za pomocą metody replaceText. Niezależnie od tego, czy chcesz poprawić literówkę w partii wygenerowanych raportów, zamienić numery wersji w szablonach dokumentów, czy spersonalizować umowy danymi konkretnego klienta, metoda ta akceptuje wybór strony, ciąg wyszukiwania i ciąg zastępczy, a resztą zajmuje się sama. Ten przewodnik obejmuje zamianę na jednej stronie, celowanie na wiele stron, każdą dostępną opcję PageSelection oraz praktyczne wzorce dla przepływów pracy opartych na szablonach.

Szybki start: Zmiana tekstu w pliku PDF

Dodaj zależność IronPDF, załaduj lub wyrenderuj plik PDF, wywołaj replaceText i zapisz wynik:

```java :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.IO/Exception;

public class App { public static void main(String[] args) throws IOException { License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01"); PdfDocument pdf = PdfDocument.renderHtmlAsPdf(""); pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7"); pdf.saveAs("replaceText.pdf"); } }


<div class="hsg-featured-snippet">
    <h3>Minimalny przebieg pracy (5 kroków)</h3>
    <ol>
        <li><a class="js-modal-open" data-modal-id="download-modal" href="#download-modal">Pobierz bibliotekę Java, aby zastąpić tekst w pliku PDF</a></li>
        <li>Załaduj istniejący plik PDF lub wygeneruj go z kodu HTML</li>
        <li>Zastąpić <code>pdf.replaceText(PageSelection, oldText, newText)</code> w celu zastąpienia na docelowych stronach</li>
        <li>Należy używać <code>PageSelection</code> metod, aby kontrolować, które strony są modyfikowane</li>
        <li>Zapisz i wyeksportuj zaktualizowany plik PDF za pomocą <code>pdf.saveAs(&quot;output.pdf&quot;)</code></li>
    </ol>
</div>

## Jak zastąpić tekst na jednej stronie?

Metoda `replaceText` przyjmuje trzy argumenty: `PageSelection`, który odnosi się do jednej lub więcej stron, dokładny tekst do znalezienia oraz ciąg zastępczy. Aby wyświetlić pierwszą stronę, należy przekazać `PageSelection.firstPage()`. Wszystkie wystąpienia ciągu wyszukiwania na tej stronie są zastępowane w ramach jednego wywołania. Jeśli tekstu nie można znaleźć na docelowych stronach, metoda zgłasza wyjątek wykonania. Poniższy zrzut ekranu pokazuje, jak ten wyjątek wygląda w konsoli.

![Wynik działania konsoli IronPDF pokazujący wyjątek Exception_RemoteException, gdy podczas operacji replaceText nie można znaleźć tekstu docelowego ](/static-assets/ironpdf-java/howto/find-replace-text/cannotfindtext.webp)

### Jakie parametry akceptuje replaceText?

Sygnatura metody to `replaceText(PageSelection pageSelection, String oldText, String newText)`. Domyślnie dopasowywanie uwzględnia wielkość liter: `"net6"` i `"NET6"` są traktowane jako różne ciągi znaków. Przed wywołaniem metody sprawdź dokładną wielkość liter w wygenerowanym pliku PDF. Możesz sprawdzić dokładny tekst, [wyodrębniając](https://ironpdf.com/java/examples/extract-image-from-pdf/) najpierw [treść tekstową pliku PDF](https://ironpdf.com/java/examples/extract-image-from-pdf/). Zależność IronPDF Java jest opublikowana w [Maven](https://central.sonatype.com/artifact/com.ironsoftware/ironpdf) i wymaga Javy 8 lub nowszej.

```java :title=Zastąp tekst na pierwszej stronie
//: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.IO/Exception;

public class App {

    public static void main(String[] args) throws IOException {

        // Ustaw klucz licencyjny IronPDF (wymagany do użytku produkcyjnego)
        License.setLicenseKey(&quot;IronPDF-MYLICENSE-KEY-1EF01&quot;);

        // Renderowanie treści HTML do dokumentu PDF
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");

        // Zdefiniuj ciągi do wyszukiwania i zamiany
        String oldText = &quot;.NET6&quot;;
        String newText = &quot;.NET7&quot;;

        // Zastąp wszystkie wystąpienia oldText tylko na pierwszej stronie
        // PageSelection.firstPage() odwołuje się do indeksu strony 0
        pdf.replaceText(PageSelection.firstPage(), oldText, newText);

        // Zapisz zmodyfikowany plik PDF
        pdf.saveAs(&quot;replaceText.pdf&quot;);
    }
}

PoradyZaładuj klucz licencyjny raz przy uruchomieniu aplikacji, a nie przed każdą pojedynczą operacją. Pozwala to uniknąć powtarzających się obciążeń związanych z inicjalizacją podczas przetwarzania wielu dokumentów w tej samej sesji JVM.

Metoda replaceText w naturalny sposób integruje się z procesem konwersji HTML do PDF w IronPDF. Najpierw należy wyrenderować szablon HTML, a następnie zastosować zamianę tekstu w celu wstawienia wartości dynamicznych. Dzięki temu kod HTML pozostaje przejrzysty, a jednocześnie generowane są spersonalizowane wyniki. W przypadku dokumentów ładowanych z dysku należy przekazać ścieżkę do pliku do PdfDocument.fromFile zamiast używać renderHtmlAsPdf.

Jak wygląda wynik?


Jak zastąpić tekst na wielu stronach?

Aby skierować tłumaczenie na konkretne strony, a nie tylko na pierwszą, należy przekazać listę numerów stron indeksowanych od zera do PageSelection.pageRange(List<Integer>). Metoda ta zastępuje tekst wyszukiwania na każdej stronie z listy, pozostawiając pozostałe strony bez zmian. Ten wzorzec nadaje się do dokumentów ze spójnymi nagłówkami lub stopkami na znanych stronach lub raportów generowanych partiami, w których ciąg wersji pojawia się tylko na niektórych stronach.

Które strony są modyfikowane podczas korzystania z listy stron?

W poniższym przykładzie z kodu HTML tworzony jest trzy stronicowy plik PDF. Zastąpienie dotyczy stron 0 i 2 (pierwsza i trzecia strona). Strona 1 (druga strona) zachowuje oryginalny tekst bez zmian. Indeksy stron zawsze zaczynają się od 0, zgodnie z konwencjami tablic w języku Java, gdzie indeksowanie zaczyna się od zera.

```java :title=Zastąp tekst na wielu określonych stronach //: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.IO/Exception; import java.util.Arrays; import java.util.List;

public class App {

public static void main(String[] args) throws IOException {

    // Ustaw klucz licencyjny IronPDF
    License.setLicenseKey(&quot;IronPDF-MYLICENSE-KEY-1EF01&quot;);

    // Utwórz 3-stronicowy plik PDF z HTML przy użyciu podziałów stron CSS
    String html = &quot;<p> .NET6 </p>&quot; +
                  &quot;<p> To jest pierwsza strona </p>&quot; +
                  &quot;<div style="page-break-after:> always;"></div>&quot; +
                  &quot;<p> To jest strona 2</p>&quot; +
                  &quot;<div style="page-break-after:> always;"></div>&quot; +
                  &quot;<p> .NET6 </p>&quot; +
                  &quot;<p> To jest strona trzecia</p>&quot;;

    PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);

    String oldText = &quot;.NET6&quot;;
    String newText = &quot;.NET7&quot;;

    // Strony są indeksowane od zera: 0 = pierwsza strona, 2 = trzecia strona
    // Indeks strony 1 (druga strona) został celowo pominięty
    List<integer> pages = Arrays.asList(0, 2);</integer>

    pdf.replaceText(PageSelection.pageRange(pages), oldText, newText);

    pdf.saveAs(&quot;replaceTextOnMultiplePages.pdf&quot;);
}

}


Zwróć uwagęWszystkie indeksy stron w IronPDF stosują indeksowanie od zera. Strona `0` jest pierwszą stroną, strona `1` jest drugą i tak dalej.
Podczas tworzenia wielostronicowych plików PDF z HTML należy użyć [właściwości](https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-after) [CSS `page-break-after`](https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-after), aby kontrolować rozmieszczenie granic stron. Ustawienie odpowiedniego [niestandardowego rozmiaru papieru](https://ironpdf.com/java/examples/custom-pdf-paper-size/) i [orientacji strony](https://ironpdf.com/java/examples/pdf-page-orientation/) przed renderowaniem gwarantuje, że po uruchomieniu funkcji zamiany tekstu pozycje treści będą zgodne z oczekiwaniami. Po zapisaniu sprawdź wynik, otwierając plik PDF i upewniając się, że zmieniono tylko docelowe strony. ### Jak wygląda wynik? <iframe loading="lazy" src="/static-assets/ironpdf-java/howto/find-replace-text/replaceTextOnMultiplePages.pdf" width="100%" height="400px"></iframe> <hr> ## Jakie opcje wyboru stron są dostępne? Klasa `PageSelection` udostępnia statyczne metody fabryczne, które obejmują wszystkie typowe wzorce kierowania. Nie jest wymagane tworzenie instancji; wywołać metody bezpośrednio w klasie. Wszystkie indeksy są liczone od zera. ### Które metody są przeznaczone dla pojedynczych stron, a które dla wielu stron? <table class="content__data-table" data-content-table> <caption>Metody fabryczne PageSelection dla interfejsu API replaceText</caption> | Metoda | Opis | |---|---| | `PageSelection.allPages()` | Wybiera każdą stronę w dokumencie | | `PageSelection.firstPage()` | Wybiera stronę w indeksie `0` | | `PageSelection.lastPage()` | Wybiera ostatnią stronę niezależnie od długości dokumentu | | `PageSelection.singlePage(int pageIndex)` | Wybiera jedną konkretną stronę według indeksu zaczynającego się od zera | | `PageSelection.pageRange(int startIndex, int endIndex)` | Wybiera ciągły zakres od `startIndex` do `endIndex` włącznie | | `PageSelection.pageRange(List<Integer> pageList)` | Wybiera strony o dowolnym zestawie indeksów (np. `[0, 2]` wybiera strony 1 i 3) | </table> ### Kiedy należy używać poszczególnych metod PageSelection? `allPages()` to najprostszy wybór do globalnego wyszukiwania i zamiany: każde wystąpienie tekstu docelowego w całym dokumencie jest zamieniane za pomocą jednego wywołania. Użyj `firstPage()` lub `lastPage()` do szybkich zmian na stronach tytułowych lub stopkach ostatniej strony bez ingerencji w treść. Wybierz `pageRange(int, int)`, gdy tekst pojawia się na sekwencyjnym zestawie stron, takim jak rozdział lub sekcja. Użyj `pageRange(List<Integer>)`, gdy strony docelowe nie są połączone; na przykład podczas zastępowania ciągu znaków wersji, który pojawia się tylko na stronach 1, 3 i 7. W przypadku pracy ze [scalonymi plikami PDF](https://ironpdf.com/java/examples/split-pdfs/) lub dokumentami zawierającymi [zakładki i spisy treści](https://ironpdf.com/java/how-to/bookmarks/) należy najpierw zidentyfikować zakres stron dla każdej sekcji logicznej, a następnie zastosować ukierunkowane zamiany, aby uniknąć przypadkowej modyfikacji wspólnych nagłówków lub stopek. [Dokumentacja API IronPDF for Java](https://ironpdf.com/object-reference/api/) zawiera listę wszystkich nadładowań `PageSelection` wraz z pełną dokumentacją parametrów.
WażneZawijaj wywołania `replaceText` w bloku try-catch. Metoda ta generuje wyjątek wykonania, gdy podany tekst wyszukiwania nie zostanie znaleziony na żadnej z docelowych stron. Etap walidacji (wyodrębnianie tekstu i sprawdzanie obecności ciągu znaków) zapobiega nieoczekiwanym awariom w środowisku produkcyjnym.
### Jak zastąpić tekst na wszystkich stronach jednocześnie? `PageSelection.allPages()` wykonuje zamianę w całym dokumencie za pomocą jednego wywołania, co jest najbardziej wydajnym podejściem do globalnej zamiany tokenów. Poniższy przykład ładuje plik PDF z dysku i zastępuje wszystkie wystąpienia tokenu zastępczego w całym dokumencie: ```java :title=Zastąp tekst na wszystkich stronach //: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.IO/Exception; import java.nio.file.Paths; public class App { public static void main(String[] args) throws IOException { // Ustaw klucz licencyjny IronPDF License.setLicenseKey(&quot;IronPDF-MYLICENSE-KEY-1EF01&quot;); // Wczytaj istniejący plik PDF z dysku PdfDocument pdf = PdfDocument.fromFile(Paths.get(&quot;contract-template.pdf&quot;)); // Zastąp token zastępczy na wszystkich stronach jednocześnie // Jest to równoważne z wywołaniem funkcji replaceText dla każdej strony z osobna pdf.replaceText(PageSelection.allPages(), &quot;{{VERSION}}&quot;, &quot;2.0&quot;); // Zapisz zaktualizowany dokument pdf.saveAs(&quot;contract-v2.pdf&quot;); } }

Ten wzorzec naturalnie łączy się z procesami opartymi na szablonach, w których ten sam symbol zastępczy pojawia się w nagłówkach, stopkach lub treści na wielu stronach. W przypadku dokumentów jednostronicowych allPages() i firstPage() dają identyczne wyniki. Preferuj allPages(), gdy liczba stron może się zmieniać w czasie wykonywania.


Jak radzić sobie z typowymi sytuacjami wymagającymi zamiany tekstu?

Zastępowanie tekstu w aplikacjach Java obejmuje kilka wzorców wykraczających poza proste wyszukiwanie i zamianę. Zrozumienie, jak dana metoda zachowuje się w każdym przypadku, pozwala zapobiegać błędom, zanim pojawią się one w środowisku produkcyjnym.

Jak dopasowanie z uwzględnieniem wielkości liter wpływa na wyniki?

replaceText wykonuje dokładne dopasowanie z uwzględnieniem wielkości liter. Ciągi znaków "Version 1.0", "version 1.0" i "VERSION 1.0" są traktowane jako trzy odrębne wartości. Przed uruchomieniem zamiany w dokumencie załadowanym z dysku należy potwierdzić dokładną wielkość liter, sprawdzając oryginalne źródło lub wyodrębniając tekst z pliku PDF i sprawdzając go programowo.

Jak zastąpić tekst w formularzach PDF?

Pliki PDF zawierające interaktywne pola formularzy przechowują wartości tekstowe oddzielnie od strumienia treści dokumentu, zgodnie z definicją w specyfikacji PDF. Metoda replaceText działa na strumieniu treści i nie modyfikuje wartości pól formularza. Aby zaktualizować tekst w polach formularza, należy zamiast tego użyć dedykowanego interfejsu API IronPDF do tworzenia i edycji formularzy. Połączenie obu podejść w tym samym dokumencie jest bezpieczne: aktualizacje pól formularzy i zamiany strumienia treści nie zakłócają się nawzajem.

Jak zaktualizować tekst w przepływach pracy opartych na szablonach?

Często spotykanym rozwiązaniem jest utrzymywanie szablonu PDF z tokenami zastępczymi (na przykład {{CUSTOMER_NAME}} lub [INVOICE_DATE]) i zastępowanie ich w czasie wykonywania rzeczywistymi wartościami. Wywołaj replaceText raz na każdy symbol zastępczy, używając PageSelection.allPages(), aby zamiana objęła wszystkie miejsca, w których pojawia się token. W przypadku dokumentów generowanych z HTML ten proces działa równie dobrze z renderHtmlAsPdf, po którym następuje seria wywołań zastępczych. Połącz to z dodawaniem znaków wodnych do plików PDF lub tłem i pierwszym planem, aby dodać oznaczenia marki lub poufności do końcowego wyniku.

Jakie są kolejne kroki w zakresie zamiany tekstu w plikach PDF w Javie?

W niniejszym przewodniku omówiono zamianę pojedynczych stron za pomocą PageSelection.firstPage(), selektywną zamianę wielu stron za pomocą PageSelection.pageRange(), zamianę w całym dokumencie za pomocą PageSelection.allPages() oraz pełen zestaw metod fabrycznych PageSelection. To samo API replaceText działa niezależnie od tego, czy dokument został wyrenderowany z HTML, załadowany z dysku, czy też złożony poprzez połączenie wielu źródeł.

Rozpocznij bezpłatny okres próbny IronPDF for Java i uruchom powyższe przykłady kodu na własnych dokumentach. Gdy będziesz gotowy do wdrożenia w środowisku produkcyjnym, zapoznaj się z opcjami licencyjnymi. Licencje są przyznawane na jednego programistę i obejmują roczne aktualizacje produktu.

Chcesz zobaczyć, co jeszcze potrafi IronPDF for Java? Zapoznaj się z kompletnymi przewodnikami IronPDF for Java, zawierającymi samouczki dotyczące generowania plików PDF, adnotacji, podpisów cyfrowych, kompresji i nie tylko.

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.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu?
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.