画像のパラメータを変更して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を表示したところです。