JavaでPDFを分割する方法
JavaでPDFを分割するのはIronPDFを使えば簡単です。IronPDFは、PdfDocumentクラスに提供しており、個々のページの抽出、ページ範囲の取得、または境界でのドキュメントの分割が可能です。 各メソッドは新しい PdfDocument を返し、これを元のデータとは別に保存します。
クイックスタート:JavaでPDFを分割
- MavenまたはGradleを介してJava用のIronPDFをインストールする
License.setLicenseKey()でライセンスキーを設定してくださいPdfDocument.fromFile()を使用して PDF を読み込む- 1ページ分を抽出するには
copyPage()を使用してください - 結果を
saveAs()で保存してください
```java :title=クイックスタート //:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-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ベースのインデックス0)を新しいドキュメントに抽出
PdfDocument firstPage = pdf.copyPage(0);
// 抽出されたページをスタンドアロンのPDFとして保存します
firstPage.saveAs(Path.of("page-one.pdf"));
}
}
プログラム的にドキュメントを生成する際には、PDFの分割が一般的な要求です。 単一ファイルとして生成されたレポートは、配布前に個々のセクションに分割する必要があるかもしれません。 アーカイブワークフローでは、各章や請求書を別々のファイルとして保存する必要があることがあります。特定のページ範囲のみをクライアントに送信するなどの選択的な共有シナリオは、ドキュメント全体を送信するのではなく、正確に必要なページを抽出することで利益を得ます。
IronPDFは、`PdfDocument`クラス上の統一されたAPIを通じて、これら3つの分割パターンすべてを処理します。 HTMLからPDFを生成するか既存のファイルをロードするために使用されるのと同じクラスが、ページ抽出メソッドを公開しているため、分割は既存のIronPDFワークフローに自然に統合されます。 セットアップと依存関係の構成については、[スタートオーバービュー](https://ironpdf.com/java/docs/)を参照してください。
IronPDFのすべてのページインデックスはゼロベースです。 ソース文書が10ページの場合、有効なインデックスは0から9までとなります。これは、`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プロジェクトの場合は、build.gradleに追加してください。 完全な依存関係と構成の指示は、スタートオーバービューで利用可能です。
有効なライセンスキーが必要です。 アプリケーションの起動時に設定し、IronPDFメソッドを呼び出す前に行います:
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
ライセンスオプションとトライアルキーについては、ライセンスキーガイドを訪れてください。
PDFから単一ページを抽出するにはどうすればよいですか?
copyPage(int pageIndex) メソッドは、PdfDocument から 1 ページを抽出し、それを新しい独立した PdfDocument として返します。 元のドキュメントは変更されません。 pageIndex 引数は0から始まるインデックスです。1ページ目には 0、2ページ目には 1 を指定し、以下同様に指定してください。
このメソッドは、ワークフローが特定のページを分離する必要があるときに適しています。例えば、表紙ページ、署名された署名ページ、またはバッチ生成されたドキュメントからの単一の請求書を抽出する場合です。
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-tutorial/copy-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("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
インポート 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"));
// 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"));
}
}
返される PdfDocument は、原文とは完全に独立したものです。 さらなる変換を適用したり、注釈を追加したり、保存する前に他のドキュメントと結合したりできます。
PDFからページ範囲を抽出するにはどうすればよいですか?
copyPages(int fromIndex, int toIndex) メソッドは、連続したページ範囲を抽出し、それらを新しい PdfDocument として返します。 fromIndex と toIndex はどちらも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
インポート 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 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
インポート 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 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"));
}
}
ソース文書のページ数が指定された toIndex より少ない場合、IronPDF は例外をスローします。 ページ数が変動する可能性のあるドキュメントを扱う際は、pdf.getPageCount()を確認してください。
PDFを2つのドキュメントに分割するにはどうすればよいですか?
splitBy(int splitAfterPageIndex) メソッドは、境界で PDF を分割し、正確に 2 つの要素を含む List<PdfDocument> を返します。 最初の要素には、インデックス 0 から splitAfterPageIndex までのページが含まれます(両端を含む)。 2番目の要素には、splitAfterPageIndex + 1 からドキュメントの終わりまでの残りのすべてのページが含まれています。
例えば、10ページのドキュメントで splitBy(2) を呼び出すと、次のような結果が得られます:
parts.get(0): 0、1、2ページ(最初の3ページ)parts.get(1): 3ページから9ページ(残りの7ページ)
このメソッドは、既知の境界でドキュメントを分割するのに適しています:表紙を本文から分離したり、セクションブレイクでドキュメントを分割したり、並列処理のためにバッチファイルを2つに分けたりします。
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-tutorial/split-by-boundary.java
インポート java.io.IOException;
import java.nio.file.Path;
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");
// ディスクからソース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
インポート java.io.IOException;
import java.nio.file.Path;
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");
// ディスクからソース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"));
}
}
splitBy は常に、要素が正確に 2 つあるリストを返します。 splitAfterPageIndex がドキュメントの最終ページインデックスと等しい場合、2番目の要素は空のドキュメントになります。 (分割点が動的に計算される場合、pdf.getPageCount() - 1 に対して分割境界を検証してください。)}]JavaでのPDF分割の次のステップは何ですか?
IronPDFのsplitByメソッドは、単一ページの抽出から範囲ベースの分割、境界ベースの分割に至るまで、JavaにおけるPDF分割のあらゆる要件を網羅しています。 各メソッドは、さらなる処理や即時保存が可能な独立した PdfDocument を返します。
JavaでPDFドキュメントを引き続き操作するために、これらの関連リソースを探索してください。
- JavaでPDFをマージ:複数のPDFファイルまたは抽出されたパーツを単一のドキュメントに結合します
- JavaでPDFページを削除:残りを抽出せずに既存のPDFから不要なページを削除します
- JavaでPDFを圧縮:分割ドキュメントのファイルサイズをストレージまたは転送前に削減します
- Java PDFチュートリアル:一般的なPDFワークフローの完全なエンドツーエンドの例
- IronPDF for Javaの例:IronPDF Java APIの完全なコードサンプルをコピー貼り付け
無料トライアルを開始して、JavaのワークフローにPDF分割を追加してください。 生産用途のライセンスを購入するには、ライセンスオプションを表示してください。
よくある質問
JavaでIronPDFを使ってPDFを分割するにはどうすればよいですか?
PdfDocument.fromFile()を使ってPDFをロードし、copyPage(index)で単一ページを抽出し、copyPages(from, to)で範囲を抽出するか、splitBy(index)でドキュメントを2つの部分に分割します。各結果をsaveAs()で保存してください。
copyPage、copyPages、splitByの違いは何ですか?
copyPage(index)は、ゼロベースのインデックスによって単一のページを抽出します。copyPages(fromIndex, toIndex)は、両端を含む連続する範囲を抽出します。splitBy(index)は、境界でドキュメントを分割し、2つの要素を持つListを返します: 境界インデックスまでのページ0および残りのすべてのページ。
IronPDFでのページインデックスはゼロベースかワンベースか?
IronPDFでのページインデックスはゼロベースです。ドキュメントの最初のページはインデックス0、2番目はインデックス1です。これはcopyPage、copyPages、splitByに適用されます。
splitByは何を返しますか?
splitBy(splitAfterPageIndex)は、正確に2つの要素を持つListを返します。最初の要素には、0ページから分割インデックスまでのページ(インクルーシブ)が含まれます。2番目の要素には、残りのすべてのページが含まれます。分割インデックスが最後のページの場合、2番目の要素は空のドキュメントになります。
IronPDF for Javaを使用してPDFを分割するための前提条件は何ですか。
Java 8以上、MavenまたはGradle依存関係として追加されたIronPDFライブラリ、そして任意のIronPDF呼び出しの前にLicense.setLicenseKey()で設定された有効なライセンスキーが必要です。
JavaでPDFから2ページ目から5ページ目までを抽出する方法は?
pdf.copyPages(1, 4) を使用して、ページ2から5を抽出してください。IronPDFではゼロベースのインデックスが使用されているため、ページ2はインデックス1で、ページ5はインデックス4です。両方の境界は含まれます。saveAs()で結果を保存してください。


