ブックマークを含む一部のPDFファイルからメタデータをインポートし、pdftk
PDFメタデータのブックマーク形式を観察しました。したがって、pdfを使用すると、pdftk
pdfファイルのブックマークを追加して編集できるようです。
私は次の3つのステップに従います。
- まず、pdfファイルからテキストファイルにメタデータ(ブックマークを含む)をインポートします
pdftk in.pdf dump_data > in.info
。 次に、メタデータテキストファイルにいくつかのブックマークを追加して、
in.info
次のように変更しました。InfoKey: Creator InfoValue: PScript5.dll Version 5.2 InfoKey: Title InfoValue: SSReader Print. InfoKey: Producer InfoValue: Acrobat Distiller 7.0 (Windows) InfoKey: Author InfoValue: Administrator InfoKey: ModDate InfoValue: D:20050605073244+08'00' InfoKey: CreationDate InfoValue: D:20050605073244+08'00' PdfID0: 591a87c91dc76881fdf2ccf3811e72a5 PdfID1: 6b6ab11de8824e438e4f5eb1d85ec72 NumberOfPages: 400 PageLabelNewIndex: 1 PageLabelStart: 1 PageLabelNumStyle: DecimalArabicNumerals
到着
InfoKey: Creator InfoValue: PScript5.dll Version 5.2 InfoKey: Title InfoValue: SSReader Print. InfoKey: Producer InfoValue: Acrobat Distiller 7.0 (Windows) InfoKey: Author InfoValue: Administrator InfoKey: ModDate InfoValue: D:20050605073244+08'00' InfoKey: CreationDate InfoValue: D:20050605073244+08'00' PdfID0: 591a87c91dc76881fdf2ccf3811e72a5 PdfID1: 6b6ab11de8824e438e4f5eb1d85ec72 NumberOfPages: 400 BookmarkBegin BookmarkTitle: Front cover BookmarkLevel: 1 BookmarkPageNumber: 1 BookmarkBegin BookmarkTitle: About the Author BookmarkLevel: 1 BookmarkPageNumber: 5 BookmarkBegin BookmarkTitle: Title page BookmarkLevel: 1 BookmarkPageNumber: 6 BookmarkBegin BookmarkTitle: Copyright page BookmarkLevel: 1 BookmarkPageNumber: 7 BookmarkBegin BookmarkTitle: Foreword BookmarkLevel: 1 PageLabelNewIndex: 1 PageLabelStart: 1 PageLabelNumStyle: DecimalArabicNumerals
- その後、編集したメタデータを再びpdfファイルに入れようとします
pdftk in.pdf update_info in.info output out.pdf
。
ただし、evinceまたはadobe readerで新しいpdfファイルを開くと、out.pdf
新しいpdfファイルにブックマークがありません。
out.pdf
新しいPDFファイルのメタデータを取得すると、pdftk out.pdf dump_data > out.info
そこにブックマークがないはずですout.info
。ブックマークが正常に追加されていないようです。
もしバグがあるのか気になります。 pdftkを介さずにPDFファイルにブックマークを追加して編集するには?
答え1
バージョン1.45(2012-12-06)以降、pdftkではupdate_infoコマンドを使用してブックマークの変更を許可しているようです。
update_infoを使用してPDFにブックマークを追加または変更できます。
渡す: http://www.pdflabs.com/docs/pdftk-version-history/
これは、もともと試みたのと同じコマンドを実行してブックマークを更新できることを意味します。
pdftk in.pdf update_info in.bookmarks output out.pdf
答え2
pdftk
ブックマーク形式は書くのが少し退屈です。代わりに、、、およびを使用してbash
独自のスクリプトを作成しました。このリポジトリで確認してください。sed
pdftk
python3
https://github.com/SiddharthPant/booky
これでこのようなテキストファイル(bkmrks.txt
)を作成でき、1000ページのPDFもわずか5分で作成できます。
{
Title1, 1
Title2, 2
{
Subtitle1, 3
Subtitle2, 4
{
SubSubtitle1, 5
...
}
}
}
それから私のスクリプトを使う
./booky.sh pdf_file.pdf bkmrks.txt
pdf_file_new.pdf
これにより、自分のブックマークを含むPDF()が自動的に生成されます。
答え3
まだUnixスクリプトの使用に固執している場合
- ダンプされたブックマークデータの抽出
pdftk
- ダンプされたブックマークデータを
gs
Ghostscriptコマンドを受け入れるpdfmarks形式に変換する追加のスクリプトを作成します。 - スクリプトを使用して
gs
PDFmarksとマージする
見てhttp://blog.tremily.us/posts/PDF_bookmarks_with_Ghostscript/このスクリプトはpdf-merge.py
あなた(または私が)したいことを正確に行います。
pdf-merge.py --output=merged.pdf input1.pdf input2.pdf
彼のスクリプトは少し改善が必要な場合があります。
- Unicode処理
- 人が調整できるようにブックマークファイルを出力します。
とにかく働かなければならない