我听说 pdf 文件的书签以纯文本形式存储在文件的某个地方。我想知道是否可以将 pdf 文件的书签导入和导出文本文件,以进行批处理?
如果是,是否有关于编辑包含 pdf 文件书签的文本文件的语法的说明?
我希望有适用于 Ubuntu 10.10 和 Windows 7 的免费软件解决方案。
Mic*_*erz 26
有很多工具可以将书签从 pdf 提取到纯文本文件,反之亦然。其中一些如下:
另外,我有一个脚本可以在许多这些工具的格式之间进行转换: bmconverter.py。
另一个非常好的方法是通过 pdflatex 将书签添加到 pdf 中。
小智 19
您可以pdftk为此使用。更多信息:如何导出和导入 PDF 书签。
在命令行上导出 PDF 书签,如下所示:
pdftk C:\Users\Sid\Desktop\doc.pdf dump_data output C:\Users\Sid\Desktop\doc_data.txt
Run Code Online (Sandbox Code Playgroud)
从数据文件导入 PDF 书签,如下所示:
pdftk C:\Users\Sid\Desktop\doc.pdf update_info C:\Users\Sid\Desktop\doc_data.txt output C:\Users\Sid\Desktop\updated.pdf
Run Code Online (Sandbox Code Playgroud)
pdftk书签格式写起来有点乏味。相反,我用我创建自己的脚本bash,sed,pdftk和python3。在此 repo 中查看:https : //github.com/SiddharthPant/booky
所以现在我可以创建一个这样的文本文件(bkmrks.txt),即使是 1000 页的 pdf 也只需 5 分钟即可完成。
{
Title1, 1
Title2, 2
{
Subtitle1, 3
Subtitle2, 4
{
SubSubtitle1, 5
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后使用我的脚本
./booky.sh pdf_file.pdf bkmrks.txt
Run Code Online (Sandbox Code Playgroud)
这会自动创建一个pdf_file_new.pdf包含我的书签的 pdf( )。
如果你在 Windows 机器上,这将在 *nix 系统中工作。然后首先安装python3并pdftk使用booky.pyrepo 中的文件转换bkmrks.txt为pdftk兼容格式
python3 booky.py < bkmrks.txt > output.txt
Run Code Online (Sandbox Code Playgroud)
然后使用export命令生成转储数据文件。从该文件中删除以前的书签并output.txt使用简单的复制粘贴插入内容。然后将这些数据导入回来。
小智 6
如果您有一个带有书签的文档版本并想要复制它们,一个更简单的方法是使用 PDF-XChange Viewer(我使用的是 v2.5.211)。打开有书签的 PDF(源 PDF),在书签窗格中选择所有书签,使用 Ctrl+C 复制它们,打开没有书签的 PDF(目标 PDF),然后粘贴它们(Ctrl +V) 在该 PDF 的书签窗格中。PDF-Xchange Viewer 保留源 PDF 中的书签属性(包括书签文本上的任何粗体/斜体格式)。如果由于某种原因,目标 PDF 的某些部分由于对文档的修订而降低或升高,您可以单击需要更正的书签,滚动到您希望书签打开的页面上的位置,右键 -再次单击书签,然后单击“设置目的地”。根据需要对任何有问题的书签重复最后一部分。完成后保存目标 PDF。
这对我很有用,非常直观,我在几分钟内就完成了。在我的特定场景中,一位同事使用 Word for Mac 制作了一个没有书签的很长的文档。由于文档的长度,我想要与文档大纲相对应的书签。我可以让 Word for Windows 将文档另存为带有书签的 PDF,但是 Word for Windows 和 Word for Mac 之间的一些格式差异使页数完全偏离(特别是,页脚周围的空白区域存在差异,差异在数字和标题之间的间距中)。我能够在 Word for Windows 中使用页眉和页脚以及图形大小来获得正确的分页,然后保存为带书签的 PDF。很遗憾,
| 归档时间: |
|
| 查看次数: |
102283 次 |
| 最近记录: |