PyPDF2 PdfReader类

2023-03-30 14:00 更新

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​。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号