
画像から作るページの縦横サイズを設定画像からページを作る際の新規ページの大きさを任意のサイズに指定します。
画像から新規ページを作成する際に、ページのサイズを「カスタムサイズ」として選択して、ページ幅・ページの高さをユーザが指定できます。
本サンプルプログラムでは、入力画像ファイルを新しいPDFドキュメントとして出力します。その際に新規ページの幅、高さをそれぞれコマンドライン引数で指定します。単位はmm単位です。画像が大きいときはページの中に入るように縮小します。それ以外の設定・動作は「4.1.1 ページの作成」と同じです。
package cookbook;
import jp.co.antenna.ptl.*;
public class ImageToPdfSetPaperSize {
// そのクラスのusageを表示する関数
private static void printUsage() {
System.out.println("usage: java ImageToPdfSetPaperSize image-file" +
" out-pdf-file paper-width paper-height");
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
if (args.length < 4) {
printUsage();
return;
}
//コマンドライン引数の読み取り
float paperWidth = Float.parseFloat(args[2]);
float paperHeight = Float.parseFloat(args[3]);
try (PtlParamOutput outputFile = new PtlParamOutput(args[1]);
PtlPDFDocument doc = new PtlPDFDocument(); //PDF文書を表現したクラスを新規作成
PtlPages pages = doc.getPages()) { //作成したクラスのページコンテナの取得
// 画像描画パラメータ
// 画像ファイル
// 画像ページパラメータ の取得
try (PtlParamDrawImage paramDrawImage = new PtlParamDrawImage();
PtlParamInput inputImage = new PtlParamInput(args[0]);
PtlParamImagePage paramImagePage = new PtlParamImagePage()) {
// 画像ページのサイズをPAPER_CUSTOM_SIZEに指定してカスタムサイズにする
paramImagePage.setPaperType(PtlParamImagePage.PAPER_TYPE.PAPER_CUSTOM_SIZE);
// 画像ページのサイズを指定
try(PtlSize sizeOfPaper = new PtlSize(paperWidth, paperHeight)){
paramImagePage.setCustomPageSize(sizeOfPaper);
}
// 画像描画パラメータに画像ファイルを設定
paramDrawImage.setImageStream(inputImage);
// 画像ページパラメータに画像描画パラメータを設定
paramImagePage.setImage(paramDrawImage);
// 画像の配置を設定
paramImagePage.setAlign(PtlParamImagePage.ALIGN.ALIGN_CENTER);
// ページコンテナに画像ページパラメータを追加
pages.append(paramImagePage);
}
// ファイルに保存します。
doc.save(outputFile);
}
...【AppendAnnotStampDefault.javaと同じ処理のため省略
・エラーメッセージ処理と出力】...
}
}
ImageToPdfSetPaperSize.java
C:\samples>java cookbook.ImageToPdfSetPaperSize usage: java ImageToPdfSetPaperSize image-file out-pdf-file paper-width paper-height C:\samples>java cookbook.ImageToPdfSetPaperSize fileformat.png imagetopdf-A4-landscape.pdf 297 210 -- 完了 --
左が元の画像(fileformat.png)、右は元の画像を幅297mm、高さ210mm(A4横の用紙)に配置したPDFを表示したところです。
