Answers:
有很多工具可以将书签从pdf提取到纯文本文件,反之亦然。其中一些如下:
另外,我有一个脚本,可以在许多这些工具的格式之间转换: bmconverter.py。
另一个非常好的方法是通过pdflatex将书签添加到pdf。
您可以pdftk
为此使用。更多信息:如何导出和导入PDF书签。
像这样在命令行上导出PDF书签:
pdftk C:\Users\Sid\Desktop\doc.pdf dump_data output C:\Users\Sid\Desktop\doc_data.txt
从这样的数据文件导入PDF书签:
pdftk C:\Users\Sid\Desktop\doc.pdf update_info C:\Users\Sid\Desktop\doc_data.txt output C:\Users\Sid\Desktop\updated.pdf
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()。
如果您使用的是Windows计算机,这将在* nix系统中起作用。然后先安装python3
,然后pdftk
使用booky.py
回购中的文件将其转换bkmrks.txt
为pdftk
兼容格式
python3 booky.py < bkmrks.txt > output.txt
然后使用export命令生成转储的数据文件。从该文件中删除以前的书签,然后output.txt
使用简单的复制粘贴插入的内容。然后将该数据导入回来。
如果您有一个带有书签的文档版本,并且想要复制它们,那么一种更简单的方法是使用PDF-XChange Viewer(我使用v2.5.211)。打开包含书签的PDF(源PDF),在书签窗格中选择所有书签,使用Ctrl + C复制它们,打开不包含书签的PDF(目标PDF),然后粘贴(Ctrl PDF的书签窗格中的+ V)。PDF-Xchange Viewer保留来自源PDF的书签属性(包括书签文本上的任何粗体/斜体格式)。如果由于对文档的修订,由于某种原因目标PDF的某些部分变高或变小,您可以单击需要更正的书签,滚动到页面上您希望书签打开的位置,右键单击-再次单击书签,然后单击“设置目标”。根据需要对任何有问题的书签重复最后一部分。完成后保存目标PDF。
这对我来说非常有效,非常直观,几分钟后就完成了。在我的特殊情况下,一位同事使用Word for Mac制作了一个很长的文档,没有书签。由于文档的长度,我想要与文档的轮廓相对应的书签。我可以让Word for Windows将文档另存为带有书签的PDF,但是Word for Windows和Word for Mac之间的某些格式差异大大消除了页数(特别是页脚周围的空格存在差异,并且差异在图形和标题之间的间距中)。我能够解决页眉和页脚以及图形大小的问题,以使Word for Windows中的分页正确,然后保存到带有书签的PDF中。不幸,
PDF文件的规范可以从Adobe免费下载PDF,或者至少是我上次检查的规范。但是,大多数PDF文件中的压缩数据最多。可能曾经有一个PDF的基本纯文本版本,如果是这样,它现在仍然有效,但是实际上以这种形式获取文件可能是一个问题。
尽管我还没有做过,但很可能(如果您愿意付款)是购买Acrobat Pro,并使用该应用程序内置的Javascript脚本功能。让您开始...
http://acrobatusers.com/tutorials/2008/10/auto_bookmark_creation
本教程说明如何在Acrobat 7.0 Pro(Creative Suite CS2中包含的版本)中使用Javascript自动创建书签。尽管有些陈旧,但对于较新的版本,相同的技术应该可以正常工作。
Adobe应用程序确实包含一个使用Javascript(Javascript尚不具备的标准功能)读取/写入文本文件的库,因此可以编写自己的导入/导出脚本,尽管要使这些脚本健壮起来并不容易。
HandyOutline。1拖动,1单击完成。https://sourceforge.net/projects/handyoutlinerfo/。自由。缩进子书签。不需要任何PDF阅读器/编辑器。还可以编辑,将所有详细信息导出到文本(复制到word中并编写宏以将其整理到功能齐全的word文档中)或XML,重新分页,导入到PDF。开发人员值得捐赠。
PDF-Xchange编辑器(替换为PDFViewer)随机复制/丢失的书签导出到文本
JPDF需要Java,导出了格式垃圾,无法清除它以仅获取名称
PDFtk只看说明就让我头疼
:-)
我发现了另一个相当“愚蠢”的解决方案,可以将PDF中的所有书签复制为文本以供其他地方使用。在Acrobat Pro(适用于Mac OS)中,无法选择所有书签并将其复制/粘贴到文字处理器中。但是,您可以选择“一个HTML页面,并添加基于书签的Navigationframe”选项将整个PDF导出为HTML文件。然后在浏览器中打开HTML,在导航框架中选择所有文本并将其复制/粘贴到字处理器中...