5.2.5 サムネールの削除

5-2-第5項サムネイルの削除

狙い・効果

入力PDFからサムネール画像を削除します。

処理の概要

入力PDFから埋め込まれたサムネールを削除して最適化します。

ここで削除されるサムネール(Thumbnail Images)とは、PDFをビューワで表示した際に表示されるページごとの縮小画像でPDFに埋め込まれたものを指します。これはファイルブラウザ上で表示されるファイルごとのサムネールとは異なります。現在、Adobe Readerを含む多くのPDFビューワでは埋め込まれたサムネールの有無に関わらずサムネールが表示されるようになっており、埋め込まれたサムネールは必要性が小さくなっています。これを削除することでPDFの軽量化が可能です。

『PDF Tool API』の主な機能

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