Java에서 PDF에서 페이지 삭제하는 방법
Java에서 PDF 페이지를 제거하는 것은 IronPDF를 사용하면 간단합니다. 이 라이브러리는 removePage 및 removePages 메서드를 제공하며, 이는 PageSelection에 의해 지원되어 단일 페이지, 연속된 범위, 또는 흩어진 페이지 인덱스 집합 등 삭제할 페이지를 정밀하게 제어할 수 있게 해줍니다. IronPDF의 모든 페이지 인덱스는 0부터 시작하여, 문서의 첫 페이지는 항상 인덱스 0입니다.
빠른 시작: Java에서 PDF 페이지 삭제
- IronPDF for Java를 Maven 또는 Gradle을 통해 설치하세요
License.setLicenseKey()로 라이선스 키를 설정하세요PdfDocument.fromFile()을 사용하여 PDF를 불러오기removePage()가 포함된 단일 페이지를 제거하십시오.- 결과를
saveAs()로 저장하세요.
```Java :title=Quickstart //:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-delete-pdf-pages-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)
pdf.removePage(0);
// 수정된 PDF를 새 파일로 저장합니다
pdf.saveAs(Path.of("modified.pdf"));
}
}
PDF에서 페이지를 제거하는 것은 일반적인 문서 처리 작업입니다. 보고서를 배포하기 전에 표지 페이지를 제거하거나, 문서를 외부로 공유하기 전에 기밀 섹션을 삭제하거나, 스캐너나 템플릿에서 도입된 빈 페이지를 정리해야 할 수 있습니다. IronPDF는 호스트 기계에 대한 네이티브 PDF 편집 도구가 필요 없이 일관된 Java API를 통해 이 모든 사례를 처리합니다.
이 라이브러리는 Maven 또는 Gradle을 통해 Java 응용 프로그램에 통합되며 페이지 제거를 넘어 PDF 조작 작업의 전체 범위를 지원합니다, [PDF 병합](https://ironpdf.com/java/how-to/java-merge-pdf-tutorial/), [문서 분할](https://ironpdf.com/java/how-to/java-split-pdf-tutorial/), [워터마크 추가](https://ironpdf.com/java/how-to/custom-watermark/)를 포함하여. 설정 및 사용 가능한 기능에 대한 전체 개요를 보려면 [시작 개요](https://ironpdf.com/java/docs/)를 방문하세요.
이 가이드의 예제는 세 가지 시나리오를 다룹니다: 인덱스를 사용하여 단일 페이지 제거, `PageSelection`을 사용하여 연속된 페이지 범위 제거, 인덱스 Shift 오류를 유발하지 않고 비연속적인 여러 페이지를 안전하게 제거하는 방법입니다.
<div class="hsg-featured-snippet">
<h2>Java에서 PDF에서 페이지 삭제하는 방법</h2>
<ol>
<li><a href="https://ironpdf.com/java/#download-modal">Java 라이브러리를 설치하여 PDF 페이지 삭제</a></li>
<li><strong>PdfDocument</strong> 클래스를 사용하여 PDF를 로드합니다</li>
<li>인덱스를 통해 단일 페이지를 삭제하려면 <code>removePage</code>를 사용하세요.</li>
<li><code>PageSelection</code>과 함께 <code>removePages</code>를 사용하여 여러 페이지 또는 범위를 삭제하세요.</li>
<li><code>saveAs</code>로 수정된 PDF를 저장하세요.</li>
</ol>
</div>
## 시작하기 전에 무엇이 필요합니까?
PDF에서 페이지를 제거하기 전에 IronPDF가 Java 프로젝트에 구성되어 있는지 확인하세요. 라이브러리는 Java 8 이상이 필요하며, [Maven 또는 Gradle](https://central.sonatype.com/artifact/com.ironsoftware/ironpdf)을 통해 통합됩니다. 프로젝트 빌드 파일에 `IronPdf` 종속성을 추가하십시오. 전체 설정 방법은 [시작하기 개요를](https://ironpdf.com/java/docs/) 참조하십시오.
개발 및 생산 사용 모두에 유효한 라이선스 키가 필요합니다. 애플리케이션의 시작 부분에서 IronPDF 메소드를 호출하기 전에 키를 설정하세요. 라이선스 옵션에 대한 자세한 내용은 [라이선스 키 가이드](https://ironpdf.com/java/get-started/license-keys/)를 방문하세요.
팁IronPDF의 모든 페이지 인덱스는 0 기반 번호 매기기를 사용합니다. 문서의 페이지 1은 인덱스 0, 페이지 2는 인덱스 1입니다.
## PDF에서 단일 페이지를 삭제하는 방법은 무엇입니까?
`removePage(int pageIndex)` 메서드는 0을 기준으로 한 페이지 인덱스를 받아, 문서에서 정확히 해당 페이지를 제거합니다. 호출이 완료되면 모든 후속 페이지는 한 위치씩 아래로 이동하므로 호출 전에 캐시한 인덱스가 더 이상 동일한 페이지를 가리킬 수 없습니다.
예를 들어, 문서에 5개의 페이지(인덱스 0부터 4까지)가 있고 인덱스 2를 제거하면, 원래 인덱스 3에 있던 페이지는 이제 인덱스 2로, 인덱스 4에 있던 페이지는 인덱스 3으로 이동합니다. 특히 `removePage`를 연속으로 여러 번 호출할 때는 이러한 순서 이동을 고려하여 제거 순서를 계획하십시오.
```java
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-delete-pdf-pages-tutorial/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("report.pdf"));
// Remove the cover page at index 0 (the first page)
pdf.removePage(0);
// Save the modified PDF -- the original file is not overwritten
pdf.saveAs(Path.of("report-no-cover.pdf"));
}
}
이 패턴은 삭제할 정확한 페이지를 알고 단 하나만 제거해야 할 때 가장 간단한 접근 방식입니다. 한 번의 작업으로 연속된 페이지 범위를 제거하려면, removePages 대신 PageSelection 범위를 사용하십시오.
PDF에서 여러 페이지 범위를 삭제하는 방법은 무엇입니까?
removePages(PageSelection) 메서드는 지정된 선택 범위에 포함된 모든 페이지를 단일 원자적 작업으로 삭제하므로, removePage를 여러 번 호출할 때 발생하는 인덱스 Shift 문제를 방지합니다. 범위를 지정할 때는 PageSelection.pageRange(int fromIndex, int toIndex)을 사용하십시오. 양쪽 끝점 모두 포함되며 0을 기준으로 합니다.
아래 예제는 fromIndex = 2 및 toIndex = 4을 전달하여 문서의 3, 4, 5페이지를 제거합니다. 모든 세 페이지가 한 번에 제거되므로 작업 중간에 인덱스 이동이 발생하지 않습니다.
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-delete-pdf-pages-tutorial/page-range.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
import com.ironsoftware.IronPdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
public class Main {
public static void main(String[] args) throws IOException {
// IronPDF 메소드를 호출하기 전에 라이센스 키를 설정하세요
License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");
// Load a multi-page PDF from disk
PdfDocument pdf = PdfDocument.fromFile(Path.of("annual-report.pdf"));
// Remove pages 3, 4, and 5 using a zero-based inclusive range (indexes 2 to 4)
pdf.removePages(PageSelection.pageRange(2, 4));
// Save the result to a new file
pdf.saveAs(Path.of("annual-report-trimmed.pdf"));
}
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-delete-pdf-pages-tutorial/page-range.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
import com.ironsoftware.IronPdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
public class Main {
public static void main(String[] args) throws IOException {
// IronPDF 메소드를 호출하기 전에 라이센스 키를 설정하세요
License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");
// Load a multi-page PDF from disk
PdfDocument pdf = PdfDocument.fromFile(Path.of("annual-report.pdf"));
// Remove pages 3, 4, and 5 using a zero-based inclusive range (indexes 2 to 4)
pdf.removePages(PageSelection.pageRange(2, 4));
// Save the result to a new file
pdf.saveAs(Path.of("annual-report-trimmed.pdf"));
}
}
인접한 페이지 블록을 제거해야 할 때는 항상 PageSelection.pageRange 방식을 사용하는 것이 좋습니다. 이는 개별 removePage 호출을 반복 처리하는 것보다 더 깔끔하고 효율적이며, 단일 작업 시맨틱 덕분에 페이지 카운트가 한 번만 업데이트됩니다.
여러 비인접 페이지를 삭제하는 방법은 무엇입니까?
서로 인접하지 않은 페이지를 제거해야 할 경우, 두 가지 실용적인 방법이 있습니다. 개별 인덱스를 대상으로 하는 PageSelection와 함께 removePages를 사용하거나, 신중하게 순서를 정하여 removePage를 여러 번 호출하는 방법입니다.
removePage를 여러 번 호출하는 경우, 항상 가장 높은 인덱스부터 가장 낮은 인덱스 순으로 처리해야 합니다. 인덱스가 낮은 페이지를 먼저 제거하면 인덱스가 높은 모든 페이지가 한 단계씩 아래로 Shift되게 되어, 이후 호출에서 잘못된 페이지가 대상이 될 수 있습니다. 문서의 끝에서 시작하여 역방향으로 작업하면 각 제거가 남은 낮은 인덱스를 방해하지 않습니다.
아래 예제는 여섯 페이지 문서의 첫 페이지, 중간 페이지, 마지막 페이지를 제거합니다. 호출은 인덱스 드리프트를 방지하기 위해 가장 높은 인덱스에서 가장 낮은 인덱스 순으로 정렬됩니다 -- 5, 3, 0.
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-delete-pdf-pages-tutorial/non-consecutive-pages.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 six-page PDF from disk
PdfDocument pdf = PdfDocument.fromFile(Path.of("contract.pdf"));
// Remove non-consecutive pages: always work from highest index to lowest
// to prevent index shifting from affecting subsequent removals.
// Remove the last page (index 5 in a six-page document)
pdf.removePage(5);
// Remove a page in the middle (index 3 -- now safe because no lower index has shifted)
pdf.removePage(3);
// Remove the first page (index 0 -- lowest, so processed last)
pdf.removePage(0);
// Save the modified PDF
pdf.saveAs(Path.of("contract-redacted.pdf"));
}
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-delete-pdf-pages-tutorial/non-consecutive-pages.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 six-page PDF from disk
PdfDocument pdf = PdfDocument.fromFile(Path.of("contract.pdf"));
// Remove non-consecutive pages: always work from highest index to lowest
// to prevent index shifting from affecting subsequent removals.
// Remove the last page (index 5 in a six-page document)
pdf.removePage(5);
// Remove a page in the middle (index 3 -- now safe because no lower index has shifted)
pdf.removePage(3);
// Remove the first page (index 0 -- lowest, so processed last)
pdf.removePage(0);
// Save the modified PDF
pdf.saveAs(Path.of("contract-redacted.pdf"));
}
}
removePage 호출이 올바른 페이지를 대상으로 하도록 보장합니다.제거할 페이지 집합이 동적으로 결정된다면, 인덱스 목록을 역순으로 정렬하고 반복하는 간결한 패턴이 있습니다:
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-delete-pdf-pages-tutorial/dynamic-removal.java
import java.io.IOException;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.Comparator;
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");
// Load the PDF from disk
PdfDocument pdf = PdfDocument.fromFile(Path.of("document.pdf"));
// Define the zero-based page indexes to remove
List<Integer> pagesToRemove = Arrays.asList(0, 3, 5);
// Sort descending to avoid index-shift errors during sequential removal
pagesToRemove.sort(Comparator.reverseOrder());
// Remove each page in reverse-index order
for (int pageIndex : pagesToRemove) {
pdf.removePage(pageIndex);
}
// Save the modified PDF
pdf.saveAs(Path.of("document-pages-removed.pdf"));
}
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-delete-pdf-pages-tutorial/dynamic-removal.java
import java.io.IOException;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.Comparator;
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");
// Load the PDF from disk
PdfDocument pdf = PdfDocument.fromFile(Path.of("document.pdf"));
// Define the zero-based page indexes to remove
List<Integer> pagesToRemove = Arrays.asList(0, 3, 5);
// Sort descending to avoid index-shift errors during sequential removal
pagesToRemove.sort(Comparator.reverseOrder());
// Remove each page in reverse-index order
for (int pageIndex : pagesToRemove) {
pdf.removePage(pageIndex);
}
// Save the modified PDF
pdf.saveAs(Path.of("document-pages-removed.pdf"));
}
}
반복 전에 인덱스 목록을 내림차순으로 정렬하는 것은 타겟 페이지 수나 입력 목록이 정렬된 방식과 관계없이 작동하는 안전하고 범용적인 패턴입니다.
Java에서 PDF 페이지를 삭제하는 다음 단계는 무엇입니까?
IronPDF의 removePage 및 removePages 메서드를 사용하면 단일 페이지를 제거하거나, 특정 범위를 잘라내거나, 흩어져 있는 여러 페이지를 삭제하는 등 페이지 삭제를 정밀하게 제어할 수 있습니다. 0부터 시작하는 인덱싱 모델은 전체 IronPDF Java API에서 일관성을 유지하므로 페이지 분할, 병합, 재정렬로 이동할 때 동일한 규칙이 적용됩니다.
PDF 페이지 구조 및 문서 조작 작업을 계속하려면 다음 관련 리소스를 탐색하십시오:
- Java에서 PDF 분할: 특정 페이지 또는 페이지 범위를 별도의 PDF 파일로 추출
- Java에서 PDF 병합: 여러 문서를 완전한 페이지 제어로 단일 PDF로 결합
- Java에서 PDF 압축: 페이지 제거 후 파일 크기를 줄여 배포를 최적화
- Java에서 개요 및 책갈피: 제거한 페이지를 참조할 수 있는 탐색 구조 관리
- Java IronPDF 예제: 전체 IronPDF Java API에 대한 코드 샘플을 복사-붙여넣기하세요
무료 체험판 시작을 통해 Java 워크플로에서 PDF의 페이지를 제거하세요. 생산용으로 라이선스를 구매하려면, 라이선싱 옵션 보기를 클릭하세요.
자주 묻는 질문
Java에서 PDF에서 단일 페이지를 어떻게 삭제하나요?
PDF를 PdfDocument.fromFile()로 로드한 후 pdf.removePage(pageIndex)를 호출합니다. 예를 들어, pdf.removePage(0)는 첫 페이지를 제거합니다. 결과를 pdf.saveAs()로 저장합니다.
Java에서 PDF의 페이지 범위를 어떻게 삭제합니까?
pdf.removePages(PageSelection.pageRange(fromIndex, toIndex))를 호출하십시오. from과 to 인덱스는 모두 0부터 시작하여 포함됩니다. 예를 들어 PageSelection.pageRange(2, 4)은 문서의 세 번째, 네 번째, 다섯 번째 페이지를 단일 원자적 작업으로 제거합니다.
페이지를 최고 인덱스에서 최저 인덱스로 제거해야 하는 이유는 무엇입니까?
removePage를 여러 번 호출하면, 각 제거가 모든 이후 페이지 인덱스를 하나씩 낮춥니다. 최고 인덱스에서 최저 인덱스로 제거하면 각 호출이 올바른 페이지를 대상으로 하며, 낮은 인덱스가 아직 제거되지 않아 인덱스 이동이 발생하지 않도록 합니다.
IronPDF Java에서 PageSelection이란 무엇입니까?
PageSelection은 어떤 메소드가 적용될 페이지를 정의하는 com.ironsoftware.ironpdf.edit 패키지의 클래스입니다. PageSelection.pageRange(fromIndex, toIndex)는 removePages와 함께 사용할 수 있는 연속적인 0 기반 포함 페이지 인덱스 블록을 만드는 선택을 생성합니다.
Java에서 IronPDF로 PDF 페이지를 삭제하기 위한 전제 조건은 무엇입니까?
Java 8 이상, Maven 또는 Gradle 종속성으로 추가된 IronPDF 라이브러리, 그리고 IronPDF 호출 전에 License.setLicenseKey()로 설정된 유효한 라이선스 키가 필요합니다. 네이티브 PDF 도구나 추가 프레임워크는 필요 없습니다.
removePage가 원본 PDF 파일을 수정합니까?
아니요. removePage와 removePages는 메모리에 있는 PdfDocument 객체를 수정합니다. 디스크의 원본 파일은 pdf.saveAs(Path.of("output.pdf"))를 호출하여 수정된 문서를 새 경로에 쓸 때까지 변경되지 않습니다.


