JavaでPDFからページを削除する方法
JavaでPDFのページを削除するのは、IronPDFを使えば簡単です。このライブラリは、PageSelectionによってサポートされています。これにより、単一のページ、連続した範囲、あるいは散在するページインデックスのセットなど、削除するページを正確に制御できます。 IronPDFのすべてのページインデックスはゼロベースであるため、文書の最初のページは常にインデックス0です。
クイックスタート: JavaでPDFページを削除
- MavenまたはGradleを介してJava用のIronPDFをインストールする
License.setLicenseKey()でライセンスキーを設定してくださいPdfDocument.fromFile()を使用して PDF を読み込むremovePage()を含むページを1つ削除してください- 結果を
saveAs()で保存してください
```java :title=クイックスタート //:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-delete-pdf-pages-tutorial/quickstart.java インポート java.io.IOException; import java.nio.file.Path; import com.ironsoftware.IronPdf.License; インポート 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)
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/)も含まれます。 セットアップと利用可能な機能の完全な概要については、[Get Started Overview](https://ironpdf.com/java/docs/)をご覧ください。
このガイドの例では、インデックスによる単一ページの削除、`PageSelection`を使用した連続したページ範囲の削除、およびインデックスシフトエラーを発生させることなく複数の非連続ページを安全に削除する、という3つのシナリオを取り上げています。
<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>removePages</code>と<code>PageSelection</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のすべてのページインデックスはゼロベースの番号を使用します。 ドキュメントのページ1はインデックス0、ページ2はインデックス1と続きます。
## PDFから単一のページを削除する方法は?
`removePage(int pageIndex)` メソッドは、0 から始まるページインデックスを受け取り、ドキュメントからそのページを正確に削除します。 呼び出しが完了すると、その後のすべてのページが1つ下にシフトするため、呼び出し前にキャッシュしたインデックスが同じページを指さない可能性があります。
たとえば、ドキュメントが5ページ(インデックス0~4)で構成されており、インデックス2を削除した場合、インデックス3にあったページはインデックス2になり、インデックス4にあったページはインデックス3になります。特に `removePage` を連続して複数回呼び出す場合は、このインデックスのShiftを考慮して削除順序を計画してください。
```java
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-delete-pdf-pages-tutorial/single-page.java
インポート java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
インポート 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"));
}
}
これはどのページを削除するか正確に知っていて、1つだけ削除すればよい場合に最も簡単なアプローチです。 連続したページ範囲を一度の操作で削除するには、removePages の代わりに PageSelection 範囲を使用してください。
PDFからページの範囲を削除する方法は?
removePages(PageSelection) メソッドは、指定された選択範囲に含まれるすべてのページを単一の原子操作で削除します。これにより、removePage を複数回呼び出した際に発生するインデックスシフトの問題を回避できます。 範囲を指定するには 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
インポート java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
インポート 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
インポート java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
インポート 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 呼び出しをループ処理するよりも簡潔かつ効率的であり、単一操作のセマンティクスにより、ページ数は一度だけ更新されます。
複数の非連続ページを削除する方法は?
互いに隣接していないページを削除する必要がある場合、実用的な選択肢は2つあります。個々のインデックスを指定する PageSelection と組み合わせて removePages を使用するか、慎重に順序を考えたシーケンスで removePage を複数回呼び出す方法です。
removePageを複数回呼び出す場合は、常にインデックスの高い順から低い順に処理してください。インデックスの低いページを先に削除すると、それより高いインデックスのページがすべて1つずつ下へずれてしまい、その後の呼び出しで誤ったページが対象となってしまいます。 ドキュメントの終わりから逆方向に作業を開始することで、各削除が残りの低インデックスを乱さないままにします。
以下の例では、6ページのドキュメントから最初のページ、中間のページ、最後のページを削除します。 呼び出しはインデックスが高い方から低い方へと並んでおり(5、3、0)、インデックスのずれを防ぎます。
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-delete-pdf-pages-tutorial/non-consecutive-pages.java
インポート java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
インポート 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
インポート java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
インポート 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
インポート 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;
インポート 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
インポート 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;
インポート 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のremovePagesメソッドを使用すると、単一のページを削除する場合でも、範囲を指定して削除する場合でも、あるいは散在するページ群を削除する場合でも、ページの削除をきめ細かく制御できます。 ゼロベースのインデックスモデルは、完全なIronPDF Java APIにわたって一貫しているため、ページの分割、統合、再注文に進む際も同じ慣習が適用されます。
PDFページ構造およびドキュメント操作を続行するには、これらの関連リソースを調査してください:
- JavaでのPDFの分割:特定のページまたはページ範囲を別のPDFファイルに抽出
- JavaでのPDFの統合:複数のドキュメントを1つのPDFに統合し、ページ全体の制御を可能にする
- JavaでのPDFの圧縮:ページを削除した後のファイルサイズを小さくし、配布のために最適化
- Javaでのアウトラインとブックマーク:削除したページを参照する可能性のあるナビゲーション構造を管理する
- IronPDF for Javaの例:IronPDF Java APIの完全なコードサンプルをコピー貼り付け
無料トライアルを開始して、JavaワークフローでのPDFからページを削除します。 生産用途のライセンスを購入するには、ライセンスオプションを表示してください。
よくある質問
JavaでPDFから単一ページを削除するにはどうすればいいですか?
PdfDocument.fromFile()でPDFをロードし、ゼロベースインデックスを使用してpdf.removePage(pageIndex)を呼び出します。例えば、pdf.removePage(0)は最初のページを削除します。pdf.saveAs()で結果を保存します。
JavaでPDFからページ範囲を削除するにはどうすればいいですか?
pdf.removePages(PageSelection.pageRange(fromIndex, toIndex))を呼び出します。fromとtoのインデックスはゼロベースでインクルーシブです。例えば、PageSelection.pageRange(2, 4)はドキュメントの3, 4, 5番目のページを単一のアトミック操作で削除します。
なぜインデックスが高い順から低い順にページを削除する必要があるのでしょうか?
removePageを複数回呼び出す際、各削除はその後のすべてのページインデックスを1つ下げます。高いインデックスから低いインデックスへ削除することで、シフトによって目的のページを削除し損ねることを防ぎます。
IronPDF JavaでのPageSelectionとは?
PageSelectionはcom.ironsoftware.ironpdf.editパッケージ内のクラスで、どのページをメソッドが対象とするべきかを定義します。PageSelection.pageRange(fromIndex, toIndex)はremovePagesで使用するための、ゼロベースで両端を含む連続したページインデックスの選択を作成します。
JavaでIronPDFを使用してPDFページを削除するための前提条件は何ですか?
Java 8以上、MavenまたはGradleの依存関係として追加されたIronPDFライブラリ、および任意のIronPDF呼び出しの前に設定された有効なライセンスキーが必要です。ネイティブのPDFツールや追加のフレームワークは必要ありません。
removePageは元のPDFファイルを修正しますか?
いいえ。removePageおよびremovePagesは、メモリ上のPdfDocumentオブジェクトを修正します。ディスク上の元のファイルは、pdf.saveAs(Path.of("output.pdf"))を呼び出して変更されたドキュメントを新しいパスに書き込むまで変更されません。


