
従業員名とその文書がPDF形式で含まれる一連のフォルダがあります。 PDF文書がPDFファイルのブックマークにインデックス付けされているPDFファイルをマージして作成したいと思います。
PDFTKを使用してフォルダ内のPDFをマージしようとしましたが、出力はブックマークに追加されません。
答え1
この目的のためにスクリプトを作成しました。.pdf
heredocを変更して拡張を維持することを選択できます。
#!/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を呼び出します。
- 一時ファイルを削除して完了します。