??classPyPDF2._page.PageObject(pdf: Optional[PdfReaderProtocol] = None, indirect_reference: Optional[IndirectObject] = None, indirect_ref: Optional[IndirectObject] = None)
?
?基類: DictionaryObject
PageObject 表示 PDF 文件中的單個頁面。
?get_page()
?通常這個對象將通過訪問類的方法 來創(chuàng)建 ?PdfReader
?,但也可以使用 ?create_blank_page()
?靜態(tài)方法創(chuàng)建一個空頁面。
pdf – 頁面所屬的 PDF 文件。
indirect_reference – 將對此對象的原始間接引用存儲在其源 PDF 中
addTransformation(ctm: Tuple[float, float, float, float, float, float])→ None
1.28.0 版后已棄用:改為使用?add_transformation()
?。
add_transformation(ctm: Union[Transformation, Tuple[float, float, float, float, float, float]], expand: bool = False)→ None
將轉(zhuǎn)換矩陣應(yīng)用于頁面。
ctm – 包含轉(zhuǎn)換矩陣操作數(shù)的 6 元素元組?;蛘?, ?
可以傳遞一個對象。Transformation
?
請參閱裁剪和轉(zhuǎn)換 PDF。
屬性 annotations: Optional[ArrayObject]
屬性 artBox: RectangleObject
自版本 1.28.0 后棄用。
改用?artbox
?。
屬性 artbox
一個 ?RectangleObject
?對象,以默認用戶空間單位表示,定義頁面創(chuàng)建者預(yù)期的頁面有意義內(nèi)容的范圍。
屬性 bleedBox: RectangleObject
自版本 1.28.0 后棄用。
改用?bleedbox
?。
屬性 bleedbox
一個?RectangleObject
?對象,以默認用戶空間單位表示,定義在生產(chǎn)環(huán)境中輸出時應(yīng)裁剪頁面內(nèi)容的區(qū)域。
compressContentStreams()→ None
1.28.0 版后已棄用:改為使用?compress_content_streams()
?。
compress_content_streams()→ None
通過加入所有內(nèi)容流并應(yīng)用 FlateDecode 過濾器來壓縮此頁面的大小。
但是,如果內(nèi)容流壓縮變?yōu)椤癮utomatic”,則此函數(shù)可能不會執(zhí)行任何操作。
靜態(tài) createBlankPage(pdf: Optional[Any] = None, width: Optional[Union[float, Decimal]] = None, height: Optional[Union[float, Decimal]] = None)→ PageObject
1.28.0 版后已棄用:改為使用?create_blank_page()
?。
靜態(tài) create_blank_page(pdf: Optional[Any] = None, width: Optional[Union[float, Decimal]] = None, height: Optional[Union[float, Decimal]] = None)→ PageObject
返回一個新的空白頁。
如果width或height是,請嘗試從pdfNone的最后一頁獲取頁面大小。
pdf – 頁面所屬的 PDF 文件
width – 以默認用戶空間單位表示的新頁面的寬度。
height – 以默認用戶空間單位表示的新頁面的高度。
新的空白頁
PageSizeNotDefinedError – 如果pdf
是None
或不包含頁面
屬性 cropBox: RectangleObject
自版本 1.28.0 后棄用。
改用?cropbox
?。
屬性 cropbox
?RectangleObject
?對象,以默認用戶空間單位表示,定義默認用戶空間的可見區(qū)域。當頁面被顯示或打印時,其內(nèi)容將被剪裁(裁剪)到這個矩形,然后以某種實現(xiàn)定義的方式強加在輸出介質(zhì)上。默認值:與?mediabox
?相同。
extractText(Tj_sep: str = '', TJ_sep: str = '')→ str
1.28.0 版后已棄用:改為使用?extract_text()
?。
extract_text(*args: Any, Tj_sep: Optional[str] = None, TJ_sep: Optional[str] = None, orientations: Union[int, Tuple[int, ...]] = (0, 90, 180, 270), space_width: float = 200.0, visitor_operand_before: Optional[Callable[[Any, Any, Any, Any], None]] = None, visitor_operand_after: Optional[Callable[[Any, Any, Any, Any], None]] = None, visitor_text: Optional[Callable[[Any, Any, Any, Any, Any], None]] = None)→ str
按照內(nèi)容流中提供的順序找到所有文本繪制命令,然后提取文本。
這對某些 PDF 文件效果很好,但對其他文件效果不佳,具體取決于所使用的生成器。這個以后會細化。
不要依賴此函數(shù)的文本順序,因為如果此函數(shù)變得更復(fù)雜,它會發(fā)生變化。
阿拉伯語、希伯來語……以良好的順序提取。如果需要,可以定義自定義 RTL 字符范圍;見函數(shù) set_custom_rtl
此外,您可以提供訪問者方法以獲取有關(guān)所有操作數(shù)和所有文本對象的信息。例如,在某些 PDF 文件中,這對于解析表格很有用。
Tj_sep——已棄用。保持兼容性直到 PyPDF2 4.0.0
TJ_sep – 已棄用。保持兼容性直到 PyPDF2 4.0.0
方向——方向列表 text_extraction 將查找默認值 = (0, 90, 180, 270) 注意:目前只有 0(向上),90(向左),180(倒置),270(向右)
space_width – 如果未從字體中提取,則強制使用默認空間寬度(默認值:200)
visitor_operand_before – 在處理操作數(shù)之前調(diào)用的函數(shù)。它有四個參數(shù):操作數(shù)、操作數(shù)參數(shù)、當前轉(zhuǎn)換矩陣和文本矩陣。
visitor_operand_after – 處理操作數(shù)后調(diào)用的函數(shù)。它有四個參數(shù):操作數(shù)、操作數(shù)參數(shù)、當前轉(zhuǎn)換矩陣和文本矩陣。
visitor_text – 在某個位置提取一些文本時調(diào)用的函數(shù)。它有五個參數(shù):文本、當前轉(zhuǎn)換矩陣、文本矩陣、字體字典和字體大小。在未知字體的情況下,字體字典可能是無。如果不是 None,它可能包含鍵“/BaseFont”,值為“/Arial,Bold”。
提取的文本
extract_xform_text(xform: EncodedStreamObject, orientations: Tuple[int, ...] = (0, 90, 270, 360), space_width: float = 200.0, visitor_operand_before: Optional[Callable[[Any, Any, Any, Any], None]] = None, visitor_operand_after: Optional[Callable[[Any, Any, Any, Any], None]] = None, visitor_text: Optional[Callable[[Any, Any, Any, Any, Any], None]] = None)→ str
從 XObject 中提取文本。
space_width – 強制默認空間寬度(如果不是從字體中提取(默認 200)
提取的文本
getContents()→ Optional[ContentStream]
1.28.0 版后已棄用:改為使用?get_contents()
?。
get_contents()→ Optional[ContentStream]
訪問頁面內(nèi)容。
對象/Contents
,或者None
如果它不存在。 /Contents
是可選的,如 PDF 參考 7.7.3.3 中所述
hash_value_data()→ bytes
屬性 images: List[File]
獲取頁面所有圖像的列表。
這需要pillow。您可以通過“?pip install PyPDF2[image]
?”安裝它。
目前,這不包括內(nèi)聯(lián)圖像。將來會添加它們。
屬性 indirect_ref: Optional[IndirectObject]
屬性 mediaBox: RectangleObject
自版本 1.28.0 后棄用。
改用?mediabox
?。
屬性 mediabox
一個?RectangleObject
?對象,以默認用戶空間單位表示,定義要在其上顯示或打印頁面的物理介質(zhì)的邊界。
mergePage(page2: PageObject)→ None
1.28.0 版后已棄用:改為使用?merge_page()
?。
mergeRotatedPage(page2: PageObject, rotation: float, expand: bool = False)→ None
mergeRotatedPage 類似于 merge_page,但要合并的流是通過應(yīng)用變換矩陣來旋轉(zhuǎn)的。
page2 ( PageObject ) – 要合并到這個頁面中的頁面。應(yīng)該是 PageObject
的實例。
rotation ( float ) – 旋轉(zhuǎn)的角度,以度為單位
expand ( bool ) – 頁面是否應(yīng)該擴展以適應(yīng)要合并的頁面的尺寸。
1.28.0 版后已移除:使用?add_transformation()
?和?merge_page()
?代替。
mergeRotatedScaledPage(page2: PageObject, rotation: float, scale: float, expand: bool = False)→ None
mergeRotatedScaledPage 類似于 merge_page,但要合并的流是通過應(yīng)用變換矩陣來旋轉(zhuǎn)和縮放的。
page2 ( PageObject ) – 要合并到這個頁面中的頁面。應(yīng)該是PageObject
的實例。
rotation ( float ) – 旋轉(zhuǎn)的角度,以度為單位
scale ( float ) – 比例因子
expand ( bool ) – 頁面是否應(yīng)該擴展以適應(yīng)要合并的頁面的尺寸。
1.28.0 版后已移除:使用?add_transformation()
?和?merge_page()
?代替。
mergeRotatedScaledTranslatedPage(page2: PageObject, rotation: float, scale: float, tx: float, ty: float, expand: bool = False)→ None
mergeRotatedScaledTranslatedPage 類似于 merge_page,但要合并的流通過應(yīng)用變換矩陣進行平移、旋轉(zhuǎn)和縮放。
page2 ( PageObject ) – 要合并到這個頁面中的頁面。應(yīng)該是 PageObject
的實例。
tx ( float ) – X 軸上的平移
ty ( float ) – Y 軸上的平移
rotation ( float ) – 旋轉(zhuǎn)的角度,以度為單位
scale ( float ) – 比例因子
expand ( bool ) – 頁面是否應(yīng)該擴展以適應(yīng)要合并的頁面的尺寸。
1.28.0 版后已移除:使用?add_transformation()
?和?merge_page()
?代替。
mergeRotatedTranslatedPage(page2: PageObject, rotation: float, tx: float, ty: float, expand: bool = False)→ None
mergeRotatedTranslatedPage 類似于 merge_page,但要合并的流是通過應(yīng)用變換矩陣旋轉(zhuǎn)和平移的。
page2 ( PageObject ) – 要合并到這個頁面中的頁面。應(yīng)該是 PageObject
的實例。
tx ( float ) – X 軸上的平移
ty ( float ) – Y 軸上的平移
rotation ( float ) – 旋轉(zhuǎn)的角度,以度為單位
expand ( bool ) – 頁面是否應(yīng)該擴展以適應(yīng)要合并的頁面的尺寸。
1.28.0 版后已移除:使用?add_transformation()
?和?merge_page()
?代替。
mergeScaledPage(page2: PageObject, scale: float, expand: bool = False)→ None
mergeScaledPage 類似于 merge_page,但要合并的流是通過應(yīng)用變換矩陣來縮放的。
page2 ( PageObject ) – 要合并到這個頁面中的頁面。應(yīng)該是?PageObject
?的實例。
scale ( float ) – 比例因子
expand ( bool ) – 頁面是否應(yīng)該擴展以適應(yīng)要合并的頁面的尺寸。
1.28.0 版后已移除:使用?add_transformation()
?和?merge_page()
?代替。
mergeScaledTranslatedPage(page2: PageObject, scale: float, tx: float, ty: float, expand: bool = False)→ None
mergeScaledTranslatedPage 類似于 merge_page,但要合并的流通過應(yīng)用轉(zhuǎn)換矩陣進行轉(zhuǎn)換和縮放。
page2 ( PageObject ) – 要合并到這個頁面中的頁面。應(yīng)該是 ?PageObject
?的實例。
scale ( float ) – 比例因子
tx ( float ) – X 軸上的平移
ty ( float ) – Y 軸上的平移
expand ( bool ) – 頁面是否應(yīng)該擴展以適應(yīng)要合并的頁面的尺寸。
1.28.0 版后已移除:使用?add_transformation()
?和?merge_page()
?代替。
mergeTransformedPage(page2: PageObject, ctm: Union[Tuple[float, float, float, float, float, float], Transformation], expand: bool = False)→ None
mergeTransformedPage 類似于 merge_page,但轉(zhuǎn)換矩陣應(yīng)用于合并流。
page2 ( PageObject ) – 要合并到這個頁面中的頁面。應(yīng)該是?
的實例。PageObject
?
ctm (元組) – 包含轉(zhuǎn)換矩陣操作數(shù)的 6 元素元組
expand ( bool ) – 頁面是否應(yīng)該擴展以適應(yīng)要合并的頁面的尺寸。
1.28.0 版后已移除:使用?add_transformation()
? 和?merge_page()
?代替。
mergeTranslatedPage(page2: PageObject, tx: float, ty: float, expand: bool = False)→ None
mergeTranslatedPage 類似于 merge_page,但要合并的流是通過應(yīng)用轉(zhuǎn)換矩陣來翻譯的。
page2 ( PageObject ) – 要合并到這個頁面中的頁面。應(yīng)該是?PageObject
?的實例。
tx ( float ) – X 軸上的平移
ty ( float ) – Y 軸上的平移
expand ( bool ) – 頁面是否應(yīng)該擴展以適應(yīng)要合并的頁面的尺寸。
1.28.0 版后已移除:使用?add_transformation()
?和?merge_page()
?代替。
merge_page(page2: PageObject, expand: bool = False)→ None
將兩個頁面的內(nèi)容流合并為一個。
資源引用(即字體)從兩個頁面維護。此頁面的 mediabox/cropbox/etc 沒有改變。參數(shù)頁面的內(nèi)容流將被添加到該頁面內(nèi)容流的末尾,這意味著它將在該頁面之后或“之上”繪制。
page2 – 要合并到該頁面中的頁面。應(yīng)該是?PageObject
?的實例。
expand – 如果為 true,則當前頁面尺寸將被擴展以適應(yīng)要合并的頁面尺寸。
original_page: PageObject
rotate(angle: int)→ PageObject
將頁面順時針旋轉(zhuǎn) 90 度。
angle – 旋轉(zhuǎn)頁面的角度。必須是 90 度的增量。
rotateClockwise(angle: int)→ PageObject
1.28.0 版后已棄用:改為使用rotate_clockwise()
。
rotateCounterClockwise(angle: int)→ PageObject
1.28.0 版后已移除:改為使用?
否定參數(shù)。rotate_clockwise()
?
rotate_clockwise(angle: int)→ PageObject
屬性 rotation: int
頁面的視覺旋轉(zhuǎn)。
此數(shù)字必須是 90 度的倍數(shù):0,90,180,270 此屬性不影響“/Contents”
scale(sx: float, sy: float)→ None
通過將轉(zhuǎn)換矩陣應(yīng)用于頁面內(nèi)容并更新頁面大小,按給定因素縮放頁面。
這會更新 mediabox、cropbox 和頁面內(nèi)容。
sx – 水平軸上的比例因子。
sy – 垂直軸上的比例因子。
scaleBy(factor: float)→ None
1.28.0 版后已棄用:改為使用scale_by()
。
scaleTo(width: float, height: float)→ None
1.28.0 版后已棄用:改為使用?scale_to()
?。
scale_by(factor: float)→ None
通過將轉(zhuǎn)換矩陣應(yīng)用于頁面內(nèi)容并更新頁面大小,按給定因素縮放頁面。
factor – 比例因子(對于 X 軸和 Y 軸)。
scale_to(width: float, height: float)→ None
通過將轉(zhuǎn)換矩陣應(yīng)用于頁面內(nèi)容并更新頁面大小,將頁面縮放到指定尺寸。
寬度——新的寬度。
高度——新的高度。
transfer_rotation_to_content()→ None
將頁面的旋轉(zhuǎn)應(yīng)用于內(nèi)容和媒體/裁剪/…框。
建議在頁面合并之前應(yīng)用此功能。
屬性 trimBox: RectangleObject
自版本 1.28.0 后棄用。
改用?trimbox
?。
屬性 trimbox
一個RectangleObject對象,以默認用戶空間單位表示,定義修剪后完成頁面的預(yù)期尺寸。
屬性 user_unit: float
一個只讀的正數(shù),給出用戶空間單元的大小。
它是 1/72 英寸的倍數(shù)。因此,值為 1 表示用戶空間單位為 1/72 英寸,值為 3 表示用戶空間單位為 3/72 英寸。
更多建議: