
ダウンサンプリング後のPPI値ダウンサンプリング後のPPI値を指定します。
ダウンサンプリング後の画像のPPI値を指定し、2.2.1 カラー画像最適化オプションの取得・指定と同様にして最適化します。
PtlParamOptimizeImageDownSampling.APIsetTargetPPI(int ppi ): ダウンサンプリング後のPPI値を設定
設定しない場合はデフォルト値として次表の値が使用されます。
| 画像の種類 | 値 |
|---|---|
| カラー画像 | 150 |
| グレースケール画像 | 150 |
| モノクロ画像 | 300 |
package cookbook;
import jp.co.antenna.ptl.*;
public class OptimizeImageSetTargetPPI {
// そのクラスのusageを表示する関数
private static void printUsage() {
System.out.println("usage: java OptimizeImageSetTargetPPI in-pdf-file" +
" out-pdf-file target-PPI");
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
if (args.length < 3) {
printUsage();
return;
}
// コマンドライン引数の取得
int targetPPI = Integer.parseInt(args[2]);
try (PtlParamInput inputFile = new PtlParamInput(args[0]);
PtlParamOutput outputFile = new PtlParamOutput(args[1]);
PtlPDFDocument doc = new PtlPDFDocument()) {
// PDFファイルをロードします。
doc.load(inputFile);
// 画像の最適化を行います。
optimizeDocTargetPPI(doc, targetPPI);
// ファイルに保存します。
doc.save(outputFile);
}
catch (PtlException pex) {
System.out.println("PtlException : ErrorCode = " + pex.getErrorCode() +
"\n " + pex.getErrorMessage());
}
catch (Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
catch (Error ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
finally {
System.out.println("-- 完了 --");
}
}
public static void optimizeDocTargetPPI(PtlPDFDocument doc,
int targetPPI)
throws PtlException{
try(PtlParamOptimize paramOptimize = new PtlParamOptimize();
// 画像最適化パラメーターの取得
// カラー画像最適化パラメーターの取得
PtlParamOptimizeImage paramOptimizeImage =
paramOptimize.getParamOptimizeImage();
PtlParamOptimizeImageColor paramOptimizeImageColor =
paramOptimizeImage.getParamOptimizeImageColor()) {
// ダウンサンプリング後のPPI値を設定
paramOptimizeImageColor.setTargetPPI(targetPPI);
// 最適化する画像の対象Filterを設定
paramOptimizeImage.setValidFilter(PtlParamOptimizeImage.FILTER_ALL & ~PtlParamOptimizeImage.FILTER_JBIG2Decode);
// 画像のダウンサンプリングを行う最低サンプル数を設定
paramOptimizeImage.setMinSampleSize(110);
// その他のダウンサンプリングの値を設定
paramOptimizeImageColor.setSourcePPI(150);
paramOptimizeImageColor.setDownSampling(PtlParamOptimizeImageDownSampling.DOWNSAMPLING_TYPE.DOWNSAMPLING_BICUBIC);
paramOptimizeImageColor.setMinDownSamplingRate(0.65f);
paramOptimizeImageColor.setCompress(PtlParamOptimizeImageColor.COMPRESS_TYPE.COMPRESS_AUTO);
paramOptimizeImageColor.setQuality(PtlParamOptimizeImageColor.QUALITY_TYPE.QUALITY_MIDDLE);
// 最適化の実行
doc.optimize(paramOptimize);
}
}
}
OptimizeImageSetTargetPPI.java
C:\samples>java cookbook.OptimizeImageSetTargetPPI usage: java OptimizeImageSetTargetPPI in-pdf-file out-pdf-file target-PPI C:\samples>java cookbook.OptimizeImageSetTargetPPI colorImg.pdf optimizeImageColorTargetPPI.pdf 96 -- 完了 --