PDFファイルをフォルダにマージし、PDFファイル名をブックマークとして使用するシェルスクリプト

PDFファイルをフォルダにマージし、PDFファイル名をブックマークとして使用するシェルスクリプト

従業員名とその文書がPDF形式で含まれる一連のフォルダがあります。 PDF文書がPDFファイルのブックマークにインデックス付けされているPDFファイルをマージして作成したいと思います。

PDFTKを使用してフォルダ内のPDFをマージしようとしましたが、出力はブックマークに追加されません。

ベストアンサー1

この目的のためにスクリプトを作成しました。.pdfheredocを変更して拡張を維持することを選択できます。

#!/usr/bin/env zsh

pages=1
bookmarks="bookmarks.txt"
tmp_pdf="tmp.pdf"

if [ -f $bookmarks ]; then
    read -p "Do you want to overwrite the bookmarks file? [y/N] " -n 1 -r
    if [[ $REPLY =~ ^[Yy]$ ]]; then
        rm $bookmarks
    else
        echo "Aborting..."
        exit 1
    fi
fi

for pdf in *.pdf; do
    cat <<- EOF >> $bookmarks
    BookmarkBegin
    BookmarkTitle: ${pdf%.pdf}
    BookmarkLevel: 1
    BookmarkPageNumber: $pages
    EOF
    page_number=$(pdftk $pdf dump_data | rg 'NumberOfPages: ' | awk '{print $2}')
    pages=$(($pages + $page_number))
done

pdftk *.pdf cat output $tmp_pdf
pdftk $tmp_pdf update_info $bookmarks output final.pdf

rm -f $tmp_pdf
rm -f $bookmarks

アイデアは次のとおりです。

  • ブックマークを含むpdftk情報ファイルの作成
  • pdftk catを呼び出して接続します。
  • ブックマークを追加するには、updateinfoを呼び出します。
  • 一時ファイルを削除して完了します。

おすすめ記事