10-13 PDFの最適化

概要:

PDF最適化の基礎

//入力PDF docの取得は「PDFを開く」を参照
PtlParamOptimize paramOptimize = new PtlParamOptimize();    //最適化用パラメータクラス
doc.optimize(paramOptimize);                                //最適化の実行

// 出力PDFの保存は「PDFの保存」を参照

本項で扱う最適化用パラメータはすべてparamOptimizeに設定する。

PDF内の画像の最適化

画像の最適化の基礎

//入力PDF docの取得は「PDFを開く」を参照
//最適化用パラメータparamOptimizeの取得は「PDF最適化の基礎」を参照

//画像の最適化用パラメータクラスの取得
PtlParamOptimizeImage paramOptimizeImage = paramOptimize.getParamOptimizeImage();

//ここで具体的な画像の最適化パラメータを設定する

//最適化実行は「PDF最適化の基礎」を参照
// 出力PDFの保存は「PDFの保存」を参照

画像の最適化はこのPtlParamOptimizeImageを取得することで行います。

画像種別ごとの最適化パラメータの指定

//入力PDF docの取得は「PDFを開く」を参照
//最適化用パラメータparamOptimizeの取得は「PDF最適化の基礎」を参照
//画像最適化用パラメータparamOptimizeImageの取得は「画像の最適化の基礎」を参照

//カラー画像用最適化パラメータクラスの取得
PtlParamOptimizeImageColor paramOptimizeImageColor = paramOptimizeImage.getParamOptimizeImageColor()

//ここでパラメータクラスの内容を指定する

//最適化実行は「PDF最適化の基礎」を参照
// 出力PDFの保存は「PDFの保存」を参照
上記はカラー画像の最適化パラメータを指定して最適化を実行した例です。

グレースケール画像の最適化の場合は以下のパラメータを用います。

//グレースケール画像最適化パラメータクラスの取得
PtlParamOptimizeImageGrayScale paramOptimizeImageGrayScale = paramOptimizeImage.getParamOptimizeImageGrayScale();

モノクロ2値画像の最適化の場合は以下のパラメータを用います

//モノクロ2値画像最適化パラメータクラスの取得
PtlParamOptimizeImageMono paramOptimizeImageMono = paramOptimizeImage.getParamOptimizeImageMono();

これらパラメータに適用できる内容は以下のものです。

カラー画像とグレースケール画像に適用できる関数

//圧縮タイプをJPEGに指定
paramOptimizeImageColor.setCompress(PtlParamOptimizeImageColor.COMPRESS_TYPE.COMPRESS_JPEG);
//圧縮品質を「中」に指定
paramOptimizeImageColor.setQuality(PtlParamOptimizeImageColor.QUALITY_TYPE.QUALITY_MIDDLE);

本例はカラー画像を最適化している関数ですが、グレースケール画像にも適用できます。

カラー画像とグレースケール画像、モノクロ2値画像に適用できる関数

//ダウンサンプリング方法を「バイキュービック法」で指定
paramOptimizeImageColor.setDownSampling(PtlParamOptimizeImageDownSampling.DOWNSAMPLING_TYPE.DOWNSAMPLING_BICUBIC);
//ダウンサンプリング率の下限値を指定
paramOptimizeImageColor.setMinDownSamplingRate(minDownSamplingRate);
//ダウンサンプリングを行う基準のPPIを指定。これより大きいとダウンサンプリングする
paramOptimizeImageColor.setSourcePPI(sourcePPI);
//ダウンサンプリング後のPPIを指定
paramOptimizeImageColor.setTargetPPI(targetPPI);

本例はカラー画像を最適化している関数ですが、グレースケール画像・モノクロ2値画像にも適用できます。

PtlParamOptimizeImageを用いたパラメータの指定

//入力PDF docの取得は「PDFを開く」を参照
//最適化用パラメータparamOptimizeの取得は「PDF最適化の基礎」を参照
//画像最適化用パラメータparamOptimizeImageの取得は「画像の最適化の基礎」を参照

int filterFlag = PtlParamOptimizeImage.FILTER_NONE;     //フラグ用変数
//「ASCII85Decode」「DCTDecode」「FlateDecode」を同時指定するフラグ
filterFlag = filterFlag | PtlParamOptimizeImage.FILTER_ASCII85Decode;
filterFlag = filterFlag | PtlParamOptimizeImage.FILTER_DCTDecode;
filterFlag = filterFlag | PtlParamOptimizeImage.FILTER_FlateDecode;

paramOptimizeImage.setValidFilter(filterFlag);  //フィルターの設定
//最適化処理は「PDF最適化の基礎」を参照
// 出力PDFの保存は「PDFの保存」を参照

本例はフィルターを指定した画像の最適化を例示しているが、他にも以下のような関数がある

//ダウンサンプリングをする画像の最小サイズを指定
paramOptimizeImage.setMinSampleSize(minSampleSize);

minSampleSizeより縦・横の画素数が共に大きい場合にダウンサンプリングを行う

不要なデータの削除

//入力PDF docの取得は「PDFを開く」を参照
//最適化用パラメータparamOptimizeの取得は「PDF最適化の基礎」を参照
paramOptimize.setRemoveOutlines(true); //しおりを削除するよう指定

//最適化実行は「PDF最適化の基礎」を参照
// 出力PDFの保存は「PDFの保存」を参照

本例はしおりを削除するよう指定しているが、以下の関数でそれぞれの要素を削除指定できる

paramOptimize.setRemoveAnnots(true);        //注釈・フォームを削除するよう指定
paramOptimize.setRemoveArticles(true);      //アーティクルを削除するよう指定
paramOptimize.setRemoveThumbnails(true);    //サムネールを削除するよう指定
paramOptimize.setRemoveJavaScripts(true);   //JavaScriptを削除するよう指定

フォントの統合

//入力PDF docの取得は「PDFを開く」を参照
//最適化用パラメータparamOptimizeの取得は「PDF最適化の基礎」を参照
paramOptimize.setMergeFonts(true);
//最適化処理は「PDF最適化の基礎」を参照
// 出力PDFの保存は「PDFの保存」を参照

参考:

PDF内の画像の最適化

・画像種別ごとの最適化パラメータの指定

『PDF CookBook(第3巻)2.2.1 カラー画像最適化オプションの取得・指定』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0018.html

『PDF CookBook(第3巻)2.2.2 グレースケール画像最適化オプションの取得・指定』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0019.html

『PDF CookBook(第3巻)2.2.3 モノクロ画像最適化オプションの取得・指定』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0020.html

・カラー画像とグレースケール画像に適用できる関数

『PDF CookBook(第3巻)2.3.1 JPEG圧縮設定』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0028.html

・カラー画像とグレースケール画像、モノクロ2値画像に適用できる関数

『PDF CookBook(第3巻)2.2.4 ダウンサンプリング方法の指定』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0021.html

『PDF CookBook(第3巻)2.2.7 ダウンサンプリング率の下限値の指定』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0024.html

『PDF CookBook(第3巻)2.2.8 ダウンサンプリング対象の画像をPPIで絞り込む』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0025.html

『PDF CookBook(第3巻)2.2.9 ダウンサンプリング後のPPIを指定する』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0026.html

『PDF CookBook(第3巻)2.2.9 ダウンサンプリング後のPPIを指定する』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0026.html

・PtlParamOptimizeImageを用いたパラメータの指定

『PDF CookBook(第3巻)2.2.5 最適化を行う画像の対象とするフィルターの指定』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0022.html

『PDF CookBook(第3巻)2.2.6 ダウンサンプリングする画素数の指定』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0023.html

不要なデータの削除

『PDF CookBook(第3巻)5.2.1 オープンアクションの削除』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0047.html

『PDF CookBook(第3巻)5.2.2 しおりの削除』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0048.html

『PDF CookBook(第3巻)5.2.3 注釈・フォームの削除』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0049.html

『PDF CookBook(第3巻)5.2.4 アーティクルの削除』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0050.html

『PDF CookBook(第3巻)5.2.5 サムネールの削除』

https://www.antenna.co.jp/ptl/cookbook/vol3/i01-0051.html

『PDF CookBook(第5巻)10.2.1 PDFに設定されたJavaScriptの一括削除』

https://www.antenna.co.jp/ptl/cookbook/vol5/i03-0074.html

Please enter alt text.