我有一系列文件夹,其中包含员工姓名及其 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添加书签
- 删除临时文件,完成。