
複数のPDF文書を結合して、1つのPDF文書として保存します。
2つのPDF文書を指定した順番に結合します。結合に際して、PDFに注釈やフォーム、しおり、添付ファイルなどがあったとき、それらをともに結合するかどうか(結合のオプション)の選択ができます。
append(const PtlPDFDocument doc, int fromNum, int numPages, intparam)の引数には、追加するPDF、追加するページの開始、追加するページ数、結合のオプションを指定します。結合のオプションは次の論理和です。
| オプション | 説明 |
|---|---|
| OPTION_NONE | オプションはありません。 |
| OPTION_EXECPT_ANNOTS | 注釈を除外してページ挿入します。 |
| OPTION_EXCEPT_FORMS | フォームを除外してページ挿入します。 |
| OPTION_COPY_OUTLINES | ページ挿入時にあわせてしおりをコピーします。他PDFのページ挿入時に有効となります。 |
| OPTION_COPY_ATTACHEDFILES | ページ挿入時にあわせて添付ファイルをコピーします。添付ファイルは文書に添付されているものを指し、注釈に添付されているものは対象とはしません。 |
package cookbook;
import jp.co.antenna.ptl.*;
public class AppendPages {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
if (args.length < 3)
{
System.out.println("usage: java AppendPages in-pdf-file out-pdf-file append-pdf-file");
return;
}
try (PtlParamInput inputFile = new PtlParamInput(args[0]);
PtlParamOutput outputFile = new PtlParamOutput(args[1]);
PtlPDFDocument doc = new PtlPDFDocument())
{
// PDFファイルをロード
doc.load(inputFile);
try (PtlPages pages = doc.getPages()) //ページコンテナの取得
{
try (PtlParamInput appendFile = new PtlParamInput(args[2]);
PtlPDFDocument doc_app = new PtlPDFDocument())
{
// 追加するPDFファイルをロードします。
doc_app.load(appendFile);
// ページの追加(1P目から全頁) OPTION_COPY_OUTLINES = 0x00000004 /* ページ挿入時にあわせてしおりをコピーします。他PDFのページ挿入時に有効となります。 */
pages.append(doc_app, 0, PtlPages.PAGE_ALL, PtlPages.OPTION_COPY_OUTLINES);
}
}
// ファイルに保存します。
doc.save(outputFile);
}
catch (PtlException pex) {
System.out.println("PtlException : ErrorCode = " + pex.getErrorCode() + "\n " + pex.getErrorMessage());
}
catch (Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
catch (Error ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
finally {
System.out.println("-- 完了 --");
}
}
}
AppendPages.java
C:\samples>java cookbook.AppendPages usage: java AppendPages in-pdf-file out-pdf-file append-pdf-file C:\samples>java cookbook.AppendPages pdf-cookbook_vol1-part1.pdf pdf-cookbook_vol1-joined.pdf pdf-cookbook_vol1-part2.pdf -- 完了 --
この例では、pdf-cookbook_vol1-part1.pdfとpdf-cookbook_vol1-part2.pdfを入力して、tagged-pdf-joined.pdfを作成しています。なお、2つの入力PDFにしおりが設定されています。「OPTION_COPY_OUTLINES」により、出力PDFには、図のように2つのしおりを結合したしおりがつきます。
