有关完整文档,请参见Adobe的978页PDF参考。:-)
更具体地说,PDF文件包含元数据,该元数据指示如何将PDF的物理页面映射到逻辑页码以及应如何格式化页码。这是您获得规范结果的地方。该页面的示例2显示了它在PDF标记中的外观。您必须将其捕获,解析并自己执行映射。
在PyPDF中,要获取此信息,请尝试作为起点:
pdf.trailer["/Root"]["/PageLabels"]["/Nums"]
顺便说一句,当您看到一个
IndirectObject实例时,可以调用其
getObject()方法来检索所指向的实际对象。
如您所说,您可以选择检查文本对象并尝试找出哪个是页码。您可以
extractText()为此使用page对象,但是您将获得一个字符串,并且必须尝试从中找出页码。(当然,页码可能是罗马的或字母的,而不是数字的,有些页面可能没有编号。)相反,请看看
extractText()其工作的实际效果(毕竟PyPDF是用Python编写的)并将其用作例程的基础,该例程分别检查页面上的每个文本对象以查看其是否像页码。警惕上面有很多页码的目录/索引页面!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)