
入力PDFからしおりを削除します。
入力PDFからしおりを削除してPDFを最適化します。
ここで削除されるしおり(Document Outline)とは、PDF 文書のナビゲーションをするためのツリー構造です。しおりの詳細については「『PDF CookBook』(第2巻)第3章 しおり」を参照してください。
PtlParamOptimize.APIsetRemoveOutlines(boolean remove): しおりを削除
設定しない場合はデフォルト値としてfalseが使用されます。
package cookbook;
import jp.co.antenna.ptl.*;
public class OptimizeRemoveOutlines {
    // そのクラスのusageを表示する関数
    private static void printUsage() {
        System.out.println("usage: java OptimizeRemoveOutlines 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);
            optimizeDocByRemoveOutlines(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 optimizeDocByRemoveOutlines(PtlPDFDocument doc)
        throws PtlException{
        try(PtlParamOptimize paramOptimize = new PtlParamOptimize()) {
            //オープンアクションの削除フラグを設定
            paramOptimize.setRemoveOutlines(true);
            // 最適化の実行
            doc.optimize(paramOptimize);
        }
    }
}
OptimizeRemoveOutlines.java
C:\samples>java cookbook.OptimizeRemoveOutlines usage: java OptimizeRemoveOutlines in-pdf-file out-pdf-file C:\samples>java cookbook.OptimizeRemoveOutlines manualWithOutlines.pdf OptimizeRemoveOutlines.pdf -- 完了 --
次の図は左がしおりのあるPDF、右がしおりを削除した結果です。
