通过pdftk从一些带有书签的pdf文件中获取元数据,我观察了pdf元数据中书签的格式。因此,我猜想使用pdftk,可以添加和编辑一个pdf文件的书签。
以下是我要遵循的三个步骤:
pdftk in.pdf dump_data > in.info将pdf文件中的元数据(如果有的话包括书签)转换为文本文件。in.info中,将其从InfoKey: Creator InfoValue: PScript5.dll版本5.2 InfoKey: Title InfoValue: SSReader Print中更改。InfoKey: Producer InfoValue: Acrobat Distiller 7.0 (Windows) InfoKey:作者InfoValue:管理员InfoKey: ModDate InfoValue: D:20050605073244+08'00‘InfoKey: CreationDate InfoValue: D:20050605073244+08'00’PdfID0: 591a87c91dc76881fdf2ccf3811e72a5 PdfID1: 6b6ab11de8824e438e4f5eb185ec72 NumberOfPages: 400 PageLabelNewIndex: 1 PageLabelStart: 1 PageLabelNumStyle: DecimalArabicNumerals to PageLabelStart: Creator : PScript5.dll版本5.2 en20 en21# Print。# InfoKey: InfoValue: Acrobat Distiller 7.0 (Windows) InfoKey: InfoValue:管理员InfoKey: ModDate InfoValue: D:20050605073244+08'00‘InfoKey: CreationDate InfoValue: D:20050605073244+08'00’PdfID0: 591a87c91fdc76881fdf2ccf3811e72a5 PdfID1: 6b6ab11de8824e438e4f5eb1d85ec72 NumberOfPages: 400 BookmarkBegin BookmarkTitle:正面封面BookmarkLevel: 1 BookmarkPageNumber BookmarkTitle:约作者#en19:1 en20#1 en22#标题#en23:1 6 en26#en26:#27 en7##enenenen30#en34#31#enenen32##enen32##en22#标题6 en26#en26:#27 en7:##enenen30#enenenen32##enen32##enen32#6 en26##27 en27 enenen32#enen32##enen32##enen32#enen32#enen19 en20#pdftk in.pdf update_info in.info output out.pdf将编辑后的元数据返回到pdf文件中。但当我打开新的pdf文件out.pdf在evince或adobe阅读器,没有书签在新的pdf文件。
如果我通过out.pdf从新的pdf文件pdftk out.pdf dump_data > out.info获得元数据,out.info中将没有书签。看起来书签没有被成功地添加。
我想知道是不是有什么错误?我应该如何添加和编辑pdf文件的书签,而不一定是pdftk?
发布于 2013-04-15 03:58:13
在我看来,在1.45版(2012-12-06年)中,pdftk确实允许通过update_info命令修改书签:
现在可以使用update_info添加或更改PDF的书签。
via:http://www.pdflabs.com/docs/pdftk-version-history/
这意味着您现在可以通过运行最初尝试的相同命令来更新书签:
pdftk in.pdf update_info in.bookmarks output out.pdf发布于 2016-02-23 12:19:02
pdftk书签格式编写起来有点乏味。相反,我使用bash、sed、pdftk和python3创建了自己的脚本。看看这个回购程序:https://github.com/SiddharthPant/booky
所以,现在我可以创建这样一个文本文件(bkmrks.txt),它只需5分钟就可以编写,即使是1000页的pdf。
{
Title1, 1
Title2, 2
{
Subtitle1, 3
Subtitle2, 4
{
SubSubtitle1, 5
...
}
}
}然后用我的脚本
./booky.sh pdf_file.pdf bkmrks.txt这会自动创建一个pdf(pdf_file_new.pdf),其中包含我的书签。
发布于 2012-02-07 03:12:35
如果您仍然坚持使用那些unix脚本,那么
pdftk中转储的书签数据gs。gs脚本将它们与pdfmark合并在一起看看http://blog.tremily.us/posts/PDF_书签_使用_鬼脚本/,脚本pdf-merge.py做你(或我)想做的事情。
pdf-merge.py --output=merged.pdf input1.pdf input2.pdf
他的脚本可以做一些小的改进。
不管怎么说,应该管用的
https://unix.stackexchange.com/questions/17065
复制相似问题