我试图通过javascript / HTML从PDF文件中获取总页数,而不依赖于任何服务器端技术。
我试图探索PDF.js库的源代码,只是想弄清楚他们是如何计算PDF文件中的页面的。但它是一个庞大的库,我无法轻易找出逻辑/方法。我不想仅使用整个PDF.js库来获取页数。
是否有任何其他客户端技术选项可以获取PDF页面数量?
任何帮助非常感谢。谢谢。
答案 0 :(得分:1)
这不是一项简单的工作,你最好的方法是使用pdf.js或类似的东西。
以下是帮助您了解从PDF中提取页数的难度。
首先,pdf由许多对象组成。在文件末尾,有一个交叉引用表,它包含每个对象的位置(文件中的偏移量)。要获得一个对象,你必须先去表并获得偏移量。获得偏移后,您必须有一些解析器才能从字节中获取对象。对象类型很少,因为页面数量至少需要字典,数组和数字。
其次,页面在pdf中保存为树结构。要获取页码,您必须加载整个页面树对象,并确定有多少个叶子。
第三,pdf中有许多高级功能,但现在不难发现。例如,交叉引用可以分区分段。它也可以编码/压缩为交叉引用流。几种不同的压缩方法可以适用于它。它自身的对象也可以使用对象流进行编码。我甚至没有提到pdf 加密,在这种情况下你必须先有一些密码才能解密它。