gro*_*vel 10 pdf command-line page-numbering
我想导出存储在某些PDF文档中的页面标签,以便于解析.我知道在转换后可以深入研究PDF文档qpdf
,但这似乎有些过分.
是否没有命令行工具只会打印每个页面的页面标签(或与其他元数据一起)?我知道PDFSpy将导出标签,但300美元不是一个选项,最好是解决方案应该是免费的.
Kur*_*fle 13
简答:
我不知道任何(免费)工具可以"简单地打印"每页的页面标签.
此外,您将无法使用类似工具qpdf
或具有同等功能的工具来规避扩展压缩对象和对象流.
答案很长:
没有这样的工具,因为在页面标签方面,这些只是你可以放心使用的一些东西.这些是以下内容:
/Type /Catalog
./Root
后跟间接对象编号参考显示在何处查找对象./PageLabels
.这是相对容易停下来的地方.因为/PageLabels
密钥引用的对象可以包含在压缩对象流中.这意味着您必须扩展该对象流.
如果你真的成功地将页面标签的描述描述为ASCII,你会发现它不是一个易于解析的平面列表(就像dictionary
是):它是一个数字树.
我不会详细介绍这些复杂性,因为需要一篇很长的文章来描述所有可能的变化.您最好直接在官方的ISO PDF-1.7规范中阅读.
但我会给你一个ASCII PDF代码示例:
213 0 obj
<< /Type /Catalog
/PageLabels
<<
/Nums
[
0 << % start labeling from page no. 1
/S /r % label with lowercase roman numbers
>>
7 << % start new labeling from page no. 8
/S /D % label with standard decimal numbers
>>
11 << % start labeling page no. 12
/S /D % label with decimal numbers...
/P (ABCD-) % ...but using label prefix 'ABCD-'...
/St 3 % ...followed by '3' as the start decimal.
>>
]
>>
%%...........................
%%...more root object keys...
%%...........................
>>
endobj
Run Code Online (Sandbox Code Playgroud)
以上示例将标记页码1,2,3,...(最后),如下所示:
i
ii
iii
iv
v
vi
1
2
3
4
ABCD-3
ABCD-4
ABCD-5
ABCD-6
...and so on until last page...
Run Code Online (Sandbox Code Playgroud)
如您所见,标记页面的PDF方法(将页码映射到页面名称)完全不直观.您只能通过研究PDF规范来理解它.
归档时间: |
|
查看次数: |
2014 次 |
最近记录: |