pycpdf-有效地从pdf文件中提取内容和元数据
pycpdf是一个python扩展,用于对
PDF文件。它类似于pypdf/pypdf2,只是它是只读的
更快,并且修复了一些错误。
用法
主要类是pycpdf.PDF,它以字节字符串的形式给出pdf数据。
以及可选的解密密码。此对象具有以下内容
属性:pages:对象列表Page
version:pdf文件格式版本为字符串(例如"1.6")
info:文档信息字典,或None
linearized:线性化参数字典,或None
catalog:文档目录字典
trailer:尾部字典
Page对象类似于字典,但它们有以下两个
其他属性:text:页面的文本内容
contents:组成页面内容的pdf运算符列表
StreamObject对象也类似于字典,但是
以下两个额外属性:data:流中包含的二进制数据
contents:解析为pdf运算符列表的二进制数据
Unicode字符串简化
模块还包含unicode_translations,这是一个字典
适合传递到str.translate以简化Unicode字符串
有点:将各种空格(00a0、2000-200a、3000)替换为ascii空格
删除软连字符(00ad)和零宽度空格(200b)
用ascii连字符替换各种连字符(2010-2014,2212)
替换各种带性别的引号(2018、2019、201c、201d)
使用等效的非固定ascii引号
将水平省略号字符(2026)替换为“…”
替换各种拉丁连字(ae、dz、ff、fi、fl、ffi、ffl、st)
使用等效的ascii字符串
示例pdf=pycpdf.PDF(open('file.pdf','rb').read())ifpdf.infoandpdf.info.get('Title'):print('Title:',pdf.info['Title'])forpageno,pageinenumerate(pdf.pages):print('Page',pageno+1)print(page.text.translate(pycpdf.unicode_translations))
注释
所有字符串都是Unicode。注意,与pypdf不同,name对象可以
不要以正斜杠/开头-即应该引用obj['Type']
不是obj['/Type']。这是因为pdf引用明确声明
斜线不是名字的一部分。
page.text属性按顺序列出页面的文本内容
相关操作人员出现。有时可能是不正常的,而且
可能存在意外间隔。
如果容器对象(数组和字典)包含间接对象,则
这些对象只有在
第一次被引用。这是为了打开大型pdf文件
很有效率。更改容器对象的内容不是活动的
被阻止,但永远不应该这样做,并将导致不明确的行为。
扩展的目的是允许快速的低级访问
pdf文件的内部结构。可以在中添加更高级别的接口
例如,python允许更好的文本提取或图像访问。
当前不支持某些加密和图像编码方法。
历史记录
1.0.4(2018-04-18)与在线图像相关的错误修复
1.0.3(2017-11-26)错误修复了streamobject.contents
解码文本时,如果tounicode失败,请返回编码
1.0.2(2017-11-26)稍微扩展了文档。
将travis自动部署添加到pypi。
添加了pycpdf.__version__
1.0.1(2017-11-23)初次发布。
欢迎加入QQ群-->: 979659372
推荐PyPI第三方库