3.12 サンプルプログラム(7) - PDF文書の開き方の設定
概要
『3.2 サンプルプログラム(1-1) - ページレイアウトでPDFを生成』では、ページレイアウトのみで PDF を生成していました。
ページレイアウトのみで PDF を生成する場合、ページサイズや改ページについて上位アプリケーションで制御する必要がありましたが、ドキュメントレイアウトを利用することで上位アプリケーションでの制御を不要にできます。
また、ドキュメントレイアウトを利用することで、生成する PDF に対して以下の機能の追加および処理を行うことができます。
- パスワードや開き方といった各種プロパティの設定
- 電子署名
- 透かし機能
- 既存 PDF ファイルのインポート
このサンプルプログラムでは、PDF文書の開き方とPDFファイルのヘッダバージョンを設定します。
サンプル構成
| 項目 | ファイルパス |
|---|---|
| ドキュメントレイアウトサンプル |
<biz-Stream_home>/sample/java/Sample7.xml
|
| ページレイアウトサンプル |
<biz-Stream_home>/sample/java/Sample7-include1.xml
|
|
<biz-Stream_home>/sample/java/Sample7-include2.xml
|
|
| ソースサンプル |
<biz-Stream_home>/sample/java/Sample7.java
|
| 出力結果サンプル |
<biz-Stream_home>/sample/java/Sample7.pdf
|
ソースサンプル
import java.io.FileNotFoundException;
import java.io.IOException;
import com.brainsellers.xml.JaxpXML;
import com.brainsellers.xml.common.XMLSuper;
import com.brainsellers.xml.page.PDFEngine;
public class Sample7 {
public static void main(String[] args) {
new Sample7();
System.exit(0);
}
public Sample7() {
try {
// (1) 出力先をファイル名で指定する
PDFEngine pdf = new PDFEngine("${base-dir}/sample/java/Sample7.pdf");
// (2) レイアウトXMLファイルパスと出力先を指定する
XMLSuper xml = new JaxpXML("${base-dir}/sample/java/Sample7.xml", pdf);
// (3) PDFヘッダーバージョンを設定する
pdf.setHeaderVersion("1.5");
// (4) 開き方・ページ番号を設定する
// 初期表示するページ番号 (ページ数がこれ以下の場合は反映されない)
pdf.setInitialPageNo(8);
// (5) 開き方・倍率を設定する
// (5-1) PDFを開く時、実際の幅で表示する
// pdf.setActualSize();
// (5-2) PDFを開く時、1ページ全体を表示する
// pdf.setFitInWindow();
// (5-3) PDFを開く時、ウィンドウの幅に合わせて連続ページで表示
pdf.setFitWidth();
// (6) レイアウト情報(XML)の解析を行う
xml.parse();
// (7) 開き方・ページレイアウトを設定する
// (7-1) 初期表示で1ページで表示する
// xml.setSinglePage();
// (7-2) 初期表示で1カラムで表示する
// xml.setOneColumn();
// (7-3) 初期表示で2ページ同時表示で、奇数ページを左側に表示する
xml.setTwoColumnLeft();
// (7-4) 初期表示で2ページ同時表示で、奇数ページを右側に表示する
// xml.setTwoColumnRight();
// (8) 開き方・ウィンドウオプションを設定する
// (8-1) 初期表示で全画面で表示する
// xml.setFullScreen();
// (8-2) 初期表示でページにウィンドウサイズを合わせる
// xml.setFitWindow(false);
// (8-3) 初期表示でウィンドウを画面中央に配置する
xml.setCenterWindow(true);
// (9) 開き方・ウィンドウコントロールオプションを設定する
// (9-1) 初期表示で「メニューバー」を非表示にする
// xml.setHideMenuBar(true);
// (9-2) 初期表示で「ツールバー」を非表示にする
// xml.setHideToolBar(true);
// (9-3) 初期表示で「ウィンドウコントロール」を非表示にする
// xml.setHideWindowUI(true);
// (9-4) 初期表示でアウトラインを表示する
// xml.setUseOutlines();
// (9-5) 初期表示でサムネールを表示する
xml.setUseThumbs();
// (9-6) 初期表示でアウトラインやサムネールを表示しない
// xml.setUseNone();
// (10) 印刷ダイアログプリセットを設定する
// (10-1)「ページの拡大縮小」をセットする true:拡大縮小する, false:なし
// xml.setPrintScaling(true);
// (10-2)「両面印刷モード」をセットする 0:片面, 1:両面(上下に開く), 2:両面(左右に開く)
// xml.setPrintDuplex(1);
// (10-3)「ページサイズに合わせて用紙選択」をセットする
// xml.setPickTrayByPDFSize(true);
// (10-4)「デフォルト印刷部数」をセットする
// xml.setNumCopies(2);
// (10-5)「印刷ページ範囲」をセットする
xml.setPrintPageRange("1-2,5");
// (11) データのセットおよび座標計算を行った後、PDFを生成する
xml.toPDF();
// (12) PDFを出力する
xml.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
出力結果
PDFを開いた時に8ページ目が選択された状態で開かれます。
PDF のバージョンがプログラムで設定した1.5 になっています。
PDF の印刷ページ範囲が設定した「1-2,5」になっています。
