IRONSOFTWAREHOME

PDF에서 텍스트를 바꾸는 방법

Curtis Chau
Curtis Chau
Updated: 2026년 6월 16일

IronPDF for Java는 replaceText 메서드를 통해 기존 PDF 콘텐츠에 대한 직접적인 제어를 개발자에게 제공합니다. 생성된 보고서 일괄의 오타를 수정하거나, 템플릿 문서 전반에 걸친 버전 번호를 교체하거나, 고객별 데이터로 계약서를 개인화해야 하는 경우, 이 방법은 페이지 선택, 검색 문자열 및 대체 문자열을 받아 나머지를 처리합니다. 이 가이드는 단일 페이지 교체, 다중 페이지 타겟팅, 사용 가능한 모든 PageSelection 옵션 및 템플릿 기반 워크플로를 위한 실용적인 패턴을 다룹니다.

퀵스타트: PDF에서 텍스트 교체하기

IronPDF 의존성을 추가하고, PDF를 로드하거나 렌더링한 후, replaceText를 호출하여 결과를 저장합니다:

  1. 1Install IronPDF with Maven Central Repository

    mvn install

  2. 2다음 코드 조각을 복사하여 실행하세요.

    //: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");
        }
    }
    Java
  3. 3실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronPDF 사용 시작하기
    arrow pointer

한 페이지 내의 텍스트를 어떻게 바꿀 수 있나요?

replaceText 메서드는 세 개의 인수를 받습니다: 하나 이상의 페이지를 대상으로 하는 PageSelection, 찾을 정확한 텍스트, 대체 문자열입니다. 첫 번째 페이지를 대상으로 하려면 PageSelection.firstPage()를 전달하세요. 해당 페이지의 검색 문자열의 모든 인스턴스는 한 번의 호출로 교체됩니다. 대상 페이지에서 텍스트를 찾을 수 없는 경우, 메서드는 런타임 예외를 던집니다. 아래 스크린샷은 콘솔에서 그 예외가 어떻게 보이는지 보여줍니다.

 대상 텍스트 '.NET7'이 replaceText에서 찾을 수 없는 경우 IronPDF 콘솔 출력에 나타나는 Exception_RemoteException

replaceText가 어떤 매개변수를 수용합니까?

메서드 시그니처는 replaceText(PageSelection pageSelection, String oldText, String newText)입니다. 매칭은 기본적으로 대소문자를 구분합니다: "net6""NET6"는 다른 문자열로 간주됩니다. 메서드를 호출하기 전에 렌더링된 PDF에서 정확한 대소문자를 확인하세요. PDF의 텍스트 콘텐츠를 먼저 추출하여 정확한 텍스트를 확인할 수 있습니다: PDF의 텍스트 콘텐츠 추출. IronPDF Java 종속성은 Maven Central에 게시되어 있으며 Java 8 이상이 필요합니다.

  1. 1Install IronPDF with Maven Central Repository

    mvn install

  2. 2다음 코드 조각을 복사하여 실행하세요.

    //: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");
        }
    }
    Java
  3. 3실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronPDF 사용 시작하기
    arrow pointer
팁: 리소스 키를 애플리케이션 시작 시 한 번 로드하여 개별 작업 전에 반복 초기화 오버헤드를 방지합니다. 같은 JVM 세션에서 여러 문서를 처리할 때 초기화 오버헤드를 피할 수 있습니다.

replaceText 메서드는 IronPDF의 HTML to PDF 변환 워크플로우와 자연스럽게 통합됩니다. HTML 템플릿을 먼저 렌더링한 다음, 동적 값을 삽입하기 위해 텍스트 교체를 적용합니다. 이렇게 하면 HTML을 깔끔하게 유지하면서도 개인화된 출력을 생성할 수 있습니다. 디스크에서 로드된 문서의 경우 renderHtmlAsPdf 대신 PdfDocument.fromFile에 파일 경로를 전달하세요.

출력 결과는 어떻게 나타나나요?


여러 페이지의 텍스트를 어떻게 교체합니까?

첫 페이지만 아니라 특정 페이지를 대상으로 하려면 PageSelection.pageRange(List<Integer>)에 0 기반 페이지 번호 목록을 전달하세요. 이 메서드는 리스트 내 모든 페이지의 검색 텍스트를 교체하고 다른 모든 페이지는 그대로 둡니다. 이 패턴은 특정 페이지에만 나타나는 버전 문자열이 있는 일괄 생성된 보고서나 알려진 페이지에 일관된 헤더 또는 푸터가 있는 문서에 적합합니다.

페이지 리스트를 사용했을 때 수정되는 페이지는 무엇입니까?

아래 예제에서는 HTML에서 세 페이지 PDF를 생성합니다. 이 대체는 페이지 02 (첫 번째 및 세 번째 페이지)에서 실행됩니다. 페이지 1 (두 번째 페이지)는 원본 텍스트를 변경하지 않고 유지됩니다. 페이지 인덱스는 항상 0부터 시작하며, 이는 Java의 0 기반 배열 규칙과 일관합니다.

  1. 1Install IronPDF with Maven Central Repository

    mvn install

  2. 2다음 코드 조각을 복사하여 실행하세요.

    //: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");
        }
    }
    Java
  3. 3실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronPDF 사용 시작하기
    arrow pointer
참고해 주세요: IronPDF의 모든 페이지 인덱스는 0 기반 인덱싱을 따릅니다. 페이지 0는 첫 번째 페이지, 페이지 1는 두 번째 페이지 등입니다.

HTML에서 다중 페이지 PDF를 생성할 때, 페이지 경계가 드는 위치를 제어하기 위해 CSS page-break-after 속성을 사용하세요. 렌더링하기 전에 사용자 정의 용지 크기페이지 방향을 올바르게 설정함으로써 텍스트 교체가 실행될 때 콘텐츠 위치가 기대에 부합하도록 보장합니다. 저장 후 PDF를 열고 대상 페이지만 변경되었는지 확인하여 출력을 검증합니다.

출력 결과는 어떻게 나타나나요?


페이지 선택 옵션에는 어떤 것들이 있나요?

PageSelection 클래스는 모든 일반적인 타겟팅 패턴을 다루는 정적 팩토리 메서드를 제공합니다. 인스턴스 생성을 필요로 하지 않습니다; 클래스에서 직접 메서드를 호출하세요. 모든 인덱스는 0 기반입니다.

단일 페이지와 다중 페이지를 타겟팅하는 메서드는 무엇인가요?

replaceText API의 PageSelection 팩토리 메서드
방법설명
PageSelection.allPages()문서 내의 모든 페이지를 선택합니다
PageSelection.firstPage()인덱스 0의 페이지를 선택합니다.
PageSelection.lastPage()문서 길이와 상관없이 마지막 페이지를 선택합니다
PageSelection.singlePage(int pageIndex)0 기반 인덱스로 특정 페이지를 선택합니다
PageSelection.pageRange(int startIndex, int endIndex)startIndex에서 endIndex까지 포함하여 연속 범위를 선택합니다.
PageSelection.pageRange(List<Integer> pageList)임의의 인덱스 집합에서 페이지를 선택합니다 (예: [0, 2]는 1번과 3번 페이지를 선택합니다).

각 페이지 선택 방법은 언제 사용해야 할까요?

allPages()는 전역 찾기 및 대체에 가장 간단한 선택입니다: 전체 문서에서 대상 텍스트의 모든 인스턴스가 한 번의 호출로 대체됩니다. 페이지나 마지막 페이지의 푸터를 다루면서 본문을 건드리지 않으려면 빠른 편집에 firstPage() 또는 lastPage()를 사용하세요. 텍스트가 장이나 섹션과 같은 연속된 페이지 집합에 나타날 때 pageRange(int, int)를 선택하세요. 대상 페이지가 인접하지 않을 때 pageRange(List<Integer>)를 사용하세요. 예를 들어 페이지 1, 3, 7에만 나타나는 버전 문자열을 교체할 때 사용하세요.

병합된 PDF 또는 책갈피와 개요를 포함하는 문서 작업 시, 각 논리적 섹션의 페이지 범위를 먼저 식별한 다음, 공유된 머리글이나 바닥글을 실수로 수정하지 않도록 대상 교체를 적용합니다. IronPDF for Java API 레퍼런스에는 전체 매개변수 문서화와 함께 모든 PageSelection 오버로드가 나열되어 있습니다.

중요한: replaceText 호출을 try-catch 블록으로 감싸세요. 지정된 검색 텍스트가 대상 페이지 어느 곳에서도 발견되지 않으면 메서드는 런타임 예외를 던집니다. 텍스트를 추출하고 문자열이 존재함을 확인하는 검증 단계가 예기치 않은 생산 장애를 방지합니다.

모든 페이지에서 텍스트를 한 번에 교체하려면 어떻게 해야 하나요?

PageSelection.allPages()는 문서 전반에 걸친 대체 작업을 한 번의 호출로 수행하며, 이는 전역적인 토큰 대체에 가장 효율적인 방법입니다. 아래 예제는 디스크에서 PDF를 로드하고 문서 전체에 있는 자리 표시자 토큰을 모두 교체합니다:

  1. 1Install IronPDF with Maven Central Repository

    mvn install

  2. 2다음 코드 조각을 복사하여 실행하세요.

    //: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");
        }
    }
    Java
  3. 3실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronPDF 사용 시작하기
    arrow pointer

이 패턴은 템플릿 기반 워크플로우와 자연스럽게 결합되어 동일한 자리 표시자가 여러 페이지의 머리글, 바닥글 또는 본문 텍스트에 나타날 때 사용됩니다. 단일 페이지 문서의 경우, allPages()firstPage()가 동일한 결과를 생성합니다. 런타임에 페이지 수가 변동할 수 있을 때 allPages()를 선호하세요.


일반적인 텍스트 교체 시나리오를 어떻게 처리하나요?

Java 애플리케이션에서의 텍스트 교체는 단순한 검색 및 교체 이상의 여러 패턴을 포괄합니다. 각 경우에 메서드가 어떻게 작동하는지 이해하면 버그가 발생하기 전에 예방할 수 있습니다.

대소문자 구분 일치는 결과에 어떤 영향을 미칩니까?

replaceText는 정확하고 대소문자를 구분하여 매칭을 수행합니다. "Version 1.0", "version 1.0", "VERSION 1.0" 문자열은 서로 다른 세 개의 값으로 간주됩니다. 디스크에서 로드한 문서에서 교체를 실행하기 전에 원본 소스를 검토하거나 PDF에서 텍스트를 추출하여 프로그래밍 방식으로 검사하여 정확한 대소문자를 확인하세요.

PDF 양식에서 텍스트를 어떻게 교체하나요?

상호작용 가능한 양식 필드를 포함하는 PDF는 텍스트 값을 해당 문서의 콘텐츠 스트림과 별도로 저장합니다. 이는 PDF 사양에서 정의합니다. replaceText 메서드는 콘텐츠 스트림에서 작동하며 양식 필드 값을 수정하지 않습니다. 양식 필드 내부의 텍스트를 업데이트하려면 IronPDF의 전용 양식 생성 및 편집 API를 사용하세요. 동일한 문서에서 두 가지 접근 방식을 혼합하는 것은 안전합니다: 양식 필드 업데이트와 콘텐츠 스트림 교체는 서로 간섭하지 않습니다.

템플릿 기반 워크플로우에서 텍스트를 어떻게 업데이트하나요?

일반적인 패턴은 자리 표시자 토큰(예: {{CUSTOMER_NAME}} 또는 [INVOICE_DATE])과 함께 PDF 템플릿을 유지하고, 런타임에 실제 값으로 대체하는 것입니다. 자리 표시자마다 한 번 replaceText를 호출하고, PageSelection.allPages()를 사용하여 대체가 토큰이 나타나는 모든 위치를 포함하도록 합니다. HTML에서 생성된 문서의 경우, 이 워크플로우는 renderHtmlAsPdf 다음 일련의 대체 호출과 함께 동일하게 잘 작동합니다. PDF 워터마킹 또는 배경 및 전경을 결합하여 최종 출력에 브랜딩 또는 기밀 표식을 추가하세요.

Java에서 PDF 텍스트 교체의 다음 단계는 무엇인가요?

이 가이드는 PageSelection.firstPage()로 단일 페이지 대체, PageSelection.pageRange()로 선택적 다중 페이지 대체, PageSelection.allPages()로 문서 전반의 대체 및 완전한 PageSelection 팩토리 메서드 세트를 다루었습니다. 동일한 replaceText API는 문서가 HTML에서 렌더링되었든, 디스크에서 로드되었든, 여러 소스를 병합하여 조립되었든 상관없이 작동합니다.

IronPDF for Java 무료 체험을 시작하고, 위의 코드 예제를 통해 귀하의 문서에 대해 실행해 보세요. 생산 배포를 준비하면 라이선스 옵션을 검토하세요. 라이선스는 개발자별로 제공되며, 제품 업데이트 1년이 포함됩니다.

IronPDF for Java가 할 수 있는 다른 것을 보려고 준비되었나요? PDF 생성, 주석, 디지털 서명, 압축 등에 대한 튜토리얼을 보려면 IronPDF for Java 사용 설명서를 전체 확인하세요.

자주 묻는 질문

Java를 사용하여 PDF 파일의 텍스트를 바꾸는 방법은 무엇인가요?

IronPDF의 replaceText 메소드를 사용하세요. pdf.replaceText(PageSelection.firstPage(), "oldText", "newText")를 호출하여 지정된 페이지에서 모든 인스턴스의 옛 텍스트를 대체합니다. IronPDF는 원래의 포맷을 유지하는 동안 모든 발생을 찾고 대체합니다.

replaceText 메소드가 허용하는 매개변수는 무엇입니까?

메소드는 수정할 페이지를 지정하기 위한 PageSelection과 찾을 텍스트가 포함된 String, 및 대체 텍스트가 포함된 String을 허용합니다. 예를 들어, pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7")는 첫 페이지에 있는 모든 인스턴스를 대체합니다.

특정 페이지의 텍스트만 바꿀 수 있나요?

네. 페이지 0에는 PageSelection.firstPage(), 마지막 페이지에는 PageSelection.lastPage(), 0 기반 인덱스를 사용하여 임의 페이지에는 PageSelection.singlePage(n), 또는 비연속적인 페이지에는 PageSelection.pageRange()와 정수 목록을 사용하세요.

대체할 텍스트를 찾을 수 없으면 어떻게 되나요?

대상 텍스트를 지정된 페이지에서 찾을 수 없는 경우 IronPDF는 런타임 예외(Exception_RemoteException)를 발생시킵니다. 호출을 try-catch 블록으로 감싸고, replaceText를 호출하기 전에 문자열이 존재하는지 확인하기 위해 PDF 텍스트를 먼저 추출하는 것을 선택할 수 있습니다.

텍스트 매칭은 대소문자를 구별합니까?

네. replaceText 메소드는 정확한 대소문자 구별 일치를 수행합니다. 문자열 "Version 1.0", "version 1.0", 및 "VERSION 1.0"은 세 가지 서로 다른 값으로 처리됩니다. 메소드를 호출하기 전에 정확한 대소문자를 확인하세요.

replaceText가 양식 필드 값을 수정합니까?

아니요. replaceText 메소드는 PDF 콘텐츠 스트림에서 동작하며 상호작용형 양식 필드 값을 수정하지 않습니다. 양식 필드를 업데이트하려면 PdfDocument 양식 메소드를 통한 IronPDF의 전용 양식 편집 API를 사용하세요.

모든 페이지에서 한 번에 토큰을 대체하려면 어떻게 하나요?

replaceText의 첫 번째 인수로 PageSelection.allPages()를 사용하세요. 이는 하나의 호출에서 전체 문서의 모든 페이지에 대상 텍스트의 모든 인스턴스를 대체합니다. 이는 문서 전체에 널리 사용되는 자리표시자를 사용하는 템플릿 중심 워크플로우에 대한 선호하는 접근 방식입니다.

Can IronPDF replace text in form fields within a PDF?

IronPDF's `replaceText` method operates on content streams and does not affect form field values. For form field modification, use IronPDF's form creation and editing API.

What is the recommended workflow for replacing placeholders in a PDF template using IronPDF?

Maintain a PDF template with placeholders like `{{CUSTOMER_NAME}}`. Use `replaceText` with `PageSelection.allPages()` to substitute these placeholders with actual values at runtime.

How can I start using IronPDF for Java to replace text in PDFs?

Start by downloading a free trial of IronPDF for Java. Follow the documentation and code examples to replace text in PDFs. Consider licensing options when you're ready for production deployment.

Curtis Chau
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

...
더 읽어보기

시작할 준비 되셨나요?

버전:2026.6방금 출시

지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.
PDF용 Java Maven 라이브러리
Maven을 사용하여 설치하세요

버전: 2026.6

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2026.6.1</version>
</dependency>
https://central.sonatype.com/artifact/com.ironsoftware/ironpdf/2026.6.1
or
자바 PDF JAR
JAR 파일 다운로드

버전: 2026.6

프로젝트에 수동으로 설치하세요

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.