和qpdf

和qpdf

我有一个 PDF 文件。我需要将该文件中的书签提取到文本文件或 Excel 电子表格中。我还需要验证大型 PDF 文件中的书签。我该怎么做呢?

答案1

您可以使用pdftk从 PDF 文件中提取数据(特别是书签)。

例子:使用 pdftk 2.02,

pdftk file.pdf dump_data_utf8 | grep '^Bookmark'

输出书签列表,每个书签 4 行,格式如下:

BookmarkBegin
BookmarkTitle: <title in UTF8>
BookmarkLevel: <number>
BookmarkPageNumber: <number>

例如,级别 1 对应于节,级别 2 对应于小节,依此类推。dump_data_utf8您可以使用代替dump_data,这将为您提供非 ASCII 字符的 HTML/XML 数字实体(例如&#232;“è”)。

注意:如果没有grep,您可以获得其他有趣的数据,例如元数据(创建日期、作者、关键字、标题等)、页数和每页的尺寸。这个 pdftk 实用程序可以对 PDF 文件执行其他操作;看到它的手册页以获得完整的描述。

答案2

qpdf

这应该可以帮助您开始:

qpdf --json your.pdf | jq '.objects' | grep -Po 'Title": \K.*'

不过,该命令还将生成 PDF 的标题。

看看qpdf 手册关于其 JSON 输出。

grep我很确定该命令可以通过使用来简化,摆脱,jq 的通配符

答案3

您可以使用 CLIjpdf调整提取 CSV 格式的书签:

java -jar -Xmx512M jpdftweak.jar "file.pdf" -savebookmarks "bmarks.csv" /dev/null

验证并可能修改书签数据后,您可以使用以下命令将其加载回 PDF 文件:

java -jar -Xmx512M jpdftweak.jar "file.pdf" -loadbookmarks "bmarks.csv" "file_updated.pdf"

Java参数-Xmx512M是可选的,但可以帮助处理需要更多内存的较大 PDF 文件。

您可能想阅读此相关问答以及。

相关内容