# JavaでPDFを分割する方法
JavaでのPDFの分割はIronPDFで簡単です。`splitBy`メソッドを提供し、個別のページを抽出したり、ページ範囲を取得したり、ドキュメントを境界で分割したりできます。 各メソッドは元のドキュメントとは独立して保存する新しい`PdfDocument`を返します。
*as-heading:2(クイックスタート:JavaでPDFを分割)*
1. MavenまたはGradleを介してJava用のIronPDFをインストールする
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 {
// Set the license key before calling any IronPDF methods
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load the source PDF from disk
PdfDocument pdf = PdfDocument.fromFile(Path.of("source.pdf"));
// Extract the first page (zero-based index 0) into a new document
PdfDocument firstPage = pdf.copyPage(0);
// Save the extracted page as a standalone PDF
firstPage.saveAs(Path.of("page-one.pdf"));
}
}
```
プログラム的にドキュメントを生成する際には、PDFの分割が一般的な要求です。 単一ファイルとして生成されたレポートは、配布前に個々のセクションに分割する必要があるかもしれません。 アーカイブワークフローでは、各章や請求書を別々のファイルとして保存する必要があることがあります。特定のページ範囲のみをクライアントに送信するなどの選択的な共有シナリオは、ドキュメント全体を送信するのではなく、正確に必要なページを抽出することで利益を得ます。
IronPDFは、すべての3つの分割パターンを`PdfDocument`クラスで一貫したAPIを通じて処理します。 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プロジェクトの場合、`implementation`行を追加します。 完全な依存関係と構成の指示は、[スタートオーバービュー](https://ironpdf.com/java/docs/)で利用可能です。
有効なライセンスキーが必要です。 アプリケーションの起動時に設定し、IronPDFメソッドを呼び出す前に行います:
```java
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
```
ライセンスオプションとトライアルキーについては、[ライセンスキーガイド](https://ironpdf.com/java/get-started/license-keys/)を訪れてください。
[[t:(IronPDFのすべてのページインデックスはゼロベースの番号を使用します。 ドキュメントのページ1はインデックス0、ページ2はインデックス1と続きます。)]]
## PDFから単一ページを抽出するにはどうすればよいですか?
`PdfDocument`として返します。 元のドキュメントは変更されません。 `1`を渡します。
このメソッドは、ワークフローが特定のページを分離する必要があるときに適しています。例えば、表紙ページ、署名された署名ページ、またはバッチ生成されたドキュメントからの単一の請求書を抽出する場合です。
```java
//: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 {
// Set the license key before calling any IronPDF methods
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load the source PDF from disk
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);
// Save the extracted page as a standalone PDF
thirdPage.saveAs(Path.of("third-page.pdf"));
}
}
```
返される`PdfDocument`はソースとは完全に独立しています。 さらなる変換を適用したり、注釈を追加したり、保存する前に他のドキュメントと結合したりできます。
## PDFからページ範囲を抽出するにはどうすればよいですか?
`PdfDocument`として返します。 `toIndex`はどちらもゼロベースで包含的です: 10ページのドキュメントで`copyPages(1, 4)`を渡すと、ページ2、3、4、5(インデックス1から4)が抽出されます。
ページ範囲の抽出は、多章にわたるレポートからの章の抽出、複数ページの付録の抽出、またはPDFとしてエクスポートされたプレゼンテーションからのスライドセットの分離のようなシナリオに適しています。
```java
//: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 {
// Set the license key before calling any IronPDF methods
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つのドキュメントに分割するにはどうすればよいですか?
`List<PdfDocument>`を返します。 最初の要素にはインデックス0から`splitAfterPageIndex`(含まれる)までのページが含まれます。 2番目の要素には`splitAfterPageIndex + 1`からドキュメントの終わりまでの残りのすべてのページが含まれます。
例えば、10ページのドキュメントで`splitBy(2)`を呼び出すと、次のようになります:
- `parts.get(0)`:ページ0、1、2(最初の3ページ)
- `parts.get(1)`:ページ3から9(残りの7ページ)
このメソッドは、既知の境界でドキュメントを分割するのに適しています:表紙を本文から分離したり、セクションブレイクでドキュメントを分割したり、並列処理のためにバッチファイルを2つに分けたりします。
```java
//: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 {
// Set the license key before calling any IronPDF methods
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load the source PDF from disk
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"));
}
}
```
[[i:(`splitBy`は常に正確に2つの要素を含むリストを返します。 `splitAfterPageIndex`がドキュメントの最後のページインデックスと等しい場合、2番目の要素は空のドキュメントになります。 分割境界が動的に計算される場合は、`pdf.getPageCount() - 1`に対して検証します。)]
)]]
## JavaでのPDF分割の次のステップは何ですか?
IronPDFの`splitBy`メソッドは、単一ページ抽出から範囲を基にした分割、境界に基づく分割まで、JavaでのPDF分割要件を完全にカバーします。 各メソッドはさらなる操作や即時保存の準備ができている独立した`PdfDocument`を返します。
JavaでPDFドキュメントを引き続き操作するために、これらの関連リソースを探索してください。
- [JavaでPDFをマージ](https://ironpdf.com/java/how-to/java-merge-pdf-tutorial/):複数のPDFファイルまたは抽出されたパーツを単一のドキュメントに結合します
- [JavaでPDFページを削除](https://ironpdf.com/java/how-to/java-delete-pdf-pages-tutorial/):残りを抽出せずに既存のPDFから不要なページを削除します
- [JavaでPDFを圧縮](https://ironpdf.com/java/how-to/compress-pdf-java-tutorial/):分割ドキュメントのファイルサイズをストレージまたは転送前に削減します
- [Java PDFチュートリアル](https://ironpdf.com/java/tutorials/html-to-pdf/):一般的なPDFワークフローの完全なエンドツーエンドの例
- [IronPDF for Javaの例](https://ironpdf.com/java/examples/):IronPDF Java APIの完全なコードサンプルをコピー貼り付け
[無料トライアルを開始して](#trial-license)、JavaのワークフローにPDF分割を追加してください。 生産用途のライセンスを購入するには、[ライセンスオプションを表示](#licensing)してください。
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-tutorial/quickstart.javaimport 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 { // Set the license key before calling any IronPDF methodsLicense.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01"); // Load the source PDF from disk PdfDocument pdf = PdfDocument.fromFile(Path.of("source.pdf")); // Extract the first page (zero-based index 0) into a new document PdfDocument firstPage = pdf.copyPage(0); // Save the extracted page as a standalone PDF firstPage.saveAs(Path.of("page-one.pdf")); }}
//: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 {
// Set the license key before calling any IronPDF methods
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load the source PDF from disk
PdfDocument pdf = PdfDocument.fromFile(Path.of("source.pdf"));
// Extract the first page (zero-based index 0) into a new document
PdfDocument firstPage = pdf.copyPage(0);
// Save the extracted page as a standalone PDF
firstPage.saveAs(Path.of("page-one.pdf"));
}
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-tutorial/copy-single-page.javaimport 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 { // Set the license key before calling any IronPDF methodsLicense.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01"); // Load the source PDF from disk 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); // Save the extracted page as a standalone 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 {
// Set the license key before calling any IronPDF methods
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load the source PDF from disk
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);
// Save the extracted page as a standalone PDF
thirdPage.saveAs(Path.of("third-page.pdf"));
}
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-tutorial/copy-page-range.javaimport 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 { // Set the license key before calling any IronPDF methodsLicense.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 {
// Set the license key before calling any IronPDF methods
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/split-by-boundary.javaimport 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 { // Set the license key before calling any IronPDF methodsLicense.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01"); // Load the source PDF from disk 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 {
// Set the license key before calling any IronPDF methods
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load the source PDF from disk
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"));
}
}
How does the `splitBy` method function in IronPDF?
The `splitBy(int splitAfterPageIndex)` method divides a PDF at a specified boundary, returning a list with two `PdfDocument` parts, split at the given index.
What is the page index base used in IronPDF?
IronPDF uses zero-based numbering for page indexes. For example, the first page is indexed as 0.
What are the prerequisites for splitting a PDF using IronPDF in Java?
Before splitting a PDF using IronPDF, ensure the IronPDF library is integrated as a Maven or Gradle dependency, and a valid license key is set.
Where can you find more examples of using IronPDF for Java?
More examples and code samples for using IronPDF with Java can be found in the IronPDF documentation and on the official website's example section.