
画像のパラメータを変更してPDFに変換変換する画像の各種パラメータを変更した上で画像をPDFに変換します。
画像をPDFに変換する際には、PDFに画像を描画するときと同様のパラメータを設定できます。PDFに画像を描画する処理についての詳細は「『PDF CookBook』(第1巻)2.2 画像描画」を参照してください。
設定できる項目は以下の表の通りです。
| dpi | 画像のdpi。変換される画像の大きさは画像のピクセル数とdpiで決まります。デフォルトでは画像の元々持っているdpiの値が優先されるので追加の設定が必要です。 |
| 不透明度 | 画像の不透明度。不透明度を0.0に設定すると、指定したサイズで空白のページが挿入されることになります。 |
| 回転角 | 画像を回転させる角度。90度単位で設定できます。(※) |
※:画像の回転はPDF Tool API V6.0から利用可能な機能です。
本サンプルプログラムでは、入力画像ファイルを新しいPDFドキュメントとして出力します。その際に、画像のdpi、不透明度、回転角を指定します。それ以外の設定は「4.1.1 ページの作成」と同じです。
package cookbook;
import jp.co.antenna.ptl.*;
public class ImageToPdfSetParam {
// そのクラスのusageを表示する関数
private static void printUsage() {
System.out.println("usage: java ImageToPdfSetParam image-file" +
" out-pdf-file num-DPI opacity rotate-angle");
System.out.println("rotate-angle :反時計回りの回転角度");
System.out.println("[0, 90, 180, 270]のいずれかを指定してください。");
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
if (args.length < 2) {
printUsage();
return;
}
int numDPI = Integer.parseInt(args[2]);
float opacity = Float.parseFloat(args[3]);
int rotateAngle = Integer.parseInt(args[4]);
switch(rotateAngle){
case 0:
case 90:
case 180:
case 270:
break;
default:
System.out.println("rotate-angleには[0, 90, 180, 270]のいずれかを" +
"指定してください");
printUsage();
return;
}
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()) {
// 画像描画パラメータに画像ファイルを設定
paramDrawImage.setImageStream(inputImage);
// 画像ページパラメータに画像描画パラメータを設定
// DPI入力設定。
paramDrawImage.setUseOriginalDPI(false);
paramDrawImage.setDPI(numDPI);
// 透明度を設定
paramDrawImage.setOpacity(opacity);
// 回転角度を設定
paramDrawImage.setRotate(rotateAngle);
paramImagePage.setImage(paramDrawImage);
// 画像ページのサイズを画像サイズにあわせる
paramImagePage.setPaperType(PtlParamImagePage.PAPER_TYPE.PAPER_IMAGE_SIZE);
// 画像の配置を設定
paramImagePage.setAlign(PtlParamImagePage.ALIGN.ALIGN_CENTER);
// ページコンテナに画像ページパラメータを追加
pages.append(paramImagePage);
}
// ファイルに保存します。
doc.save(outputFile);
}
...【AppendAnnotStampDefault.javaと同じ処理のため省略
・エラーメッセージ処理と出力】...
}
}
ImageToPdfSetParam.java
C:\samples>java cookbook.ImageToPdfSetParam usage: java ImageToPdfSetParam image-file out-pdf-file num-DPI opacity rotate-angle rotate-angle :反時計回りの回転角度 [0, 90, 180, 270]のいずれかを指定してください。 C:\samples>java cookbook.ImageToPdfSetParam fileformat.png imagetopdf-param.pdf 200 0.5 90 -- 完了 --
左が元の画像(fileformat.png)、右は元の画像を90度回転して作成したPDFを表示したところです。
