角度指定画像を任意の角度に傾けて描画 挿入する画像画像を任意の角度に傾けて描画します。
画像を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度を指定しています。