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でテストされました。

答え2

読書マニュアルページ注意してください。update_info生成される形式に関係なくデータを取得しますdump_data。これはおそらくページの再構成に応じて調整する必要があります。そうではありません。不可能しかし、自動ではありません。

これPDFtkサイト上記のクリックとブックマークの作成/編集のみが結果として表示されます。 PDFのブックマークと再構成の問題についてGoogleが言うすべては、上記の操作のクリックと、彼らが提供する驚異の叙情的な説明とこのスレッド;-)です。

だからできないようです。コメントはいくつかの可能性を提案しましたが、試してみたときにうまくいきませんでした。

答え3

pdftk in.pdf dump_data > in.infoこれを実行してからupdate_info作成するときにパラメータを追加する必要がありますout.pdf。引用元man pdftk:

update_info <info data filename | - | PROMPT>

単一のPDF情報辞書に保存されているメタデータを入力データファイルと一致するように変更します。入力データファイルは dump_data の出力と同じ構文を使用します。非ASCII文字はXML数値エンティティでエンコードする必要があります。 PDFのXMPストリームに保存されているメタデータは変更されません(存在する場合)。たとえば、

             pdftk in.pdf update_info in.info output out.pdf

  update_info_utf8 <info data filename | - | PROMPT>

入力エンコーディングがUTF-8であることを除いて、update_infoと同じです。

答え4

qpdfは少なくともcygwinでは魅力のように動作します。次のオプションを使用しない限り、リンク--emptyは維持されます。

qpdf input.pdf --pages input.pdf 1,4,5,7-r8,2,3,r7-z -- output.qpdf.pdf

(rNは最後からインデックスが作成されたページ、zは最後のページ)

関連情報