PDFをJavaで複数のファイルに分割

PDFは、テキスト、グラフィック、およびその他の多くの要素をサポートする最も有名なファイル形式の1つです。その人気の理由の1つは、その携帯性です。場合によっては、大きなPDFファイルを複数のファイルに分割する必要があります。これにプログラムで対処するために、この記事では、JavaでPDFファイルを分割する方法のさまざまな方法について説明します。

*PDFファイルを分割するJavaAPI *PDFを複数ページのファイルに分割 *PDFを複数の単一ページファイルに分割 *Javaの範囲でPDFファイルからページを抽出 *Javaで偶数または奇数フィルターを使用してPDFファイルからページを抽出

PDFファイルを分割するJavaAPI

GroupDocs.Mergerは、さまざまなファイル形式のファイルをマージおよび分割するためのソリューションを提供します。そのJavaAPIを使用して、さまざまな方法でPDFファイルを分割します。 ダウンロードセクションからJARファイルをダウンロードするか、Javaアプリケーション内で最新のリポジトリと依存関係Maven構成を使用します。

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-merger</artifactId>
        <version>21.9</version> 
</dependency>

PDFファイルをJavaでマルチページファイルに分割

次の手順は、PDFファイルを複数ページのファイルに分割する方法を示しています。

*Mergerクラスを使用してPDFファイルをロードします。 *出力ファイルの形式を定義します。 *SplitOptionsを使用してページ間隔を定義します。

  • split() メソッドを使用して、定義された間隔に従ってロードされたPDFを分割します。

次のコードサンプルは、JavaでPDFファイルを複数ページのファイルに分割する方法を示しています。

/*
 * PDFファイルをJavaで複数のページファイルに分割する
 */
// PDFファイルをロードします
Merger merger = new Merger("path/document.pdf"); 

// 出力ファイルの形式を定義する
String filePathOut = "path/splitPDF_{0}.{1}";

// 分割間隔と分割モードを定義する
SplitOptions splitOptions = new SplitOptions(filePathOut,  new int[] { 3, 6, 8 }, SplitMode.Interval);

// 与えられた間隔に従ってPDFを分割する
merger.split(splitOptions);

PDFファイルをJavaで複数の単一ページファイルに分割

次の手順は、PDFを分割してページを複数の単一ページファイルに抽出する方法を示しています。

*Mergerクラスを使用してPDFファイルをロードします。 *出力ファイルの形式を定義します。 *SplitOptionsを使用して正確なページ番号を定義します。

  • split() メソッドを使用して、定義されたページに従ってロードされたPDFを分割します。

次のコードサンプルは、JavaでPDFファイルを複数の単一ページファイルに分割する方法を示しています。

/*
 * PDFファイルをJavaで単一ページファイルに分割
 */
// PDFファイルをロードします
Merger merger = new Merger("path/document.pdf");

// 出力ファイルの形式を定義する
String filePathOut = "path/splitPDF_{0}.{1}"; 

// 単一ページのドキュメントとして抽出されるページを定義する
SplitOptions splitOptions = new SplitOptions(filePathOut, new int[] { 3, 6, 8 });

// 分割オプションに従ってPDFを分割する
merger.split(splitOptions);

Javaの範囲ごとにPDFファイルからページを抽出する

次の手順は、指定された範囲に従って分割してPDFからページを抽出する方法を示しています。

*Mergerクラスを使用してPDFファイルをロードします。 *出力ファイルの形式を定義します。 *SplitOptionsを使用してページ範囲を指定します。

  • split() メソッドを使用して、ロードされたPDFを定義された範囲に従って分割します。

次のコードスニペットは、Javaで範囲を指定してPDFを分割し、ページを抽出する方法を示しています。

/*
 * 与えられた範囲でPDFファイルをJavaの単一ページファイルに分割
 */
// PDFファイルをロードします
Merger merger = new Merger("path/document.pdf"); 

// 出力ファイルの形式を定義する
String filePathOut = "path/splitPDF_{0}.{1}";

// 単一ページのドキュメントとして抽出する範囲を定義する
SplitOptions splitOptions = new SplitOptions(filePathOut, 3, 7);

// 分割オプションに従ってPDFを分割する
merger.split(splitOptions);

Javaの偶数/奇数フィルターを使用してPDFファイルからページを抽出する

次の手順は、分割によってPDFファイルから指定された範囲の偶数/奇数ページを抽出する方法を示しています。

*Mergerクラスを使用してPDFファイルをロードします。 *出力ファイルの形式を定義します。 *SplitOptionsを使用してページ範囲を指定します。

  • RangeModeを使用して、偶数、奇数、またはすべてのページのフィルターを適用します。
  • split() メソッドを使用して、ロードされたPDFを定義されたフィルターに従って分割します。

次のコードスニペットは、Javaを使用してPDFファイルの定義された範囲内のすべての奇数/偶数ページを抽出する方法を示しています。

/*
 * 与えられた範囲とフィルター(偶数/奇数ページ) でPDFファイルをJavaの単一ページファイルに分割
 */
// PDFファイルをロードします
Merger merger = new Merger("path/document.pdf"); 

// 出力ファイルの形式を定義する
String filePathOut = "path/splitPDF_{0}.{1}";

// 範囲とフィルターを定義して、指定された範囲内のすべてのODDページを単一ページのドキュメントとして抽出します
SplitOptions splitOptions = new SplitOptions(filePathOut, 3, 7, (Integer)RangeMode.OddPages);

// 分割オプションに従ってPDFを分割する
merger.split(splitOptions);

コード変更の概要

上記のシナリオで異なるのは、SplitOptionsを作成する方法だけです。コード内の要件に従って、次の構成を使用できます。

  • マルチページファイルの場合-間隔を使用:\ [1,2 ]、\ [3,4,5 ]、\ [6,7 ]、[8,9,10]。
new SplitOptions(outputFile,  new int[] { 3, 6, 8 }, SplitMode.Interval)
  • 個々のページ:\ [3 ]、\ [6 ]、\ [8 ]
new SplitOptions(outputFile, new int[] { 3, 6, 8 });
  • 範囲内のページを抽出するには:\ [3 ]、\ [4 ]、\ [5 ]
new SplitOptions(outputFile, 3, 5);
  • フィルター付きの範囲:\ [3 ]、\ [5 ]、\ [7 ]
new SplitOptions(outputFile, 3, 7, (Integer)RangeMode.OddPages);

無料のAPIライセンスを取得する

評価の制限なしにAPIを使用するために、無料の一時ライセンスを取得できます。

結論

要約すると、JavaでPDFファイルを分割するさまざまな方法を学びました。まず、PDFファイルを複数ページのドキュメントといくつかの単一ページのドキュメントに分割します。次に、すべてのページと、指定された範囲内のPDFファイルの偶数/奇数ページを1つずつ抽出しました。これで、GroupDocs.MergerAPIを使用して独自のPDFスプリッターJavaアプリを作成できるようになります。

APIの詳細については、ドキュメントにアクセスしてください。お問い合わせは、フォーラムまでお問い合わせください。

関連項目

*Javaを使用して複数のファイルタイプを1つにマージ