use*_*099 1 java pdf pdf-parsing
当我在 PDF 查看器中打开 PDF 时,我会在实际文档的左侧看到一系列书签。那里显示的信息似乎并未成为文档实际内容的一部分:它没有打印出来,也没有出现在特定页面上。
如何使用 Java 提取这些书签?
OP 问题要求使用 Java 提供解决方案。
然而,对于必须处理 PDF 的人来说,这可能是一个更普遍感兴趣的话题。所以我的回答提供了一个命令行解决方案:mutool.
mutool是与MuPDF 查看器软件捆绑在一起的命令行实用程序,由提供 Ghostscript 的同一家公司编写。
其最新版本包括show子命令,可用于打印outlines(在 PDF 技术术语中,OP 和 Adobe UI 称之为“书签”),以及 PDF 中其他感兴趣的特定项目:
$ mutool show PDF32000_2008.pdf outlines
Document management — Portable document format — Part 1: PDF 1.7 1
Contents Page 3
Foreword 6
Introduction 7
1 Scope 9
2 Conformance 9
2.1 General 9
2.2 Conforming readers 9
2.3 Conforming writers 9
2.4 Conforming products 10
3 Normative references 10
4 Terms and definitions 14
5 Notation 18
6 Version Designations 18
7 Syntax 19
7.1 General 19
7.2 Lexical Conventions 19
7.2.1 General 19
7.2.2 Character Set 20
7.2.3 Comments 21
[....]
Run Code Online (Sandbox Code Playgroud)
(输出已缩短。)原始 PDF 文档(官方 PDF-1.7 规范)包含此页面作为 ToC:

您可以清楚地看到,/Outlines内容与包含的目录页面有何不同(但相似)。
以下是大纲(“书签”)在 Adobe Reader XI 中的显示方式:
