Python-pptx Shapes

[圖片上傳失敗...(image-87e4a4-1660618387807)]

SlideShapes對(duì)象

SlideShapes對(duì)象是Slide的形狀屬性。
class pptx.shapes.shapetree.SlideShapes
形狀順序出現(xiàn)在幻燈片上。
序列中的第一個(gè)形狀是z順序中的最后一個(gè)形狀,最后一個(gè)形狀是最頂部。
支持索引訪問(wèn),len(),index()和迭代。

  • add_chart(chart_type,x,y,cx,cy,chart_data )

將新的chart_type圖表添加到幻燈片。
圖表位于(x,y),大小為(cx,cy),并描述了chart_data。
chart_type是XL_CHART_TYPE 枚舉值之一。
chart_data是一個(gè)ChartData對(duì)象,其中填充了圖表的類別和系列值。
注意,返回的是GraphicFrame形狀對(duì)象,而不是該圖形框架形狀中包含的圖表對(duì)象。
可以使用chart返回GraphicFrame對(duì)象的屬性 訪問(wèn)圖表對(duì)象。

  • add_connector(connector_type,begin_x,begin_y,end_x,end_y )

將一個(gè)新創(chuàng)建的連接器形狀添加到此形狀樹(shù)的末尾。
connector_type是MSO_CONNECTOR_TYPE 枚舉的成員,并且端點(diǎn)值指定為EMU值。
返回的連接器的類型為connector_type,并且具有指定的起點(diǎn)和終點(diǎn)。

  • add_group_shape(shapes = [] )

返回新附加到此形狀樹(shù)的GroupShape對(duì)象。
組形狀為空,必須使用其形狀樹(shù)上的方法填充形狀,該方法可通過(guò)其.shapes屬性獲得。
組形狀的位置和范圍由其包含的形狀決定;每次添加形狀時(shí)都會(huì)重新計(jì)算其位置和范圍。

  • add_movie(movie_file,left,top,width,height,poster_frame_image = None,mime_type ='video / unknown' )

返回在movie_file中顯示視頻的新添加的影片形狀。
實(shí)驗(yàn)性的。此方法有重要限制:
1、必須指定尺寸;不會(huì)執(zhí)行像add_picture()所提供的那樣的自動(dòng)伸縮。
2、應(yīng)指定視頻文件的MIME類型,例如“ video / mp4”。
3、所提供的視頻文件的類型不會(huì)被詢問(wèn)。
缺省情況下,使用MIME類型video / unknown(在撰寫(xiě)本文時(shí)的測(cè)試中效果很好)。
4、必須提供海報(bào)框架圖像,不能從視頻文件中自動(dòng)提取它。
如果未提供海報(bào)框,則將使用默認(rèn)的“媒體揚(yáng)聲器”圖像。
將新添加的影片形狀返回到幻燈片,位于(左側(cè), 頂部),大小(寬度,高度)并包含movie_file。
在視頻開(kāi)始播放之前,poster_frame_image將顯示為視頻的占位符。

  • add_picture(image_file,left,top,width = None,height = None )

在image_file中添加顯示圖片的圖片形狀。
image_file可以是文件(字符串)的路徑,也可以是類似文件的對(duì)象。
圖片的左上角位于(top, left)。如果width和height都為None,則使用圖像的原始大小。
如果僅使用寬度或高度之一,則將計(jì)算未指定的尺寸以保留圖像的縱橫比。
如果同時(shí)指定了兩者,則將其拉伸以適合圖像,而不考慮其原始縱橫比。

  • add_shape(autoshape_type_id,left,top,width,height )

返回附加到此形狀樹(shù)的新形狀對(duì)象。
autoshape_type_id是其成員MSO_AUTO_SHAPE_TYPE例如 MSO_SHAPE.RECTANGLE要被添加指定形狀的類型。
其余參數(shù)指定新形狀的位置和大小。

  • add_table(rows,cols,left,top,width,height )

添加GraphicFrame含有指定數(shù)目的表對(duì)象行和COLS和指定的位置和大小。
寬度在新表的各列之間平均分配。
同樣,高度在各行之間均勻分布。
請(qǐng)注意,必須使用.table返回的GraphicFrame形狀上的屬性訪問(wèn)封閉的Table對(duì)象。

  • add_textbox(left,top,width,height )

返回添加到此形狀樹(shù)的新添加的文本框形狀。
文本框具有指定的大小,位于幻燈片上的指定位置。

  • build_freeform(start_x = 0,start_y = 0,scale = 1.0 )

返回FreeformBuilder對(duì)象以指定自由形狀。
可選的start_x和start_y參數(shù)指定局部坐標(biāo)中的起始筆位置。
使用前將它們四舍五入到最接近的整數(shù),并且每個(gè)默認(rèn)值都為零。
可選的scale參數(shù)指定與滑動(dòng)坐標(biāo)(EMU)成比例的局部坐標(biāo)的大小。
如果垂直比例尺與水平比例尺不同(局部坐標(biāo)單位為“矩形”),
則可以提供一對(duì)數(shù)值作為 比例尺參數(shù),例如scale =(1.0,2.0)。
在這種情況下,第一個(gè)數(shù)字解釋為水平(X)比例尺,第二個(gè)數(shù)字解釋為垂直(Y)比例尺。
一種方便的比例尺計(jì)算方法是將Length 對(duì)象除以等效數(shù)量的局部坐標(biāo)單位。
例如, 每英寸1000個(gè)局部單位的比例尺= Inches(1)/ 1000。

  • element

該對(duì)象代理的lxml元素。

  • index(形狀)

按此順序返回形狀索引。
如果形狀不在集合中,則引發(fā)ValueError。

  • parent

此對(duì)象的祖先代理對(duì)象。例如,形狀的父級(jí)通常SlideShapes是包含它的對(duì)象。

  • part

包含此對(duì)象的包裝部件

  • placeholders

SlidePlaceholders在此幻燈片中包含占位符形狀序列的實(shí)例。

  • title

幻燈片上的標(biāo)題占位符形狀,或者None幻燈片上沒(méi)有標(biāo)題占位符時(shí)。

  • turbo_add_enabled

如果啟用了“渦輪添加”模式,則為true。 讀/寫(xiě)。
實(shí)驗(yàn)性:向幻燈片添加大量(數(shù)百種形狀)時(shí),此功能可以從根本上改善性能。
它通過(guò)緩存使用的上一個(gè)形狀I(lǐng)D并遞增該值來(lái)分配下一個(gè)形狀I(lǐng)D來(lái)工作。
這樣可以避免在每次需要新的ID時(shí)重復(fù)搜索幻燈片中的所有形狀I(lǐng)D。
對(duì)于形狀相對(duì)較少的幻燈片,性能并未得到明顯改善,
但是由于搜索時(shí)間隨形狀數(shù)的平方增加,
因此此選項(xiàng)對(duì)于優(yōu)化由許多形狀組成的幻燈片的生成可能很有用。
如果使用多個(gè)幻燈片對(duì)象與演示文稿中的同一張幻燈片進(jìn)行交互,
則可能發(fā)生Shape-id碰撞(導(dǎo)致加載時(shí)發(fā)生修復(fù)錯(cuò)誤)。
請(qǐng)注意,每次訪問(wèn)幻燈片時(shí),Slides集合都會(huì)創(chuàng)建一個(gè)新的Slide對(duì)象
例如,slide = prs.slides [0],因此您必須注意將其限制為單個(gè)Slide對(duì)象。

GroupShapes對(duì)象

GroupShapes遇到的對(duì)象是的shapes 屬性GroupShape。
class pptx.shapes.shapetree.GroupShapes
屬于組形狀的子形狀的序列。
請(qǐng)注意,此集合本身可以包含組形狀,從而使該部分成為遞歸樹(shù)數(shù)據(jù)結(jié)構(gòu)(非循環(huán)圖)。

  • add_chart(chart_type,x,y,cx,cy,chart_data )

將新的chart_type圖表添加到幻燈片。
圖表位于(x,y),大小為(cx,cy),并描述了chart_data。
chart_type是XL_CHART_TYPE 枚舉值之一。
chart_data是一個(gè)ChartData對(duì)象,其中填充了圖表的類別和系列值。
請(qǐng)注意,將GraphicFrame返回一個(gè)形狀對(duì)象,
而不是該Chart 圖形框架形狀中包含的對(duì)象。
可以使用chart返回GraphicFrame對(duì)象的屬性 訪問(wèn)圖表對(duì)象。

  • add_connector(connector_type,begin_x,begin_y,end_x,end_y )

將一個(gè)新創(chuàng)建的連接器形狀添加到此形狀樹(shù)的末尾。
connector_type是MSO_CONNECTOR_TYPE 枚舉的成員,并且端點(diǎn)值指定為EMU值。
返回的連接器的類型為connector_type,并且具有指定的起點(diǎn)和終點(diǎn)。

  • add_group_shape(shapes = [] )

返回新附加到此形狀樹(shù)的GroupShape對(duì)象。
組形狀為空,必須使用其形狀樹(shù)上的方法填充形狀,該方法可通過(guò)其.shapes屬性獲得。
組形狀的位置和范圍由其包含的形狀決定;每次添加形狀時(shí)都會(huì)重新計(jì)算其位置和范圍。

  • add_picture(image_file,left,top,width = None,height = None )

在image_file中添加顯示圖片的圖片形狀。
image_file可以是文件(字符串)的路徑,也可以是類似文件的對(duì)象。
圖片的左上角位于(top, left)。如果width和height都為None,則使用圖像的原始大小。
如果僅使用寬度或高度之一,則將計(jì)算未指定的尺寸以保留圖像的縱橫比。
如果同時(shí)指定了兩者,則將其拉伸以適合圖像,而不考慮其原始縱橫比。

  • add_shape(autoshape_type_id,left,top,width,height )

返回附加到此形狀樹(shù)的新形狀對(duì)象。
autoshape_type_id是其成員MSO_AUTO_SHAPE_TYPE
例如 MSO_SHAPE.RECTANGLE要被添加指定形狀的類型。
其余參數(shù)指定新形狀的位置和大小。

  • add_textbox(left,top,width,height )

返回添加到此形狀樹(shù)的新添加的文本框形狀。
文本框具有指定的大小,位于幻燈片上的指定位置。

  • build_freeform(start_x = 0,start_y = 0,scale = 1.0 )

返回FreeformBuilder對(duì)象來(lái)指定一個(gè)freeform形狀。
可選的start_x和start_y參數(shù)指定局部坐標(biāo)中的起始筆位置。
使用前將它們四舍五入到最接近的整數(shù),并且每個(gè)默認(rèn)值都為零。
可選的scale參數(shù)指定與滑動(dòng)坐標(biāo)(EMU)成比例的局部坐標(biāo)的大小。
如果垂直比例尺與水平比例尺不同(局部坐標(biāo)單位為“矩形”),
則可以提供一對(duì)數(shù)值作為 比例尺參數(shù)。例如scale =(1.0,2.0)。
在這種情況下,第一個(gè)數(shù)字解釋為水平(X)比例尺,第二個(gè)數(shù)字解釋為垂直(Y)比例尺。
一種方便的比例尺計(jì)算方法是將Length 對(duì)象除以等效數(shù)量的局部坐標(biāo)單位。
例如, 每英寸1000個(gè)局部單位的比例尺= Inches(1)/ 1000。

  • element

該對(duì)象代理的lxml元素。

  • index(shape)

按此順序返回形狀索引。
如果形狀不在集合中,則引發(fā)ValueError。

  • parent

此對(duì)象的祖先代理對(duì)象。例如,形狀的父級(jí)通常SlideShapes是包含它的對(duì)象。

  • part

包含此對(duì)象的包裝部件

  • turbo_add_enabled

如果啟用了“渦輪添加”模式,則為true。 讀/寫(xiě)。
實(shí)驗(yàn)性:向幻燈片添加大量(數(shù)百種形狀)時(shí),此功能可以從根本上改善性能。
它通過(guò)緩存使用的上一個(gè)形狀I(lǐng)D并遞增該值來(lái)分配下一個(gè)形狀I(lǐng)D來(lái)工作。
這樣可以避免在每次需要新的ID時(shí)重復(fù)搜索幻燈片中的所有形狀I(lǐng)D。
對(duì)于形狀相對(duì)較少的幻燈片,性能并未得到明顯改善,
但是由于搜索時(shí)間隨形狀數(shù)的平方增加,
因此此選項(xiàng)對(duì)于優(yōu)化由許多形狀組成的幻燈片的生成可能很有用。
如果使用多個(gè)幻燈片對(duì)象與演示文稿中的同一張幻燈片進(jìn)行交互,
則可能發(fā)生Shape-id碰撞(導(dǎo)致加載時(shí)發(fā)生修復(fù)錯(cuò)誤)。
請(qǐng)注意,每次訪問(wèn)幻燈片時(shí),Slides集合都會(huì)創(chuàng)建一個(gè)新的Slide對(duì)象
例如,slide = prs.slides [0],因此您必須注意將其限制為單個(gè)Slide對(duì)象。

一般形狀對(duì)象

以下屬性和方法是所有形狀共有的。
class pptx.shapes.base.BaseShape
形狀對(duì)象的基類。
子類包括Shape,Picture,和GraphicFrame。

  • click_action

提供對(duì)單擊行為的訪問(wèn)的Actionset實(shí)例。
單擊行為是類似于超鏈接的行為,包括跳轉(zhuǎn)到超鏈接(web頁(yè)面)或演示文稿中的另一張幻燈片。
單擊操作是在整個(gè)形狀上定義的,而不是在形狀內(nèi)的文本運(yùn)行。
即使在形狀上沒(méi)有定義單擊行為,也總是返回Actionset對(duì)象。

  • element

此形狀的lxml元素,例如 一個(gè)CT_Shape實(shí)例。
注意,不正確地操作這個(gè)元素可能會(huì)生成無(wú)效的演示文稿文件。
如果要使用它更改底層X(jué)ML,請(qǐng)確保您知道自己在做什么。

  • has_chart

如果此形狀是包含圖表對(duì)象的圖形框架,則為true。 否則為假。
如果為T(mén)rue,則可以使用.chart屬性訪問(wèn)圖表對(duì)象。

  • has_table

如果此形狀是包含表格對(duì)象的圖形框架,則為true。 否則為假。
如果為T(mén)rue,則可以使用.table屬性訪問(wèn)表對(duì)象。

  • has_text_frame

True 如果此形狀可以包含文本。

  • height

讀/寫(xiě)。EMU中形狀的頂部和底部范圍之間的整數(shù)距離

  • is_placeholder

如果此形狀是占位符,則為true。如果形狀具有<p:ph>元素,則它是一個(gè)占位符。

  • left

讀/寫(xiě)。此形狀的左邊緣到幻燈片左邊緣的整數(shù)距離,以英制公制單位(EMU)

  • name

形狀的名稱,例如“圖片7”

  • placeholder_format

一個(gè)_PlaceholderFormat對(duì)象,提供對(duì)特定于占位符的屬性(如占位符類型)的訪問(wèn)。如果形狀不是占位符,則在訪問(wèn)時(shí)引發(fā)ValueError。

  • rotation

讀/寫(xiě)浮點(diǎn)數(shù)。順時(shí)針旋轉(zhuǎn)的度數(shù)。可以分配負(fù)值以指示逆時(shí)針旋轉(zhuǎn),例如,分配-45.0會(huì)將設(shè)置更改為315.0。

  • shadow

ShadowFormat 提供訪問(wèn)此形狀陰影的對(duì)象。
一個(gè)ShadowFormat對(duì)象總是返回,即使沒(méi)有影子明確對(duì)這種形狀定義(即它繼承了它的身影行為)。

  • shape_id

標(biāo)識(shí)此形狀的只讀正整數(shù)。
形狀的ID在幻燈片上的所有形狀中都是唯一的。

  • shape_type

標(biāo)識(shí)此形狀類型的唯一整數(shù),例如 MSO_SHAPE_TYPE.CHART。必須由子類實(shí)現(xiàn)。

  • top

讀/寫(xiě)。此形狀的頂部邊緣到幻燈片頂部邊緣的整數(shù)距離,以英制公制單位(EMU)

  • width

讀/寫(xiě)。此形狀左右范圍之間的整數(shù)距離,以英制公制單位(EMU)

Shape對(duì)象(自選圖形)

為自選圖形定義了以下屬性和方法,其中包括文本框和占位符。
class pptx.shapes.autoshape.Shape
可以出現(xiàn)在幻燈片上的形狀。
對(duì)應(yīng)于<p:sp>可以出現(xiàn)在任何幻燈片類型的部分中的元素(slide,slideLayout,slideMaster,notesPage,notesMaster,handoutMaster)。

  • adjustments

AdjustmentCollection對(duì)此實(shí)例的只讀引用

  • auto_shape_type

標(biāo)識(shí)此自動(dòng)形狀類型的枚舉值,例如 MSO_SHAPE.ROUNDED_RECTANGLE。
如果此形狀不是自動(dòng)形狀,則引發(fā)ValueError。

  • fill

FillFormat 此形狀的實(shí)例,提供對(duì)填充屬性(例如填充顏色)的訪問(wèn)。

  • has_text_frame

True如果此形狀可以包含文本。始終True是自選圖形。

  • line

LineFormat 該形狀的實(shí)例,提供對(duì)線屬性(如線顏色)的訪問(wèn)。

  • shape_type

標(biāo)識(shí)此形狀類型的唯一整數(shù),例如 MSO_SHAPE_TYPE.TEXT_BOX。

  • text

讀/寫(xiě)。形狀文本的Unicode(在Python 3中為str)表示形式。
返回的字符串將包含換行符("\n"),分隔每個(gè)段落,
并在圖形的文本中為每個(gè)換行符(軟回車)提供一個(gè)豎向制表符("\v")。
分配給文本將替換形狀中先前包含的所有文本,
以及應(yīng)用于該形狀的任何段落或字體格式。
分配的文本中的換行符("\n")導(dǎo)致新段落開(kāi)始。
分配的文本中的豎線("\v")字符會(huì)導(dǎo)致插入換行符(軟回車)。
(垂直制表符顯示在從PowerPoint復(fù)制的剪貼板文本中,作為其換行符的編碼。)
可以分配字節(jié)(Python 2 str)或unicode(Python 3 str)。
字節(jié)可以是7位ASCII或UTF-8編碼的8位字節(jié)。
假定采用UTF-8編碼(也適用于ASCII),則將字節(jié)值轉(zhuǎn)換為unicode。

  • text_frame

TextFrame 這種形狀的實(shí)例。
包含形狀的文本,并提供對(duì)文本格式設(shè)置屬性的訪問(wèn)。

AdjustmentCollection對(duì)象

自選圖形的獨(dú)特之處在于它可以進(jìn)行調(diào)整,在PowerPoint用戶界面中以小黃色菱形表示,
每個(gè)菱形均允許調(diào)整形狀參數(shù)(例如箭頭的角度)。
該AdjustmentCollection對(duì)象保存用于AutoShape的這些調(diào)整值,
每個(gè)調(diào)整值都是一個(gè)Adjustment實(shí)例。
AdjustmentCollection使用Shape.adjustments屬性(只讀)訪問(wèn)AutoShape 的實(shí)例 。
class pptx.shapes.autoshape.AdjustmentCollection(prstGeom )
Adjustment自動(dòng)形狀的實(shí)例序列,每個(gè)實(shí)例代表其形狀的可用調(diào)整。
支持len()和索引訪問(wèn),例如。shape.adjustments[1] = 0.15

Adjustment對(duì)象

class pptx.shapes.autoshape.Adjustment(name,def_val,actual = None )
自動(dòng)調(diào)整形狀的調(diào)整值。調(diào)整值對(duì)應(yīng)于自動(dòng)形狀上調(diào)整手柄的位置。
調(diào)整手柄是出現(xiàn)在某些自動(dòng)形狀上的黃色菱形小手柄,可以調(diào)整形狀的輪廓。
例如,一個(gè)圓角矩形具有一個(gè)調(diào)整手柄,可以調(diào)整其圓角倒角的半徑。
值float通常為0.0到1.0,盡管在某些情況下該值可以為負(fù)或大于1.0。

  • effective_value

讀/寫(xiě)float表示此調(diào)整的標(biāo)準(zhǔn)化調(diào)整值。實(shí)際值是一個(gè)大的整數(shù),用形狀坐標(biāo)表示,
名義上在0到100,000之間。有效值被標(biāo)準(zhǔn)化為名義上介于0.0和1.0之間的相應(yīng)值。
從直覺(jué)上講,它表示形狀的寬度或高度的比例,調(diào)整值從其起點(diǎn)開(kāi)始位于該位置。
對(duì)于簡(jiǎn)單的形狀(例如圓角矩形),此直觀的對(duì)應(yīng)關(guān)系成立。
對(duì)于更復(fù)雜的形狀和更極端的形狀比例(例如,寬度遠(yuǎn)大于高度),該值可以變?yōu)樨?fù)數(shù)或大于1.0。

  • val

非規(guī)格化的有效值(以形狀坐標(biāo)表示),適合在XML中使用。

Connector對(duì)象

為連接器形狀定義了以下屬性和方法:
class pptx.shapes.connector.Connector
連接器(線)的形狀。
連接器為線性形狀,其端點(diǎn)可以連接到其他對(duì)象(但不能連接到其他連接器)。
連接器可以是直的,有彎頭的,也可以是彎曲的。

  • begin_connect(shape,cxn_pt_idx )

實(shí)驗(yàn) - 當(dāng)前的實(shí)現(xiàn)僅適用于矩形形狀,例如圖片和矩形。
與其他形狀類型一起使用時(shí),如果cxn_pt_idx超出了所連接形狀上可用的連接點(diǎn)數(shù)量,
則可能導(dǎo)致所連接端點(diǎn)的視覺(jué)外觀意外對(duì)齊,并可能導(dǎo)致加載錯(cuò)誤。
就是說(shuō),快速測(cè)試應(yīng)該可以揭示將這種方法與其他形狀類型一起使用時(shí)的預(yù)期結(jié)果。
將此連接器的起點(diǎn)連接到cxn_pt_idx指定的連接點(diǎn)處的形狀。
每個(gè)形狀都有零個(gè)或多個(gè)連接點(diǎn),并通過(guò)索引(從0開(kāi)始)進(jìn)行標(biāo)識(shí)。
通常,形狀的第一個(gè)連接點(diǎn)位于其邊界框的頂部中心,并且從那里開(kāi)始逆時(shí)針編號(hào)。
但是,這只是一個(gè)約定,可能會(huì)有所不同,尤其是對(duì)于非內(nèi)置形狀。

  • begin_x

以英制公制單位(作為L(zhǎng)ength對(duì)象)返回此連接器起點(diǎn)的X位置。

  • begin_y

以英制公制單位(作為L(zhǎng)ength對(duì)象)返回此連接器起點(diǎn)的Y位置。

  • end_connect(shape,cxn_pt_idx )

實(shí)驗(yàn) - 當(dāng)前的實(shí)現(xiàn)僅適用于矩形形狀,例如圖片和矩形。
與其他形狀類型一起使用時(shí),如果cxn_pt_idx超出了所連接形狀上可用的連接點(diǎn)數(shù)量,
則可能導(dǎo)致所連接端點(diǎn)的視覺(jué)外觀意外對(duì)齊,并可能導(dǎo)致加載錯(cuò)誤。
就是說(shuō),快速測(cè)試應(yīng)該可以揭示將這種方法與其他形狀類型一起使用時(shí)的預(yù)期結(jié)果。
將此連接器的末端連接到cxn_pt_idx指定的連接點(diǎn)處的形狀。

  • end_x

以英制公制單位(作為L(zhǎng)ength對(duì)象)返回此連接器端點(diǎn)的X位置。

  • end_y

以英制公制單位(作為L(zhǎng)ength對(duì)象)返回此連接器端點(diǎn)的Y位置。

  • line

LineFormat 該連接器的實(shí)例。
提供對(duì)線條屬性的訪問(wèn),例如線條顏色,寬度和線條樣式。

FreeformBuilder對(duì)象

為FreeformBuilder對(duì)象定義了以下屬性和方法。自由格式生成器用于創(chuàng)建具有自定義幾何形狀的形狀:
class pptx.shapes.freeform.FreeformBuilder
允許指定和創(chuàng)建自由形狀。
初始筆位置在結(jié)構(gòu)上提供。從那里開(kāi)始,使用連續(xù)的調(diào)用進(jìn)行繪制以繪制線段。
可以通過(guò)調(diào)用該close()方法來(lái)關(guān)閉自由形狀。
形狀可以具有多個(gè)輪廓,在這種情況下,“減去”重疊區(qū)域。輪廓是從“移至”操作開(kāi)始的一系列線段。
移動(dòng)到的操作會(huì)自動(dòng)插入到每個(gè)新的自由格式中??梢允褂?move_to()方法插入其他移動(dòng) 對(duì)象。

  • add_line_segments(頂點(diǎn),close = True )

在頂點(diǎn)的每個(gè)點(diǎn)上添加一條直線段。
頂點(diǎn)必須是(x,y)對(duì)(2元組)的可迭代對(duì)象。
使用前,每個(gè)x和y值均四舍五入為最接近的整數(shù)。
可選的 close參數(shù)確定生成的輪廓是 閉合的還是保持打開(kāi)狀態(tài)。
返回此FreeformBuilder對(duì)象,以便可以在鏈接調(diào)用中使用。

  • convert_to_shape(origin_x = 0,origin_y = 0 )

返回相對(duì)于指定偏移量定位的新自由形狀。
origin_x和origin_y可能通過(guò)使用Length對(duì)象在滑動(dòng)坐標(biāo)(EMU)中定位局部坐標(biāo)系的原點(diǎn)。
請(qǐng)注意,可以多次調(diào)用此方法,以在幻燈片的不同位置添加相同幾何形狀的多個(gè)形狀。

  • move_to(x,y )

將筆移到(x,y)(局部坐標(biāo))而不畫(huà)線。
返回此FreeformBuilder對(duì)象,以便可以在鏈接調(diào)用中使用。

Picture對(duì)象

為圖片形狀定義了以下屬性和方法。
class pptx.shapes.picture.Picture
圖片形狀,將圖像放置在幻燈片上的形狀。
基于p:pic元素。

  • click_action

提供對(duì)單擊行為的訪問(wèn)的Actionset實(shí)例。
單擊行為是類似于超鏈接的行為,包括跳轉(zhuǎn)到超鏈接(web頁(yè)面)或演示文稿中的另一張幻燈片。
單擊操作是在整個(gè)形狀上定義的,而不是在形狀內(nèi)的文本運(yùn)行。
即使在形狀上沒(méi)有定義單擊行為,也總是返回Actionset對(duì)象。

  • crop_bottom

float 表示從形狀底部裁剪的相對(duì)部分。
讀/寫(xiě)。1.0代表100%。例如,25%用0.25表示。負(fù)值和大于1.0的值都是有效的。

  • crop_left

float 表示從形狀左側(cè)裁剪的相對(duì)部分。
讀/寫(xiě)。1.0代表100%。負(fù)值將邊延伸到圖像邊界之外。

  • crop_right

float 表示從形狀右側(cè)裁剪的相對(duì)部分。
讀/寫(xiě)。1.0代表100%。

  • crop_top

float 表示從形狀頂部裁剪的相對(duì)部分。
讀/寫(xiě)。1.0代表100%。

  • element

此形狀的lxml元素,例如CT_Shape實(shí)例。
請(qǐng)注意,不當(dāng)操作此元素可能會(huì)生成無(wú)效的演示文稿文件。如果使用它來(lái)更改基礎(chǔ)XML,請(qǐng)確保您知道自己在做什么。

  • has_chart

如果此形狀是包含圖表對(duì)象的圖形框架,則為true。 否則為假。
如果為T(mén)rue,則可以使用.chart屬性訪問(wèn)圖表對(duì)象。

  • has_table

如果此形狀是包含表格對(duì)象的圖形框架,則為true。 否則為假。
如果為T(mén)rue,則可以使用.table屬性訪問(wèn)表對(duì)象。

  • has_text_frame

True 如果此形狀可以包含文本。

  • height

讀/寫(xiě)。EMU中形狀的頂部和底部范圍之間的整數(shù)距離

  • is_placeholder

如果此形狀是占位符,則為true。如果形狀具有<p:ph>元素,則它是一個(gè)占位符。

  • left

讀/寫(xiě)。此形狀的左邊緣到幻燈片左邊緣的整數(shù)距離,以英制公制單位(EMU)

  • line

此形狀的LineFormat實(shí)例,提供對(duì)線屬性(如線顏色)的訪問(wèn)。

  • name

形狀的名稱,例如“圖片7”

  • part

包含此形狀的包裝部件。
一個(gè)BaseSlidePart在這種情況下,子類。僅當(dāng)您擴(kuò)展python-pptx API對(duì)象的行為時(shí),才需要訪問(wèn)幻燈片部分。

  • placeholder_format

一個(gè)_PlaceholderFormat對(duì)象,提供對(duì)特定于占位符的屬性(如占位符類型)的訪問(wèn)。如果形狀不是占位符,則在訪問(wèn)時(shí)引發(fā)ValueError。

  • rotation

讀/寫(xiě)浮點(diǎn)數(shù)。順時(shí)針旋轉(zhuǎn)的度數(shù)??梢苑峙湄?fù)值以指示逆時(shí)針旋轉(zhuǎn),例如,分配-45.0會(huì)將設(shè)置更改為315.0。

  • shadow

ShadowFormat 提供訪問(wèn)此形狀陰影的對(duì)象。
一個(gè)ShadowFormat對(duì)象總是返回,即使沒(méi)有影子明確對(duì)這種形狀定義(即它繼承了它的身影行為)。

  • shape_id

標(biāo)識(shí)此形狀的只讀正整數(shù)。
形狀的ID在幻燈片上的所有形狀中都是唯一的。

  • top

讀/寫(xiě)。此形狀的頂部邊緣到幻燈片頂部邊緣的整數(shù)距離,以英制公制單位(EMU)

  • width

讀/寫(xiě)。EMU中左右形狀范圍之間的整數(shù)距離

  • auto_shape_type

MSO_SHAPE的成員,指示遮罩形狀。
PowerPoint中可用的任何所謂的“自動(dòng)形狀”(例如橢圓形或三角形)都可以掩蓋圖片。當(dāng)圖片被形狀遮蓋時(shí),該形狀采用與圖片相同的尺寸,并且不會(huì)出現(xiàn)圖片超出形狀邊界的部分。請(qǐng)注意,新插入圖片的默認(rèn)值為MSO_AUTO_SHAPE_TYPE.RECTANGLE,由于矩形的范圍與圖片的范圍完全對(duì)應(yīng),因此不會(huì)進(jìn)行裁剪。
可用的形狀對(duì)應(yīng)于MSO_AUTO_SHAPE_TYPE的成員 。
返回值也可以是None,表示圖片沒(méi)有幾何形狀(不期望)或具有自定義幾何形狀(如自由形狀)。盡管沒(méi)有幾何圖形,但是可以選擇,但幻燈片上沒(méi)有可見(jiàn)的圖像。這是因?yàn)闆](méi)有幾何形狀,就不會(huì)出現(xiàn)“內(nèi)部形狀”。

  • image

一個(gè)Image對(duì)象,可以訪問(wèn)此圖片形狀中的圖像的屬性和字節(jié)。

  • shape_type

MSO_SHAPE_TYPE.PICTURE在這種情況下,無(wú)條件地標(biāo)識(shí)此形狀類型的唯一整數(shù) 。

GraphicFrame對(duì)象

為圖形框架形狀定義了以下屬性和方法。圖形框架是包含表格,圖表或智能藝術(shù)品的形狀。

class pptx.shapes.graphfrm.GraphicFrame
基數(shù): pptx.shapes.base.BaseShape
表格,圖表,智能藝術(shù)品和媒體對(duì)象的容器形狀。
對(duì)應(yīng)<p:graphicFrame>于形狀樹(shù)中的一個(gè)元素。

  • chart

Chart在此圖形框架中包含圖表的對(duì)象。如果此圖形框架不包含圖表,則引發(fā)ValueError 。

  • click_action

提供對(duì)單擊行為的訪問(wèn)的Actionset實(shí)例。
單擊行為是類似于超鏈接的行為,包括跳轉(zhuǎn)到超鏈接(web頁(yè)面)或演示文稿中的另一張幻燈片。
單擊操作是在整個(gè)形狀上定義的,而不是在形狀內(nèi)的文本運(yùn)行。

即使在形狀上沒(méi)有定義單擊行為,也總是返回Actionset對(duì)象。

  • element

此形狀的lxml元素,例如CT_Shape實(shí)例。
請(qǐng)注意,不當(dāng)操作此元素可能會(huì)生成無(wú)效的演示文稿文件。如果使用它來(lái)更改基礎(chǔ)XML,請(qǐng)確保您知道自己在做什么。

  • has_chart

如果此形狀是包含圖表對(duì)象的圖形框架,則為true。 否則為假。
如果為T(mén)rue,則可以使用.chart屬性訪問(wèn)圖表對(duì)象。

  • has_table

如果此形狀是包含表格對(duì)象的圖形框架,則為true。 否則為假。
如果為T(mén)rue,則可以使用.table屬性訪問(wèn)表對(duì)象。

  • height

讀/寫(xiě)。EMU中形狀的頂部和底部范圍之間的整數(shù)距離

  • left

讀/寫(xiě)。此形狀的左邊緣到幻燈片左邊緣的整數(shù)距離,以英制公制單位(EMU)

  • name

形狀的名稱,例如“圖片7”

  • rotation

讀/寫(xiě)浮點(diǎn)數(shù)。順時(shí)針旋轉(zhuǎn)的度數(shù)。可以分配負(fù)值以指示逆時(shí)針旋轉(zhuǎn),例如,分配-45.0會(huì)將設(shè)置更改為315.0。

  • shadow

無(wú)條件加薪NotImplementedError。
圖形框架對(duì)象對(duì)陰影效果的訪問(wèn)是特定于內(nèi)容的(即,對(duì)于圖表,表格等而言是不同的),并且尚未實(shí)現(xiàn)。

  • shape_id

標(biāo)識(shí)此形狀的只讀正整數(shù)。
形狀的ID在幻燈片上的所有形狀中都是唯一的。

  • table

Table此圖形框中包含的對(duì)象。如果此圖形框架不包含表格,則引發(fā)ValueError 。

  • top

讀/寫(xiě)。此形狀的頂部邊緣到幻燈片頂部邊緣的整數(shù)距離,以英制公制單位(EMU)

  • width

讀/寫(xiě)。EMU中左右形狀范圍之間的整數(shù)距離

GroupShape對(duì)象

為組形狀定義了以下屬性和方法。組形狀充當(dāng)其他形狀的容器。
注意:
組形狀沒(méi)有文本框架,也不能有一個(gè)。
組形狀不能具有單擊操作,例如超鏈接。
class pptx.shapes.group.GroupShape
基數(shù): pptx.shapes.base.BaseShape
充當(dāng)其他形狀的容器的形狀。

  • click_action

無(wú)條件引發(fā)TypeError。
組形狀不能具有單擊動(dòng)作或懸停動(dòng)作。

  • element

此形狀的lxml元素,例如CT_Shape實(shí)例。
請(qǐng)注意,不當(dāng)操作此元素可能會(huì)生成無(wú)效的演示文稿文件。如果使用它來(lái)更改基礎(chǔ)XML,請(qǐng)確保您知道自己在做什么。

  • has_text_frame

無(wú)條件的False。
組形狀沒(méi)有文本框,并且本身不能包含文本。這不會(huì)影響組包含的形狀各自具有自己的文本的能力。

  • height

讀/寫(xiě)。EMU中形狀的頂部和底部范圍之間的整數(shù)距離

  • left

讀/寫(xiě)。此形狀的左邊緣到幻燈片左邊緣的整數(shù)距離,以英制公制單位(EMU)

  • name

形狀的名稱,例如“圖片7”

  • part

包含此形狀的包裝部件。
一個(gè)BaseSlidePart在這種情況下,子類。僅當(dāng)您擴(kuò)展python-pptx API對(duì)象的行為時(shí),才需要訪問(wèn)幻燈片部分。

  • rotation

讀/寫(xiě)浮點(diǎn)數(shù)。順時(shí)針旋轉(zhuǎn)的度數(shù)??梢苑峙湄?fù)值以指示逆時(shí)針旋轉(zhuǎn),例如,分配-45.0會(huì)將設(shè)置更改為315.0。

  • shadow

ShadowFormat 代表此組陰影效果的對(duì)象。
甲ShadowFormat對(duì)象總是返回,即使當(dāng)沒(méi)有陰影明確地在此組的形狀(即,當(dāng)組繼承其影子的行為)所定義。

  • shape_id

標(biāo)識(shí)此形狀的只讀正整數(shù)。
形狀的ID在幻燈片上的所有形狀中都是唯一的。

  • shape_type

MSO_SHAPE_TYPE的成員,用于標(biāo)識(shí)此形狀的類型。
在這種情況下,無(wú)條件MSO_SHAPE_TYPE.GROUP

  • shapes

GroupShapes 該組的對(duì)象。
該GroupShapes對(duì)象提供對(duì)組成員形狀的訪問(wèn),并提供添加新形狀的方法。

  • top

讀/寫(xiě)。此形狀的頂部邊緣到幻燈片頂部邊緣的整數(shù)距離,以英制公制單位(EMU)

  • width

讀/寫(xiě)。EMU中左右形狀范圍之間的整數(shù)距離

Note

# !/usr/bin/python
# coding:utf-8
from pptx import Presentation

# 加載一個(gè)ppt文件
prs = Presentation('pptx/zf.pptx')

# 使用Presentation的slides屬性訪問(wèn)slides對(duì)象
slides = prs.slides

# 返回通過(guò)索引slides中的第三個(gè)對(duì)象
slide = slides[3]

# 返回包含出現(xiàn)在此幻燈片上的形狀對(duì)象序列的幻燈片幻燈片實(shí)例。
shapes = slide.shapes

from pptx.enum.chart import XL_CHART_TYPE
from pptx.util import Inches
from pptx.chart.data import ChartData
# 按英尺標(biāo)準(zhǔn)指定x,y值
x, y, cx, cy = Inches(0.5), Inches(1), Inches(4), Inches(3)  
# 圖表data類 
chart_data = ChartData()
# 圖表加入兩欄
chart_data.categories = [u'A班級(jí)得分率', u'B班級(jí)得分率']  
# 在兩欄分別填入數(shù)據(jù)
chart_data.add_series(u'得分率對(duì)比', (80.5, 60.5))  
# 將新的chart_type圖表添加到幻燈片。
# add_chart(圖表類型,x、y表示圖表位置,cx、cy表示圖表寬高,并且插入chart_data中規(guī)定好的數(shù)據(jù))
# 注意,返回的是GraphicFrame形狀對(duì)象,而不是該圖形框架形狀中包含的圖表對(duì)象。
# 可以使用返回的GraphicFrame對(duì)象的chart屬性訪問(wèn)圖表對(duì)象。
add_chart = shapes.add_chart(
    XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data
)  

from pptx.enum.shapes import MSO_CONNECTOR
from pptx.util import Cm
# 將一個(gè)新創(chuàng)建的連接器形狀添加到此形狀樹(shù)的末尾。
# connector_type是MSO_CONNECTOR_TYPE 枚舉的成員,并且端點(diǎn)值指定為EMU值。
# 返回的連接器的類型為connector_type,并且具有指定的起點(diǎn)和終點(diǎn)。
add_connector = shapes.add_connector(
    MSO_CONNECTOR.STRAIGHT, Cm(2), Cm(2), Cm(10), Cm(10)
)

# 返回GroupShape新添加到此形狀樹(shù)的對(duì)象。
# 組形狀為空,必須使用其形狀樹(shù)上的方法填充形狀,該方法可通過(guò)其.shapes屬性獲得。
# 組形狀的位置和范圍由其包含的形狀決定;每次添加形狀時(shí)都會(huì)重新計(jì)算其位置和范圍。
add_group_shape = shapes.add_group_shape(shapes = [])

# 視頻文件路徑
movie_file = 'movie/1571365443211539.mp4'
# 預(yù)設(shè)位置及大小
left,top,width,height = Inches(5), Inches(1), Inches(4), Inches(3)  
# 海報(bào)框架圖像,不能從視頻文件中自動(dòng)提取它。如果未提供海報(bào)框,則將使用默認(rèn)的“媒體揚(yáng)聲器”圖像。
poster_frame_image = 'image/bg2.jpg'
# 指定視頻文件的MIME類型,例如“ video / mp4”。
# 所提供的視頻文件的類型不會(huì)被詢問(wèn)。缺省情況下,使用MIME類型video / unknown。
mime_type = 'video / mp4'
# 返回在movie_file中顯示視頻的新添加的電影形狀。
# 實(shí)驗(yàn)性的。此方法有重要限制:
# 必須指定大??;不add_picture()執(zhí)行諸如提供的自動(dòng)縮放。
# 應(yīng)指定視頻文件的MIME類型,例如“ video / mp4”。所提供的視頻文件的類型不會(huì)被詢問(wèn)。
# 缺省情況下,使用MIME類型video / unknown。
# 必須提供海報(bào)框架圖像,不能從視頻文件中自動(dòng)提取它。如果未提供海報(bào)框,則將使用默認(rèn)的“媒體揚(yáng)聲器”圖像。
# 將新添加的影片形狀返回到幻燈片,位于(左側(cè), 頂部),大小(寬度,高度)并包含movie_file。
# 在視頻開(kāi)始播放之前,poster_frame_image將顯示為視頻的占位符。
add_movie = shapes.add_movie(
    movie_file,left,top,width,height,poster_frame_image,mime_type
)

# 圖片文件路徑
image_file = 'image/bg1.jpg'
# 預(yù)設(shè)位置及大小
left,top,width,height = Inches(0.5), Inches(4), Inches(4), Inches(3) 
# 在image_file中添加顯示圖片的圖片形狀。
# image_file可以是文件(字符串)的路徑,也可以是類似文件的對(duì)象。圖片的左上角位于(top, left)。
# 如果width和height都為None,則使用圖像的原始大小。
# 如果僅使用寬度或高度之一,則將計(jì)算未指定的尺寸以保留圖像的縱橫比。
# 如果同時(shí)指定了兩者,則將其拉伸以適合圖像,而不考慮其原始縱橫比。
add_picture = shapes.add_picture(
    image_file,left,top,width,height
)

from pptx.enum.shapes import MSO_SHAPE
# autoshape_type_id是其成員MSO_AUTO_SHAPE_TYPE要被添加指定形狀的類型
# 例如 MSO_SHAPE.RECTANGLE
autoshape_type_id = MSO_SHAPE.CHEVRON
# 預(yù)設(shè)位置及大小
left,top,width,height = Inches(5), Inches(4), Inches(4), Inches(3) 
# 返返回Shape附加到此形狀樹(shù)的新對(duì)象。
add_shape = shapes.add_shape(
    autoshape_type_id,left,top,width,height
)

# 返回通過(guò)索引slides中的第四個(gè)對(duì)象
slide = slides[4]

# 返回包含出現(xiàn)在此幻燈片上的形狀對(duì)象序列的幻燈片幻燈片實(shí)例。
shapes = slide.shapes

# 表格的行列
rows,cols = 3,5
# 預(yù)設(shè)位置及大小
left,top,width,height = Inches(0.5), Inches(1), Inches(4), Inches(3) 
# 添加一個(gè)GraphicFrame對(duì)象,其中包含一個(gè)具有指定行數(shù)和cols以及指定位置和大小的表。
# 寬度均勻地分布在新表的列之間。同樣地,高度均勻地分布在行之間。
# 請(qǐng)注意,必須使用返回的GraphicFrame形狀上的.table屬性來(lái)訪問(wèn)所包含的表對(duì)象。 
add_table = shapes.add_table(
    rows,cols,left,top,width,height 
)

# 預(yù)設(shè)位置及大小
left,top,width,height = Inches(5), Inches(1), Inches(4), Inches(3) 
add_textbox = shapes.add_textbox(
    left,top,width,height 
)

# 可選的start_x和start_y參數(shù)指定局部坐標(biāo)中的起始筆位置。
# 使用前將它們四舍五入到最接近的整數(shù),并且每個(gè)默認(rèn)值都為零。
start_x,start_y = 100,200
# 可選的scale參數(shù)指定了與滑動(dòng)坐標(biāo)(EMU)成比例的局部坐標(biāo)的大小。
# 如果垂直比例尺不同于水平比例尺(局部坐標(biāo)單位為“矩形”),可以提供一對(duì)數(shù)值作為scale參數(shù),例如scale=(1.0, 2.0)。
# 在這種情況下,第一個(gè)數(shù)字被解釋為水平(X)刻度,第二個(gè)數(shù)字被解釋為垂直(Y)刻度。
# 計(jì)算比例的一個(gè)方便的方法是用一個(gè)長(zhǎng)度對(duì)象除以一個(gè)等價(jià)的局部坐標(biāo)單位,例如比例=英寸(1)/1000,對(duì)應(yīng)1000個(gè)局部單位每英寸。
scale = (1.0,2.0)
# 返回FreeformBuilder對(duì)象來(lái)指定一個(gè)freeform形狀。
build_freeform = shapes.build_freeform(
    start_x,start_y,scale
)

# 返回該對(duì)象代理的lxml元素。
element = shapes.element

# 遍歷shapes
for shape in shapes:
    
    # 按此順序返回形狀索引。
    # 如果形狀不在集合中,則引發(fā)ValueError。
    index = shapes.index(shape)

    pass

# 返回此對(duì)象的祖先代理對(duì)象
parent = shapes.parent

# 返回包含此對(duì)象的包裝部件
part = shapes.part

# 返回幻燈片中包含占位符形狀序列的slideplaceholder實(shí)例。
placeholders = shapes.placeholders

# 返回幻燈片上的標(biāo)題占位符形狀,如果幻燈片沒(méi)有標(biāo)題占位符,則為None。
title = shapes.title

# 如果啟用了“渦輪添加”模式,則為true。 讀/寫(xiě)。
# 實(shí)驗(yàn)性:向幻燈片添加大量(數(shù)百種形狀)時(shí),此功能可以從根本上改善性能。 
# 它通過(guò)緩存使用的上一個(gè)形狀I(lǐng)D并遞增該值來(lái)分配下一個(gè)形狀I(lǐng)D來(lái)工作。 
# 這樣可以避免在每次需要新的ID時(shí)重復(fù)搜索幻燈片中的所有形狀I(lǐng)D。
# 對(duì)于形狀相對(duì)較少的幻燈片,性能并未得到明顯改善,
# 但是由于搜索時(shí)間隨形狀數(shù)的平方增加,
# 因此此選項(xiàng)對(duì)于優(yōu)化由許多形狀組成的幻燈片的生成可能很有用。
# 如果使用多個(gè)幻燈片對(duì)象與演示文稿中的同一張幻燈片進(jìn)行交互,
# 則可能發(fā)生Shape-id碰撞(導(dǎo)致加載時(shí)發(fā)生修復(fù)錯(cuò)誤)。 
# 請(qǐng)注意,每次訪問(wèn)幻燈片時(shí),Slides集合都會(huì)創(chuàng)建一個(gè)新的Slide對(duì)象
# 例如,slide = prs.slides [0],因此您必須注意將其限制為單個(gè)Slide對(duì)象。
turbo_add_enabled = shapes.turbo_add_enabled

# ActionSetting 提供對(duì)點(diǎn)擊行為的訪問(wèn)權(quán)限的實(shí)例。
# 單擊行為是類似于超鏈接的行為,包括跳轉(zhuǎn)到超鏈接(網(wǎng)頁(yè))或演示文稿中的另一張幻燈片。
# 單擊動(dòng)作是在整體形狀上定義的動(dòng)作,而不是形狀內(nèi)的一連串文字。一個(gè)ActionSetting對(duì)象總是返回,即使沒(méi)有點(diǎn)擊行為的形狀定義。
click_action = shape.click_action

# 此形狀的lxml元素,例如CT_Shape實(shí)例。
# 請(qǐng)注意,不當(dāng)操作此元素可能會(huì)生成無(wú)效的演示文稿文件。
# 如果使用它來(lái)更改基礎(chǔ)XML,請(qǐng)確保您知道自己在做什么。
element = shape.element

# 如果此形狀是包含圖表對(duì)象的圖形框架,則為T(mén)rue。否則False。
# 如果為T(mén)rue,則可以使用.chart屬性訪問(wèn)圖表對(duì)象。
has_chart = shape.has_chart

# 如果此形狀是包含表對(duì)象的圖形框架,則為T(mén)rue。否則False。
# 為T(mén)rue時(shí),可以使用.table屬性訪問(wèn)表對(duì)象。
has_table =  shape.has_table

# 如果此形狀可以包含文本,則為真。
has_text_frame = shape.has_text_frame

# 讀/寫(xiě)。EMU中形狀的頂部和底部范圍之間的整數(shù)距離
shape.height = 2743100
height = shape.height

# 如果此形狀是占位符,則為true。如果形狀具有<p:ph>元素,則它是一個(gè)占位符。
is_placeholder = shape.is_placeholder

# 讀/寫(xiě)。此形狀的左邊緣到幻燈片左邊緣的整數(shù)距離,以英制公制單位(EMU)
shape.left = 4571000
left = shape.left

# 形狀的名稱,例如“圖片7”
name = shape.name

# 一個(gè)_PlaceholderFormat對(duì)象,提供對(duì)特定于占位符的屬性(如占位符類型)的訪問(wèn)。
# 如果形狀不是占位符,則在訪問(wèn)時(shí)引發(fā)ValueError。
# placeholder_format = shape.placeholder_format

# 讀/寫(xiě)浮點(diǎn)數(shù)。順時(shí)針旋轉(zhuǎn)的度數(shù)。
# 可以分配負(fù)值以指示逆時(shí)針旋轉(zhuǎn),例如,分配-45.0會(huì)將設(shè)置更改為315.0。
shape.rotation = -45.0
rotation = shape.rotation

# ShadowFormat 提供訪問(wèn)此形狀陰影的對(duì)象。
# 一個(gè)ShadowFormat對(duì)象總是返回,即使沒(méi)有影子明確對(duì)這種形狀定義(即它繼承了它的身影行為)。
shadow = shape.shadow

# 標(biāo)識(shí)此形狀的只讀正整數(shù)。
# 形狀的ID在幻燈片上的所有形狀中都是唯一的。
shape_id = shape.shape_id

# 標(biāo)識(shí)此形狀類型的唯一整數(shù),例如 MSO_SHAPE_TYPE.CHART。必須由子類實(shí)現(xiàn)。
shape_type = shape.shape_type

# 讀/寫(xiě)。此形狀的頂部邊緣到幻燈片頂部邊緣的整數(shù)距離,以英制公制單位(EMU)
shape.top = 914300
top = shape.top

# 讀/寫(xiě)。EMU中左右形狀區(qū)段之間的整數(shù)距離
shape.width = 3657500
width = shape.width

# AdjustmentCollection對(duì)此實(shí)例的只讀引用
adjustments = shape.adjustments

# 標(biāo)識(shí)此自動(dòng)形狀類型的枚舉值,例如 MSO_SHAPE.ROUNDED_RECTANGLE。
# 如果此形狀不是自動(dòng)形狀,則引發(fā)ValueError。
# auto_shape_type = shape.auto_shape_type

# 此形狀的FillFormat實(shí)例,提供對(duì)填充屬性(如填充顏色)的訪問(wèn)。
fill = shape.fill

# 如果此形狀可以包含文本,則為T(mén)rue。對(duì)于自動(dòng)生成總是正確的。
has_text_frame = shape.has_text_frame

# 此形狀的LineFormat實(shí)例,提供對(duì)線屬性(如線顏色)的訪問(wèn)。
line = shape.line

# 標(biāo)識(shí)此形狀類型的唯一整數(shù),例如 MSO_SHAPE_TYPE.TEXT_BOX。
shape_type = shape.shape_type

# 讀/寫(xiě)。形狀文本的Unicode (python3中的str)表示。
# 返回的字符串將包含一個(gè)換行符(“\n”)來(lái)分隔每個(gè)段落,并為形狀的文本中的每個(gè)換行符(軟回車)使用一個(gè)垂直制表符(“\v”)。
# 文本賦值將替換形狀中先前包含的所有文本以及應(yīng)用于其上的任何段落或字體格式。
# 指定文本中的換行字符(“\n”)將導(dǎo)致開(kāi)始一個(gè)新段落。指定文本中的垂直制表符(“\v”)將導(dǎo)致插入換行符(軟載波返回)。
# (垂直制表符作為換行編碼出現(xiàn)在從PowerPoint復(fù)制的剪貼板文本中。)
# 可以分配字節(jié)(python2str)或unicode (python3str)。
# 字節(jié)可以是7位ASCII或UTF-8編碼的8位字節(jié)。
# 假設(shè)采用UTF-8編碼(這也適用于ASCII),則將字節(jié)值轉(zhuǎn)換為unicode。
shape.text = 'HaI\'s text(中文)'
text = shape.text

# 此形狀的TextFrame實(shí)例。
# 包含形狀的文本,并提供對(duì)文本格式設(shè)置屬性的訪問(wèn)。
text_frame = shape.text_frame


# 實(shí)驗(yàn) - 當(dāng)前的實(shí)現(xiàn)僅適用于矩形形狀,例如圖片和矩形。
# 與其他形狀類型一起使用時(shí),如果cxn_pt_idx超出了所連接形狀上可用的連接點(diǎn)數(shù)量,
# 則可能導(dǎo)致所連接端點(diǎn)的視覺(jué)外觀意外對(duì)齊,并可能導(dǎo)致加載錯(cuò)誤。
# 就是說(shuō),快速測(cè)試應(yīng)該可以揭示將這種方法與其他形狀類型一起使用時(shí)的預(yù)期結(jié)果。
# 將此連接器的起點(diǎn)連接到cxn_pt_idx指定的連接點(diǎn)處的形狀。
# 每個(gè)形狀都有零個(gè)或多個(gè)連接點(diǎn),并通過(guò)索引(從0開(kāi)始)進(jìn)行標(biāo)識(shí)。
# 通常,形狀的第一個(gè)連接點(diǎn)位于其邊界框的頂部中心,并且從那里開(kāi)始逆時(shí)針編號(hào)。
# 但是,這只是一個(gè)約定,可能會(huì)有所不同,尤其是對(duì)于非內(nèi)置形狀。
add_connector.begin_connect(
    shape,0
)

# 以英制公制單位(作為L(zhǎng)ength對(duì)象)返回此連接器起點(diǎn)的X位置。
begin_x = add_connector.begin_x

# 以英制公制單位(作為L(zhǎng)ength對(duì)象)返回此連接器起點(diǎn)的Y位置。
begin_y = add_connector.begin_y

# 實(shí)驗(yàn) - 當(dāng)前的實(shí)現(xiàn)僅適用于矩形形狀,例如圖片和矩形。
# 與其他形狀類型一起使用時(shí),如果cxn_pt_idx超出了所連接形狀上可用的連接點(diǎn)數(shù)量,
# 則可能導(dǎo)致所連接端點(diǎn)的視覺(jué)外觀意外對(duì)齊,并可能導(dǎo)致加載錯(cuò)誤。
# 就是說(shuō),快速測(cè)試應(yīng)該可以揭示將這種方法與其他形狀類型一起使用時(shí)的預(yù)期結(jié)果。
# 將此連接器的末端連接到cxn_pt_idx指定的連接點(diǎn)處的形狀。
add_connector.end_connect(
    shape,2
)

# 以英制公制單位(作為L(zhǎng)ength對(duì)象)返回此連接器端點(diǎn)的X位置。
end_x = add_connector.end_x

# 以英制公制單位(作為L(zhǎng)ength對(duì)象)返回此連接器端點(diǎn)的Y位置。
end_y = add_connector.end_y

# 此連接器的LineFormat實(shí)例。
# 提供對(duì)線屬性(如線顏色、寬度和線樣式)的訪問(wèn)。
line = add_connector.line

# 提供對(duì)單擊行為的訪問(wèn)的actionset實(shí)例。
# 單擊行為是類似于超鏈接的行為,包括跳轉(zhuǎn)到超鏈接(web頁(yè)面)或演示文稿中的另一張幻燈片。
# 單擊操作是在整個(gè)形狀上定義的,而不是在形狀內(nèi)的文本運(yùn)行。
# 即使在形狀上沒(méi)有定義單擊行為,也總是返回actionset對(duì)象。
click_action = add_picture.click_action

# float 表示從形狀底部裁剪的相對(duì)部分。
# 讀/寫(xiě)。1.0代表100%。例如,25%用0.25表示。負(fù)值和大于1.0的值都是有效的。
add_picture.crop_bottom = 0.25
crop_bottom = add_picture.crop_bottom

# float 表示從形狀左側(cè)裁剪的相對(duì)部分。
# 讀/寫(xiě)。1.0代表100%。負(fù)值將邊延伸到圖像邊界之外。
add_picture.crop_left = 0.25
crop_left = add_picture.crop_left

# float 表示從形狀右側(cè)裁剪的相對(duì)部分。
# 讀/寫(xiě)。1.0代表100%。
add_picture.crop_right = 0.25
crop_right = add_picture.crop_right


# float 表示從形狀右側(cè)裁剪的相對(duì)部分。
# 讀/寫(xiě)。1.0代表100%。
add_picture.crop_top = 0.25
crop_top = add_picture.crop_top

# 此形狀的lxml元素,例如CT_Shape實(shí)例。
# 請(qǐng)注意,不當(dāng)操作此元素可能會(huì)生成無(wú)效的演示文稿文件。
# 如果使用它來(lái)更改基礎(chǔ)XML,請(qǐng)確保您知道自己在做什么。
element = add_picture.element

# 如果此形狀是包含圖表對(duì)象的圖形框架返回True。 False除此以外。如果為T(mén)rue,則可以使用.chart屬性訪問(wèn)圖表對(duì)象。
has_chart = add_picture.has_chart

# 如果此形狀是包含表格對(duì)象的圖形框架返回True。 False除此以外。如果為T(mén)rue,則可以使用.table屬性訪問(wèn)表對(duì)象。
has_table = add_picture.has_table

# 如果此形狀可以包含文本返回True。
has_text_frame = add_picture.has_text_frame

# 讀/寫(xiě)。EMU中形狀的頂部和底部范圍之間的整數(shù)距離
add_picture.height = 2743100
height = add_picture.height

# 如果此形狀是占位符,則為true。如果形狀具有<p:ph>元素,則它是一個(gè)占位符。
is_placeholder = add_picture.is_placeholder

# 讀/寫(xiě)。此形狀的左邊緣到幻燈片左邊緣的整數(shù)距離,以英制公制單位(EMU)
add_picture.left = 457100
left = add_picture.left

# LineFormat的一個(gè)實(shí)例,提供對(duì)與此形狀相鄰的輪廓的屬性(如顏色和寬度)的訪問(wèn)。
line = add_picture.line

# 形狀的名稱,例如“圖片7”
name = add_picture.name

# 包含此形狀的包裝部件。
# 一個(gè)BaseSlidePart在這種情況下,子類。僅當(dāng)您擴(kuò)展python-pptx API對(duì)象的行為時(shí),才需要訪問(wèn)幻燈片部分。
part = add_picture.part

# 一個(gè)_PlaceholderFormat對(duì)象,提供對(duì)特定于占位符的屬性(如占位符類型)的訪問(wèn)。
# 如果形狀不是占位符,則在訪問(wèn)時(shí)引發(fā)ValueError。
# placeholder_format = add_picture.placeholder_format

# 讀/寫(xiě)浮點(diǎn)數(shù)。順時(shí)針旋轉(zhuǎn)的度數(shù)。可以分配負(fù)值以指示逆時(shí)針旋轉(zhuǎn),例如,分配-45.0會(huì)將設(shè)置更改為315.0。
add_picture.rotation = -45.0
rotation = add_picture.rotation

# 提供對(duì)該形狀的陰影訪問(wèn)的ShadowFormat對(duì)象。
# 一個(gè)ShadowFormat對(duì)象總是被返回,即使在這個(gè)形狀上沒(méi)有明確定義陰影(也就是說(shuō)它繼承了它的陰影行為)。
shadow = add_picture.shadow

# 標(biāo)識(shí)此形狀的只讀正整數(shù)。
# 形狀的ID在幻燈片上的所有形狀中都是唯一的。
shape_id = add_picture.shape_id

# 讀/寫(xiě)。此形狀的頂部邊緣到幻燈片頂部邊緣的整數(shù)距離,以英制公制單位(EMU)
add_picture.top = 3657500
top = add_picture.top

add_picture.width = 3657500
width = add_picture.width

# MSO_SHAPE的成員,指示遮罩形狀。
# PowerPoint中可用的任何所謂的“自動(dòng)形狀”(例如橢圓形或三角形)都可以掩蓋圖片。
# 當(dāng)圖片被形狀遮蓋時(shí),該形狀采用與圖片相同的尺寸,并且不會(huì)出現(xiàn)圖片超出形狀邊界的部分。
# 請(qǐng)注意,新插入圖片的默認(rèn)值為MSO_AUTO_SHAPE_TYPE.RECTANGLE,由于矩形的范圍與圖片的范圍完全對(duì)應(yīng),因此不會(huì)進(jìn)行裁剪。
# 可用的形狀對(duì)應(yīng)于MSO_AUTO_SHAPE_TYPE的成員 。
# 返回值也可以是None,表示圖片沒(méi)有幾何形狀(不期望)或具有自定義幾何形狀(如自由形狀)。
# 盡管沒(méi)有幾何圖形,但是可以選擇,但幻燈片上沒(méi)有可見(jiàn)的圖像。
# 這是因?yàn)闆](méi)有幾何形狀,就不會(huì)出現(xiàn)“內(nèi)部形狀”。
auto_shape_type = add_picture.auto_shape_type

# 返回一個(gè)Image對(duì)象,可以訪問(wèn)此圖片形狀中的圖像的屬性和字節(jié)。
image = add_picture.image

# 返回唯一標(biāo)識(shí)此形狀類型的整數(shù),無(wú)條件為MSO_SHAPE_TYPE。在這個(gè)例子中是圖片。
shape_type = add_picture.shape_type

# 在此圖形框架中包含圖表的圖表對(duì)象。如果此圖形框架不包含圖表,則引發(fā)ValueError錯(cuò)誤。
chart = add_chart.chart

# 提供對(duì)單擊行為的訪問(wèn)的actionset實(shí)例。
# 單擊行為是類似于超鏈接的行為,包括跳轉(zhuǎn)到超鏈接(web頁(yè)面)或演示文稿中的另一張幻燈片。
# 單擊操作是在整個(gè)形狀上定義的,而不是在形狀內(nèi)的文本運(yùn)行。
# 即使在形狀上沒(méi)有定義單擊行為,也總是返回actionset對(duì)象。
click_action = add_chart.click_action

# 此形狀的lxml元素,例如CT_Shape實(shí)例。
# 注意,不正確地操作這個(gè)元素可能會(huì)產(chǎn)生無(wú)效的表示文件。如果要使用它更改底層X(jué)ML,請(qǐng)確保您知道自己在做什么。
element = add_chart.element

# 如果此圖形框架包含一個(gè)圖表對(duì)象,則為T(mén)rue。否則False。如果為T(mén)rue,則可以使用.chart屬性訪問(wèn)圖表對(duì)象。
has_chart = add_chart.has_chart

# 如果此圖形框架包含表對(duì)象,則為T(mén)rue。否則False。為T(mén)rue時(shí),可以使用.table屬性訪問(wèn)表對(duì)象。
has_table = add_chart.has_table

# 讀/寫(xiě)。EMU中形狀的頂部和底部范圍之間的整數(shù)距離
add_chart.height = 2743100
height = add_chart.height

# 讀/寫(xiě)。此形狀的左邊緣到幻燈片左邊緣的整數(shù)距離,以英制公制單位(EMU)
add_chart.left = 457100
left = add_chart.left

# 形狀的名稱,例如“圖片7”
name = add_chart.name

add_chart.rotation = -45.0
rotation = add_chart.rotation

# 無(wú)條件地引發(fā)了NotImplementedError。
# 對(duì)圖形框架對(duì)象的陰影效果的訪問(wèn)是特定于內(nèi)容的(例如,對(duì)圖表、表格等的訪問(wèn)是不同的),并且還沒(méi)有實(shí)現(xiàn)。
# shadow = add_chart.shadow

# 標(biāo)識(shí)此形狀的只讀正整數(shù)。
# 形狀的ID在幻燈片上的所有形狀中都是唯一的。
shape_id = add_chart.shape_id

# Table此圖形框中包含的對(duì)象。如果此圖形框架不包含表格,則引發(fā)ValueError。
# table = add_chart.table

# 讀/寫(xiě)。此形狀的頂部邊緣到幻燈片頂部邊緣的整數(shù)距離,以英制公制單位(EMU)
add_chart.top = 914300
top = add_chart.top

# 讀/寫(xiě)。EMU中左右形狀范圍之間的整數(shù)距離。
add_chart.width = 3657500
width = add_chart.width

# 無(wú)條件引發(fā)TypeError。
# 組形狀不能具有單擊動(dòng)作或懸停動(dòng)作。
# click_action = add_group_shape.click_action

# 此形狀的lxml元素,例如CT_Shape實(shí)例。
# 請(qǐng)注意,不當(dāng)操作此元素可能會(huì)生成無(wú)效的演示文稿文件。如果使用它來(lái)更改基礎(chǔ)XML,請(qǐng)確保您知道自己在做什么。
element = add_group_shape.element

# 無(wú)條件返回False
# 組形狀沒(méi)有文本框,并且本身不能包含文本。這不會(huì)影響組包含的形狀各自具有自己的文本的能力。
has_text_frame = add_group_shape.has_text_frame

# 讀/寫(xiě)。EMU中形狀的頂部和底部范圍之間的整數(shù)距離
add_group_shape.height = 1
height = add_group_shape.height

# 讀/寫(xiě)。此形狀的左邊緣到幻燈片左邊緣的整數(shù)距離,以英制公制單位(EMU)
add_group_shape.left = 1
left = add_group_shape.left

# 形狀的名稱,例如“圖片7”
name = add_group_shape.name

# 包含此形狀的包裝部件。
# 一個(gè)BaseSlidePart在這種情況下,子類。僅當(dāng)您擴(kuò)展python-pptx API對(duì)象的行為時(shí),才需要訪問(wèn)幻燈片部分。
part = add_group_shape.part

# 讀/寫(xiě)浮點(diǎn)數(shù)。順時(shí)針旋轉(zhuǎn)的度數(shù)。可以分配負(fù)值以指示逆時(shí)針旋轉(zhuǎn),例如,分配-45.0會(huì)將設(shè)置更改為315.0。
add_group_shape.rotation = -45.0
rotation = add_group_shape.rotation

# 表示此組的陰影效果的陰影格式對(duì)象。
# 即使在此組形狀上沒(méi)有顯式定義陰影(即當(dāng)組繼承其陰影行為時(shí)),也總是返回ShadowFormat對(duì)象。
shadow = add_group_shape.shadow

# 標(biāo)識(shí)此形狀的只讀正整數(shù)。
# 形狀的ID在幻燈片上的所有形狀中都是唯一的。
shape_id = add_group_shape.shape_id

# MSO_SHAPE_TYPE的成員,用于標(biāo)識(shí)此形狀的類型。
# 在這種情況下,無(wú)條件MSO_SHAPE_TYPE.GROUP
shape_type = add_group_shape.shape_type

# 此組的GroupShapes對(duì)象。
# GroupShapes對(duì)象提供對(duì)組成員形狀的訪問(wèn),并提供添加新成員形狀的方法。
shapes = add_group_shape.shapes

# 讀/寫(xiě)。此形狀的頂部邊緣到幻燈片頂部邊緣的整數(shù)距離,以英制公制單位(EMU)
add_group_shape.top = 1
top = add_group_shape.top

# 讀/寫(xiě)。EMU中左右形狀區(qū)段之間的整數(shù)距離
add_group_shape.width = 1
width = add_group_shape.width
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容