pdftkなどのツールを使用してPDFファイルのページを並べ替えるときにブックマークを維持する方法は?

pdftkなどのツールを使用してPDFファイルのページを並べ替えるときにブックマークを維持する方法は?

PDFファイルのページを並べ替えるためにブックマーク/概要を使用していますが、出力ファイルの元のファイルpdftkのブックマークが失われます。

私の注文はですpdftk in.pdf cat 1-22 43 23-42 44-end output out.pdf

ページの順序を変更するときにブックマークを維持する方法を知りたいです。

ベストアンサー1

これが可能な解決策です。ただし、ニーズに合わせて調整する必要があります。

この例では、PDFの最初のページを削除してから正しい場所を指すようにブックマークを更新する必要がありました。

  1. in.pdfから1ページを削除します。

    pdftk A=in.pdf cat A2-end output temp.pdf
    
  2. in.pdfからin.infoファイルを作成します。

    pdftk in.pdf dump_data > in.info
    
  3. 私の場合はページを削除する予定なので、in.infoを修正する必要があります。

    したがって、ブックマークが正しいページを指すようにするには、BookmarkPageNumberを1ずつ減らす必要があります。

    PHPコード:

    $file = "in.info";
    $data = file_get_contents($file);
    
    foreach (explode("\n", $data) as $row) {
        $tmp = explode(": ", $row);
    
        if ($tmp[0] == "BookmarkPageNumber") {
            if ($tmp[1] != "1") $tmp[1]--;
            echo $tmp[0].": ".$tmp[1]."\n";
        } else {
            echo $row."\n";
        }
    }
    
  4. 最終的なout.pdfを作成します。

    pdftk temp.pdf update_info in2.info output out.pdf
    

pdftk 2.01を使用してDebianでテストされました。

おすすめ記事