![]()
入力PDFからサムネール画像を削除します。
入力PDFから埋め込まれたサムネールを削除して最適化します。
ここで削除されるサムネール(Thumbnail Images)とは、PDFをビューワで表示した際に表示されるページごとの縮小画像でPDFに埋め込まれたものを指します。これはファイルブラウザ上で表示されるファイルごとのサムネールとは異なります。現在、Adobe Readerを含む多くのPDFビューワでは埋め込まれたサムネールの有無に関わらずサムネールが表示されるようになっており、埋め込まれたサムネールは必要性が小さくなっています。これを削除することでPDFの軽量化が可能です。
PtlParamOptimize.APIsetRemoveThumbnails(boolean remove): サムネールを削除
設定しない場合はデフォルト値としてfalseが使用されます。
package cookbook;
import jp.co.antenna.ptl.*;
public class OptimizeRemovePageThumbnails {
// そのクラスのusageを表示する関数
private static void printUsage() {
System.out.println("usage: java OptimizeRemovePageThumbnail in-pdf-file" +
" out-pdf-file");
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
if (args.length < 2) {
printUsage();
return;
}
try (PtlParamInput inputFile = new PtlParamInput(args[0]);
PtlParamOutput outputFile = new PtlParamOutput(args[1]);
PtlPDFDocument doc = new PtlPDFDocument()) {
// PDFファイルをロードします。
doc.load(inputFile);
optimizeDocByRemoveThumbnails(doc);
// ファイルに保存します。
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 optimizeDocByRemoveThumbnails(PtlPDFDocument doc)
throws PtlException{
try(PtlParamOptimize paramOptimize = new PtlParamOptimize()) {
//オープンアクションの削除フラグを設定
paramOptimize.setRemoveThumbnails(true);
// 最適化の実行
doc.optimize(paramOptimize);
}
}
}
OptimizeRemovePageThumbnails.java
C:\samples>java cookbook.OptimizeRemovePageThumbnails usage: java OptimizeRemovePageThumbnail in-pdf-file out-pdf-file C:\samples>java cookbook.OptimizeRemovePageThumbnails fileWithThumbnails.pdf OptimizeRemovePageThumbnails.pdf -- 完了 --