Pdfbox-splitting-a-pdf-document
PDFBox-PDFドキュメントの分割
前の章で、JavaScriptをPDFドキュメントに追加する方法を見てきました。 特定のPDFドキュメントを複数のドキュメントに分割する方法を学びましょう。
PDFドキュメント内のページの分割
Splitterという名前のクラスを使用して、指定されたPDFドキュメントを複数のPDFドキュメントに分割できます。 このクラスは、指定されたPDFドキュメントを他のいくつかのドキュメントに分割するために使用されます。
既存のPDFドキュメントを分割する手順は次のとおりです
ステップ1:既存のPDFドキュメントの読み込み
*PDDocument* クラスの静的メソッド* load()*を使用して、既存のPDFドキュメントを読み込みます。 このメソッドは、以下に示すようにクラス名を使用して呼び出すことができる静的メソッドであるため、パラメーターとしてファイルオブジェクトを受け入れます。
File file = new File("path of the document")
PDDocument document = PDDocument.load(file);
ステップ2:スプリッタークラスのインスタンス化
*Splitter* という名前のクラスには、指定されたPDFドキュメントを分割するメソッドが含まれているため、以下に示すようにこのクラスをインスタンス化します。
Splitter splitter = new Splitter();
ステップ3:PDFドキュメントの分割
このクラスの Splitter クラスの* Split()メソッドを使用して、指定されたドキュメントを分割できます。 このメソッドは、 *PDDocument クラスのオブジェクトをパラメーターとして受け入れます。
List<PDDocument> Pages = splitter.split(document);
- split()*メソッドは、指定されたドキュメントの各ページを個々のドキュメントとして分割し、これらすべてをリストの形式で返します。
ステップ4:イテレーターオブジェクトの作成
文書のリストを走査するには、上記の手順で取得したリストの反復子オブジェクトを取得する必要があります。次に示すように、* listIterator()*メソッドを使用してリストの反復子オブジェクトを取得する必要があります。
Iterator<PDDocument> iterator = Pages.listIterator();
ステップ5:ドキュメントを閉じる
最後に、以下に示すように PDDocument クラスの* close()*メソッドを使用してドキュメントを閉じます。
document.close();
例
パス C:\ PdfBox_Examples \ に sample.pdf という名前のPDFドキュメントがあり、このドキュメントに2つのページが含まれているとします。1つのページには画像が含まれ、別のページにはテキストが含まれます。
この例は、上記のPDFドキュメントを分割する方法を示しています。 ここでは、 sample.pdf という名前のPDFドキュメントを2つの異なるドキュメント sample1.pdf と sample2.pdf に分割します。 このコードを* SplitPages.java。*という名前のファイルに保存します
import org.apache.pdfbox.multipdf.Splitter;
import org.apache.pdfbox.pdmodel.PDDocument;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Iterator;
public class SplitPages {
public static void main(String[] args) throws IOException {
//Loading an existing PDF document
File file = new File("C:/PdfBox_Examples/sample.pdf");
PDDocument document = PDDocument.load(file);
//Instantiating Splitter class
Splitter splitter = new Splitter();
//splitting the pages of a PDF document
List<PDDocument> Pages = splitter.split(document);
//Creating an iterator
Iterator<PDDocument> iterator = Pages.listIterator();
//Saving each page as an individual document
int i = 1;
while(iterator.hasNext()) {
PDDocument pd = iterator.next();
pd.save("C:/PdfBox_Examples/sample"+ i++ +".pdf");
}
System.out.println("Multiple PDF’s created");
document.close();
}
}
次のコマンドを使用して、コマンドプロンプトから保存したJavaファイルをコンパイルして実行します。
javac SplitPages.java
java SplitPages
実行すると、上記のプログラムは指定されたPDFドキュメントを暗号化し、次のメッセージを表示します。
Multiple PDF’s created
指定されたパスを確認すると、以下に示すように、 sample1 および sample2 という名前の複数のPDFが作成されたことを確認できます。