Pdfbox-splitting-a-pdf-document

提供:Dev Guides
移動先:案内検索

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.pdfsample2.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が作成されたことを確認できます。

最初に分割 2番目に分割