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流的交叉引用表將讀入內(nèi)存。

參數(shù) 

  • stream - 文件對象或類似于文件對象的標(biāo)準(zhǔn)讀取和查找方法的對象。也可以是表示PDF文件路徑的字符串。
  • strict(bool)-確定是否應(yīng)警告用戶所有問題,并導(dǎo)致一些可糾正的問題致命。默認(rèn)為False。
  • password(None / str / bytes)-在初始化時解密PDF文件。如果密碼為None,則不會解密該文件。默認(rèn)為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標(biāo)準(zhǔn)加密處理程序的加密/安全PDF文件時,此函數(shù)將允許解密該文件。它檢查給定密碼與文檔的用戶密碼和所有者密碼是否匹配,然后存儲生成的解密密鑰(如果任一密碼正確)。

無論匹配哪個密碼,都提供了正確的解密密鑰,可使文檔與此庫一起使用。

參數(shù)

    密碼(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

檢索給定目標(biāo)對象的頁碼。

參數(shù)

destination ( Destination) – 獲取頁碼的目的地。

返回

頁碼或 -1 如果找不到頁面

get_fields(tree: Optional[TreeObject] = None, retval: Optional[Dict[Any, Any]] = None, fileobj: Optional[Any] = None)→ Optional[Dict[str, Any]]

如果此 PDF 包含交互式表單域,則提取域數(shù)據(jù)。

?tree?和?retval?參數(shù)用于遞歸使用。

參數(shù)

fileobj – 一個文件對象(通常是文本文件),用于在找到的所有交互式表單字段上寫入報告。

返回

一個字典,其中每個鍵是一個字段名稱,每個值是一個?Field?對象。默認(rèn)情況下,映射名稱用于鍵。 如果無法找到表單數(shù)據(jù)則為?None?。

get_form_text_fields()→ Dict[str, Any]

從包含文本數(shù)據(jù)的文檔中檢索表單字段。

鍵是表單域的名稱,值是域的內(nèi)容。

如果文檔包含多個具有相同名稱的表單字段,則第二個和后續(xù)字段將獲得后綴 _2、_3、...

get_object(indirect_reference: Union[int, IndirectObject])→ Optional[PdfObject]

get_page_number(page: PageObject)→ int

檢索給定 PageObject 的頁碼

參數(shù)

page ( PageObject) – 要獲取頁碼的頁面。應(yīng)該是一個實例?PageObject?

返回

頁碼或 -1 如果找不到頁面

屬性 isEncrypted: bool

自版本 1.28.0 后棄用。

改用?is_encrypted?。

屬性 is_encrypted: bool

顯示此 PDF 文件是否加密的只讀布爾屬性。

請注意,如果此屬性為真,則即使在? decrypt()?調(diào)用該方法后也將保持為真。

 屬性 metadata: Optional[DocumentInformation]

檢索 PDF 文件的文檔信息字典(如果存在)。請注意,某些 PDF 文件使用元數(shù)據(jù)流而不是 docinfo 詞典,并且此函數(shù)不會訪問這些元數(shù)據(jù)流。

返回

該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]

獲取頁面布局。

返回

當(dāng)前正在使用的頁面布局。

有效layout

/NoLayout

未明確指定布局

/SinglePage

一次顯示一頁

/OneColumn

一次顯示一列

/TwoColumnLeft

分兩列顯示頁面,左側(cè)為奇數(shù)頁

/TwoColumnRight

分兩列顯示頁面,奇數(shù)頁在右邊

/TwoPageLeft

一次顯示兩頁,奇數(shù)頁在左邊

/TwoPageRight

一次顯示兩頁,奇數(shù)頁在右邊

屬性 page_mode: Literal[/UseNone, /UseOutlines, /UseThumbs, /FullScreen, /UseOC, /UseAttachments]]

獲取頁面模式。

返回

當(dāng)前正在使用的頁面模式。

有效 mode

/UseNone

不顯示大綱或縮略圖面板

/UseOutlines

顯示大綱(又名書簽)面板

/UseThumbs

顯示頁面縮略圖面板

/FullScreen

全屏視圖

/UseOC

顯示可選內(nèi)容組(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 規(guī)范中的§8.3.2

返回

具有“/F”和“/I”屬性的字典數(shù)組,如果沒有文章則為 None。

屬性 xfa: Optional[Dict[str, Any]]

 屬性 xmpMetadata: Optional[XmpInformation]

自版本 1.28.0 后棄用。

請改用?xmp_metadata?屬性。

 屬性 xmp_metadata: Optional[XmpInformation]

XMP(可擴展元數(shù)據(jù)平臺)數(shù)據(jù)

返回

可以用于訪問文檔中的XMP元數(shù)據(jù)的?XmpInformation?實例。如果在文檔根目錄上找不到元數(shù)據(jù),則為?None?。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號