Java에서 PDF 분할하는 방법

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

Java에서 PDF를 분할하는 것은 IronPDF를 사용하면 간단합니다. IronPDF는 copyPage, copyPages, splitBy 메서드를 PdfDocument 클래스에 제공하여 개별 페이지를 추출하거나, 페이지 범위를 추출하거나, 경계에서 문서를 분할할 수 있게 해줍니다. 각 메서드는 원본과 별도로 새로운 PdfDocument를 절약해야 합니다.

빠른 시작: Java에서 PDF 분할

  1. IronPDF for Java를 Maven 또는 Gradle을 통해 설치하세요
  2. License.setLicenseKey()로 라이선스 키를 설정하세요
  3. PdfDocument.fromFile()을 사용하여 PDF를 불러오기
  4. 단일 페이지를 추출하려면 copyPage()를 사용하십시오
  5. 결과를 saveAs()로 저장하세요.

```Java :title=Quickstart //:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-tutorial/quickstart.java import java.io.IOException; import java.nio.file.Path; import com.ironsoftware.IronPdf.License; import com.ironsoftware.IronPdf.PdfDocument;

public class Main { public static void main(String[] args) throws IOException { // IronPDF 메소드를 호출하기 전에 라이센스 키를 설정하세요 License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");

    // 디스크에서 원본 PDF를 로드합니다
    PdfDocument pdf = PdfDocument.fromFile(Path.of("source.pdf"));

    // 첫 번째 페이지 (0기반 인덱스 0)를 새로운 문서로 추출
    PdfDocument firstPage = pdf.copyPage(0);

    // 추출한 페이지를 독립된 PDF로 저장
    firstPage.saveAs(Path.of("page-one.pdf"));
}

}


PDF 분할은 프로그래밍 방식으로 문서를 생성할 때 일반적인 요구 사항입니다. 단일 파일로 생성된 보고서는 배포 전 개별 섹션으로 나뉘어야 할 수 있습니다. 아카이빙 워크플로는 종종 각 장이나 송장을 별도의 파일로 저장해야 합니다. 특정 페이지 범위만 클라이언트에게 보내야 하는 선택적 공유 시나리오에서는 전체 문서를 보내는 대신 필요한 페이지만 추출하는 것이 유용합니다.

IronPDF는 `PdfDocument` 클래스의 일관된 API를 통해 세 가지 분할 패턴을 모두 처리합니다. HTML에서 PDF를 생성하거나 기존 파일을 로드하는 데 사용되는 동일한 클래스가 페이지 추출 방법을 제공하므로, 분할은 기존 IronPDF 워크플로에 자연스럽게 통합됩니다. 설치 및 종속성 구성에 대한 설명은 [시작 개요 페이지](https://ironpdf.com/java/docs/)를 참조하십시오.

IronPDF의 모든 페이지 인덱스는 0부터 시작합니다. 원본 문서가 10페이지인 경우, 유효한 인덱스는 0부터 9까지입니다. 이는 `copyPage`, `copyPages`의 양쪽 경계, 그리고 `splitBy`의 경계 인자에 모두 적용됩니다. 범위를 벗어난 인덱스를 전달하면 런타임에 예외가 발생하므로, 길이가 가변적인 문서를 다룰 때는 페이지 수를 `pdf.getPageCount()`와 대조하여 검증해야 합니다.

<div class="hsg-featured-snippet">
    <h2>Java에서 PDF를 분할하는 방법</h2>
    <ol>
        <li><a href="https://ironpdf.com/java/#download-modal">PDF를 분할하기 위해 Java 라이브러리 설치</a></li>
        <li><strong>PdfDocument</strong> 클래스를 사용하여 소스 PDF 로드</li>
        <li><code>copyPage</code>를 사용하여 단일 페이지를 새 문서로 추출</li>
        <li><code>copyPages</code>를 사용하여 페이지 범위를 추출</li>
        <li><code>splitBy</code>를 사용하여 특정 페이지 경계에서 PDF를 나누기</li>
        <li><code>saveAs</code>로 각 결과 문서 저장</li>
    </ol>
</div>

## 시작하기 전에 무엇이 필요합니까?

PDF를 분할하기 전에 IronPDF가 Maven 또는 Gradle 종속성을 통해 Java 프로젝트에 추가되었는지 확인하십시오. 라이브러리는 Java 8 이상이 필요합니다. Maven Central에서 IronPDF 아티팩트를 빌드 파일에 추가하십시오:

```xml
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2024.9.1</version>
</dependency>

Gradle 프로젝트의 경우, implementation에 해당하는 줄을 build.gradle에 추가하십시오. 전체 종속성 및 구성 지침은 시작 개요 페이지에서 확인할 수 있습니다.

유효한 라이선스 키가 필요합니다. 애플리케이션 시작 시 IronPDF 메서드를 호출하기 전에 설정하십시오:

License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
JAVA

라이선싱 옵션 및 체험 키에 대해서는 라이선스 키 가이드를 방문하십시오.

IronPDF의 모든 페이지 인덱스는 0 기반 번호 매기기를 사용합니다. 문서의 페이지 1은 인덱스 0, 페이지 2는 인덱스 1입니다.

단일 페이지를 PDF에서 추출하는 방법은?

copyPage(int pageIndex) 메서드는 PdfDocument에서 한 페이지를 추출하여 새로운 독립적인 PdfDocument로 반환합니다. 원래 문서는 수정되지 않습니다. pageIndex 인수는 0부터 시작합니다. 첫 번째 페이지에는 0, 두 번째 페이지에는 1을 전달하는 식으로 진행합니다.

이 방법은 표지 페이지를 추출하거나 서명된 페이지 또는 배치 생성된 문서에서 단일 송장을 추출하는 등 특정 페이지를 분리해야 하는 워크플로에 적합합니다.

//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-tutorial/copy-single-page.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
import com.ironsoftware.IronPdf.PdfDocument;

public class Main {
    public static void main(String[] args) throws IOException {
        // IronPDF 메소드를 호출하기 전에 라이센스 키를 설정하세요
        License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");

        // 디스크에서 원본 PDF를 로드합니다
        PdfDocument pdf = PdfDocument.fromFile(Path.of("source.pdf"));

        // Extract the third page (zero-based index 2) into a new document
        PdfDocument thirdPage = pdf.copyPage(2);

        // 추출한 페이지를 독립된 PDF로 저장
        thirdPage.saveAs(Path.of("third-page.pdf"));
    }
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-tutorial/copy-single-page.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
import com.ironsoftware.IronPdf.PdfDocument;

public class Main {
    public static void main(String[] args) throws IOException {
        // IronPDF 메소드를 호출하기 전에 라이센스 키를 설정하세요
        License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");

        // 디스크에서 원본 PDF를 로드합니다
        PdfDocument pdf = PdfDocument.fromFile(Path.of("source.pdf"));

        // Extract the third page (zero-based index 2) into a new document
        PdfDocument thirdPage = pdf.copyPage(2);

        // 추출한 페이지를 독립된 PDF로 저장
        thirdPage.saveAs(Path.of("third-page.pdf"));
    }
}
JAVA

반환된 PdfDocument은 원본과 전혀 무관합니다. 저장하기 전에 추가 변환을 적용하거나, 주석을 추가하거나, 다른 문서와 병합할 수 있습니다.

PDF에서 페이지 범위를 추출하는 방법은?

copyPages(int fromIndex, int toIndex) 메서드는 연속된 페이지 범위를 추출하여 새로운 PdfDocument로 반환합니다. fromIndextoIndex는 모두 0을 기준으로 하며, 해당 범위를 포함합니다. 즉, 10페이지 분량의 문서에 copyPages(1, 4)를 적용하면 2, 3, 4, 5페이지(인덱스 1~4)가 추출됩니다.

페이지 범위 추출은 여러 장이 있는 보고서에서 장을 추출하거나 여러 페이지의 부록을 추출하거나 PDF로 내보낸 프레젠테이션에서 슬라이드 세트를 분리하는 시나리오에 적합합니다.

//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-tutorial/copy-page-range.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
import com.ironsoftware.IronPdf.PdfDocument;

public class Main {
    public static void main(String[] args) throws IOException {
        // IronPDF 메소드를 호출하기 전에 라이센스 키를 설정하세요
        License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");

        // Load a multi-page source PDF
        PdfDocument pdf = PdfDocument.fromFile(Path.of("multi-page-report.pdf"));

        // Extract pages 2 through 5 (zero-based indexes 1 through 4, inclusive)
        PdfDocument chapter = pdf.copyPages(1, 4);

        // Save the extracted page range as a standalone document
        chapter.saveAs(Path.of("chapter-pages-2-to-5.pdf"));
    }
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-tutorial/copy-page-range.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
import com.ironsoftware.IronPdf.PdfDocument;

public class Main {
    public static void main(String[] args) throws IOException {
        // IronPDF 메소드를 호출하기 전에 라이센스 키를 설정하세요
        License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");

        // Load a multi-page source PDF
        PdfDocument pdf = PdfDocument.fromFile(Path.of("multi-page-report.pdf"));

        // Extract pages 2 through 5 (zero-based indexes 1 through 4, inclusive)
        PdfDocument chapter = pdf.copyPages(1, 4);

        // Save the extracted page range as a standalone document
        chapter.saveAs(Path.of("chapter-pages-2-to-5.pdf"));
    }
}
JAVA

원본 문서의 페이지 수가 요청된 toIndex보다 적을 경우, IronPDF는 예외를 발생시킵니다. 페이지 수가 변동될 수 있는 문서를 다룰 때는 pdf.getPageCount()을 호출하기 전에 copyPages을 확인하십시오.

PDF를 두 문서로 나누는 방법은?

splitBy(int splitAfterPageIndex) 메서드는 PDF를 경계에서 분할하고 정확히 두 개의 요소를 포함하는 List<PdfDocument>를 반환합니다. 첫 번째 요소에는 인덱스 0부터 splitAfterPageIndex(포함)까지의 페이지가 포함됩니다. 두 번째 요소에는 splitAfterPageIndex + 1부터 문서 끝까지의 나머지 모든 페이지가 포함됩니다.

예를 들어, 10페이지 분량의 문서에서 splitBy(2)를 호출하면 다음과 같은 결과가 나옵니다:

  • parts.get(0): 0, 1, 2페이지 (첫 3페이지)
  • parts.get(1): 3페이지부터 9페이지까지 (나머지 7페이지)

이 메서드는 표지 시트와 본문을 분리하거나 섹션 구분에서 문서를 나누거나 병렬 처리를 위해 배치 파일을 두 부분으로 자르는 등 특정 경계에서 문서를 나누는 데 적합합니다.

//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-tutorial/split-by-boundary.java
import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
import com.ironsoftware.IronPdf.License;
import com.ironsoftware.IronPdf.PdfDocument;

public class Main {
    public static void main(String[] args) throws IOException {
        // IronPDF 메소드를 호출하기 전에 라이센스 키를 설정하세요
        License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");

        // 디스크에서 원본 PDF를 로드합니다
        PdfDocument pdf = PdfDocument.fromFile(Path.of("source.pdf"));

        // Split after page index 2 -- first part: pages 0-2, second part: pages 3 to end
        List<PdfDocument> parts = pdf.splitBy(2);

        // Save the first part (pages 0 through 2)
        parts.get(0).saveAs(Path.of("part-one.pdf"));

        // Save the second part (pages 3 through end)
        parts.get(1).saveAs(Path.of("part-two.pdf"));
    }
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-tutorial/split-by-boundary.java
import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
import com.ironsoftware.IronPdf.License;
import com.ironsoftware.IronPdf.PdfDocument;

public class Main {
    public static void main(String[] args) throws IOException {
        // IronPDF 메소드를 호출하기 전에 라이센스 키를 설정하세요
        License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");

        // 디스크에서 원본 PDF를 로드합니다
        PdfDocument pdf = PdfDocument.fromFile(Path.of("source.pdf"));

        // Split after page index 2 -- first part: pages 0-2, second part: pages 3 to end
        List<PdfDocument> parts = pdf.splitBy(2);

        // Save the first part (pages 0 through 2)
        parts.get(0).saveAs(Path.of("part-one.pdf"));

        // Save the second part (pages 3 through end)
        parts.get(1).saveAs(Path.of("part-two.pdf"));
    }
}
JAVA

참고해 주세요splitBy는 항상 정확히 두 개의 요소를 가진 목록을 반환합니다. splitAfterPageIndex이 문서의 마지막 페이지 인덱스와 일치하는 경우, 두 번째 요소는 빈 문서가 됩니다. (분할 지점이 동적으로 계산될 경우 pdf.getPageCount() - 1에 대해 분할 경계를 검증하십시오.

Java에서 PDF를 분할하는 다음 단계는?

IronPDF의 copyPage, copyPagessplitBy 메서드는 단일 페이지 추출부터 범위 기반 분할, 경계 기반 분할에 이르기까지 Java에서 필요한 모든 PDF 분할 요구 사항을 포괄합니다. 각 메서드는 추가 처리가 가능하거나 즉시 저장할 수 있는 독립적인 PdfDocument를 반환합니다.

Java에서 PDF 문서를 계속 작업하려면, 다음 관련 리소스를 탐색하십시오:

체험판을 시작하십시오 Java 워크플로에 PDF 분할 추가하기 위해서. 생산용으로 라이선스를 구매하려면, 라이선싱 옵션 보기를 클릭하세요.

자주 묻는 질문

Java에서 IronPDF로 PDF를 어떻게 분할합니까?

PdfDocument.fromFile()로 PDF를 로드한 후 copyPage(index)로 단일 페이지를 추출하거나, copyPages(from, to)로 범위를 추출하거나, splitBy(index)로 문서를 두 부분으로 나눕니다. 각 결과를 saveAs()로 저장합니다.

copyPage, copyPages 및 splitBy의 차이점은 무엇입니까?

copyPage(index)는 0 기반 인덱스로 단일 페이지를 추출합니다. copyPages(fromIndex, toIndex)는 양 쪽 끝이 포함된 연속적인 범위를 추출합니다. splitBy(index)는 경계에서 문서를 나누고 페이지 0부터 경계 인덱스까지 포함된 두 요소가 있는 List를 반환합니다.

IronPDF에서의 페이지 인덱스는 0 기반인가요 1 기반인가요?

IronPDF에서의 페이지 인덱스는 0 기반입니다. 문서의 첫 페이지는 인덱스 0, 두 번째는 인덱스 1입니다. 이는 copyPage, copyPages, splitBy에 적용됩니다.

splitBy가 무엇을 반환합니까?

splitBy(splitAfterPageIndex)는 정확히 두 요소가 있는 List를 반환합니다. 첫 번째 요소는 분할 인덱스까지 포함하여 페이지 0부터 분할 인덱스까지 포함된 페이지를 가집니다. 두 번째 요소는 모든 나머지 페이지를 포함합니다. 분할 인덱스가 마지막 페이지인 경우, 두 번째 요소는 빈 문서입니다.

IronPDF로 Java에서 PDF를 분할하는 데 필요한 전제 조건은 무엇입니까?

Java 8 이상, Maven 또는 Gradle 종속성으로 추가된 IronPDF 라이브러리, 그리고 IronPDF 호출 전에 License.setLicenseKey()로 설정된 유효한 라이선스 키가 필요합니다.

Java에서 페이지 2에서 5까지를 PDF에서 어떻게 추출합니까?

pdf.copyPages(1, 4)를 사용하여 페이지 2에서 5까지를 추출합니다. IronPDF는 0 기반 인덱스를 사용하므로 페이지 2는 인덱스 1이며 페이지 5는 인덱스 4입니다. 양쪽 끝이 포함됩니다. 결과를 saveAs()로 저장합니다.

커티스 차우
기술 문서 작성자

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

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

시작할 준비 되셨나요?
버전: 2026.5 just released
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요?
샘플을 실행하세요 HTML이 PDF로 변환되는 것을 지켜보세요.