
角度指定画像を任意の角度に傾けて描画 挿入する画像画像を任意の角度に傾けて描画します。
画像をPDFに挿入する際、小数を含む任意の角度に傾けることができます。
PtlParamDrawImage. setAngle()を呼び出して指定します。角度は度数法で表し、反時計回りに指定した角度の分だけ画像が傾きます。(setRotate()では、回転角度を90度刻みで指定します)
サンプルプログラムでは、入力PDFに画像を挿入する際に角度を指定します。画像の挿入方法とそのサンプルプログラムについては「『PDF CookBook』(第1巻)2.2.1 ページ上に画像を描画」を参照してください。
package cookbook;
import jp.co.antenna.ptl.*;
public class AddImageSetAngle {
// そのクラスのusageを表示する関数
private static void printUsage() {
System.out.println("usage: java AddImageSetAngle in-pdf-file out-pdf-file insert-image-file"
+ " angle");
System.out.println("angle : 画像の角度");
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
if (args.length < 4) {
printUsage();
return;
}
try (PtlParamInput inputFile = new PtlParamInput(args[0]);
PtlParamOutput outputFile = new PtlParamOutput(args[1]);
PtlPDFDocument doc = new PtlPDFDocument()) {
// PDFファイルをロードします
doc.load(inputFile);
//コマンドライン引数の取得
float angle = Float.parseFloat(args[3]);
try (PtlPages pages = doc.getPages()) { // ページコンテナの取得
// ページコンテナが空かどうか
if (pages.isEmpty()) {
System.out.println("ページコンテナが空");
return;
}
try (PtlPage page = pages.get(0);// 先頭ページの取得(パラメータindexは0が先頭)
PtlContent content = page.getContent();// ページコンテントの取得
PtlRect outputRect = page.getViewBox(); // 出力矩形の設定。(ページの大きさを得るためにViewBoxを取得する)
PtlParamDrawImage paramDrawImage = new PtlParamDrawImage(); //画像の描画に使うパラメータクラス
PtlParamInput insertImage = new PtlParamInput(args[2]); //画像指定に使うパラメータクラス
PtlParamWriteString plainParam = new PtlParamWriteString()) {// 文字描画のパラメータクラス。
//入力画像の角度を設定
paramDrawImage.setAngle(angle);
//入力画像ストリームの設定
paramDrawImage.setImageStream(insertImage);
//マルチTiffのページ番号の設定(マルチTiffファイルにのみ有効)
//数値を設定しない場合は、-1が設定されたとみなします
//PtlParamImagePageに設定する場合に限り、-1を設定すると全ページを挿入します。
paramDrawImage.setImagePageNumber(0);
// 透明度を設定
paramDrawImage.setOpacity(1);
// 画像出力
content.drawImage(outputRect, PtlContent.ALIGN.ALIGN_CENTER, paramDrawImage);
// angleの状態テキストを描画
content.writeString(outputRect, PtlContent.ALIGN.ALIGN_CENTER, "angle = " + angle, plainParam);
}
catch (IllegalArgumentException ex) {//PtlContent.ALIGNの指定が誤っていた場合のエラーメッセージ
System.out.println(ex.getMessage());
System.out.println("ERROR : alignにはPtlContent.ALIGNに含まれる名前を指定してください。");
ex.printStackTrace();
}
}
// ファイルに保存します。
doc.save(outputFile);
}
...【GetPDFVersion.javaと同じ処理のため省略
・エラーメッセージ処理と出力】...
}
}
AddImageSetAngle.java
C:\samples>java cookbook.AddImageSetAngle usage: java AddImageSetAngle in-pdf-file out-pdf-file insert-image-file angle angle : 画像の角度 C:\samples>java cookbook.AddImageSetAngle novelText.pdf Output_AddImageSetAngle45.pdf ahlogo.png 45 -- 完了 --
この操作例では画像を挿入する際に45度を指定しています。
