入力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 -- 完了 --