PyPDF2 PdfReader类
class PyPDF2.PdfReader(stream: Union[str, IO, Path], strict: bool = False, password: Union[None, str, bytes] = None)
基类:object
初始化PdfReader对象。
此操作可能需要一些时间,因为PDF流的交叉引用表将读入内存。
参数
- stream - 文件对象或类似于文件对象的标准读取和查找方法的对象。也可以是表示PDF文件路径的字符串。
- strict(bool)-确定是否应警告用户所有问题,并导致一些可纠正的问题致命。默认为False。
- password(None / str / bytes)-在初始化时解密PDF文件。如果密码为None,则不会解密该文件。默认为None
cacheGetIndirectObject(generation: int, idnum: int)→ Optional[PdfObject]
1.28.0 版后已弃用:改为使用cache_get_indirect_object()
。
cacheIndirectObject(generation: int, idnum: int, obj: Optional[PdfObject])→ Optional[PdfObject]
1.28.0 版后已弃用:改为使用cache_indirect_object()
。
cache_get_indirect_object(generation: int, idnum: int)→ Optional[PdfObject]
cache_indirect_object(generation: int, idnum: int, obj: Optional[PdfObject])→ Optional[PdfObject]
decode_permissions(permissions_code: int)→ Dict[str, bool]
decrypt(password: Union[str, bytes])→ PasswordType
使用PDF标准加密处理程序的加密/安全PDF文件时,此函数将允许解密该文件。它检查给定密码与文档的用户密码和所有者密码是否匹配,然后存储生成的解密密钥(如果任一密码正确)。
无论匹配哪个密码,都提供了正确的解密密钥,可使文档与此库一起使用。
参数
密码(str):要匹配的密码。
返回:PasswordType
属性 documentInfo: Optional[DocumentInformation]
自版本 1.28.0 后弃用。
请改用metadata
属性。
getDestinationPageNumber(destination: Destination)→ int
1.28.0 版后已弃用:改为使用get_destination_page_number()
。
getDocumentInfo()→ Optional[DocumentInformation]
1.28.0 版后已弃用:改为使用metadata
属性。
getFields(tree: Optional[TreeObject] = None, retval: Optional[Dict[Any, Any]] = None, fileobj: Optional[Any] = None)→ Optional[Dict[str, Any]]
1.28.0 版后已弃用:改为使用get_fields()
。
getFormTextFields()→ Dict[str, Any]
1.28.0 版后已弃用:改为使用get_form_text_fields()
。
getIsEncrypted()→ bool
1.28.0 版后已弃用:改为使用is_encrypted
。
getNamedDestinations(tree: Optional[TreeObject] = None, retval: Optional[Any] = None)→ Dict[str, Any]
1.28.0 版后已弃用:改为使用named_destinations
。
getNumPages()→ int
1.28.0 版后已弃用:改为使用len(reader.pages)
。
getObject(indirectReference: IndirectObject)→ Optional[PdfObject]
1.28.0 版后已弃用:改为使用get_object()
。
getOutlines(node: Optional[DictionaryObject] = None, outline: Optional[Any] = None)→ List[Union[Destination , List[Union[Destination, List[Destination ]]]]]
1.28.0 版后已弃用:改为使用outline
。
getPage(pageNumber: int)→ PageObject
1.28.0 版后已弃用:改为使用reader.pages[page_number]
。
getPageLayout()→ Optional[str]
1.28.0 版后已弃用:改为使用page_layout
。
getPageMode()→ Literal[/UseNone, /UseOutlines, /UseThumbs, /FullScreen, /UseOC, /UseAttachments]]
1.28.0 版后已弃用:改为使用page_mode
。
getPageNumber(page: PageObject)→ int
1.28.0 版后已弃用:改为使用get_page_number()
。
getXmpMetadata()→ Optional[XmpInformation]
1.28.0 版后已弃用:改为使用xmp_metadata
属性。
get_destination_page_number(destination: Destination)→ int
检索给定目标对象的页码。
destination ( Destination) – 获取页码的目的地。
页码或 -1 如果找不到页面
get_fields(tree: Optional[TreeObject] = None, retval: Optional[Dict[Any, Any]] = None, fileobj: Optional[Any] = None)→ Optional[Dict[str, Any]]
如果此 PDF 包含交互式表单域,则提取域数据。
tree
和retval
参数用于递归使用。
fileobj – 一个文件对象(通常是文本文件),用于在找到的所有交互式表单字段上写入报告。
一个字典,其中每个键是一个字段名称,每个值是一个Field
对象。默认情况下,映射名称用于键。 如果无法找到表单数据则为None
。
get_form_text_fields()→ Dict[str, Any]
从包含文本数据的文档中检索表单字段。
键是表单域的名称,值是域的内容。
如果文档包含多个具有相同名称的表单字段,则第二个和后续字段将获得后缀 _2、_3、...
get_object(indirect_reference: Union[int, IndirectObject])→ Optional[PdfObject]
get_page_number(page: PageObject)→ int
检索给定 PageObject 的页码
page ( PageObject) – 要获取页码的页面。应该是一个实例PageObject
页码或 -1 如果找不到页面
属性 isEncrypted: bool
自版本 1.28.0 后弃用。
改用is_encrypted
。
属性 is_encrypted: bool
显示此 PDF 文件是否加密的只读布尔属性。
请注意,如果此属性为真,则即使在 decrypt()
调用该方法后也将保持为真。
属性 metadata: Optional[DocumentInformation]
检索 PDF 文件的文档信息字典(如果存在)。请注意,某些 PDF 文件使用元数据流而不是 docinfo 词典,并且此函数不会访问这些元数据流。
- 返回
-
该PDF文件的文档信息
属性 namedDestinations: Dict[str, Any]
自版本 1.28.0 后弃用。
改用named_destinations
。
属性 named_destinations: Dict[str, Any]
将名称映射到的只读字典 Destinations
属性 numPages: int
自版本 1.28.0 后弃用。
改用len(reader.pages)
。
属性 outline: List[Union[Destination, List[Union[Destination, List[Destination]]]]]
文档中存在的大纲(即“大纲项”的集合,也称为“书签”)的只读属性。
- 返回
-
名为
的嵌套列表。Destinations
属性 outlines: List[Union[Destination, List[Union[Destination, List[Destination]]]]]
自版本 2.9.0 后弃用。
改用outline
。
属性 pageLayout: Optional[str]
自版本 1.28.0 后弃用。
改用page_layout
。
属性 pageMode: Literal[/UseNone, /UseOutlines, /UseThumbs, /FullScreen, /UseOC, /UseAttachments]]
自版本 1.28.0 后弃用。
改用page_mode
。
属性 page_layout: Optional[str]
获取页面布局。
- 返回
-
当前正在使用的页面布局。
-
有效 layout
值
/NoLayout
未明确指定布局
/SinglePage
一次显示一页 /OneColumn
一次显示一列
/TwoColumnLeft
分两列显示页面,左侧为奇数页
/TwoColumnRight
分两列显示页面,奇数页在右边
/TwoPageLeft
一次显示两页,奇数页在左边 /TwoPageRight
一次显示两页,奇数页在右边
属性 page_mode: Literal[/UseNone, /UseOutlines, /UseThumbs, /FullScreen, /UseOC, /UseAttachments]]
获取页面模式。
- 返回
-
当前正在使用的页面模式。
-
有效 mode
值/UseNone
不显示大纲或缩略图面板 /UseOutlines
显示大纲(又名书签)面板
/UseThumbs
显示页面缩略图面板
/FullScreen
全屏视图
/UseOC
显示可选内容组(OCG)面板
/UseAttachments
显示附件面板
属性 pages: List[PageObject]
只读属性,用于模拟Page
对象列表。
属性 pdf_header: str
read(stream: IO)→ None
readNextEndLine(stream: IO, limit_offset: int = 0)→ bytes
自版本 1.28.0 后弃用。
readObjectHeader(stream: IO)→ Tuple[int, int]
1.28.0 版后已弃用:改为使用read_object_header()
。
read_next_end_line(stream: IO, limit_offset: int = 0)→ bytes
2.1.0 版后弃用。
read_object_header(stream: IO)→ Tuple[int, int]
属性 threads: Optional[ArrayObject]
线程列表的只读属性请参阅 PDF 1.7 规范中的§8.3.2
- 返回
具有“/F”和“/I”属性的字典数组,如果没有文章则为 None。
属性 xfa: Optional[Dict[str, Any]]
属性 xmpMetadata: Optional[XmpInformation]
自版本 1.28.0 后弃用。
请改用xmp_metadata
属性。
属性 xmp_metadata: Optional[XmpInformation]
XMP(可扩展元数据平台)数据
- 返回
可以用于访问文档中的XMP元数据的
XmpInformation
实例。如果在文档根目录上找不到元数据,则为None
。
更多建议: