いくつかのPDFファイルがあります(chapter1.pdf
、chapter2.pdf
など)、それぞれが本の章です。次に、それらを単一のpdfにマージする方法(popplerからのコマンドpdfunite
を使用します)ですが、出力ファイルが大きいため、目次でインデックスを付けないで章を見つけるのは困難です。それでは、マージされた各チャプターがエントリである埋め込み目次を作成する方法は?
チャプターとそれぞれのページ番号のリストを含むページを出力ファイルに作成したくないことに注意してください。このような機能をサポートする任意のPDFリーダー(または電子ブックデバイス)で閲覧できる、PDFファイルのコンテンツメタデータのインデックス/テーブルが必要です。
これを正確に行うためにいつも使用する関数。 PDFが展開で順番に正しくソートされることを確認してください。
tp="/tmp/tmp.pdf"
td="/tmp/data"
for i in *.pdf; do
echo "Bookmarking $i"
printf "BookmarkBegin\nBookmarkTitle: %s\nBookmarkLevel: 1\nBookmarkPageNumber: 1\n" "${i%.*}"> "$td"
pdftk "$i" update_info "$td" output "$tp"
mv "$tp" "$i"
done
pdftk *.pdf cat output myBook.pdf
@ bu5hmanの回答の非破壊バージョン:
#!/bin/bash
out_file="combined.pdf"
tmp_dir="/tmp/pdftk_unite"
bookmarks_file="$tmp_dir/bookmarks.txt"
bookmarks_fmt="BookmarkBegin
BookmarkTitle: %s
BookmarkLevel: 1
BookmarkPageNumber: 1
"
rm -rf "$tmp_dir"
mkdir -p "$tmp_dir"
for f in *.pdf; do
echo "Bookmarking $f..."
title="${f%.*}"
printf "$bookmarks_fmt" "$title" > "$bookmarks_file"
pdftk "$f" update_info "$bookmarks_file" output "$tmp_dir/$f"
done
pdftk "$tmp_dir"/*.pdf cat output "$out_file"