python自動化PPT:如何玩轉自選圖形

2020-12-11 python大大

python自動化PPT:如何玩轉自選圖形

上節對python自動化PPT的圖形基本概念做了詳細介紹,當然,要作出一篇精彩的PPT文檔,精彩的自選圖形必須要掌握,這節繼續來解讀這方面的知識。

如何玩轉自選圖形

自選圖形基礎

自動形狀是規則的形狀。正方形,圓形,三角形,星形,那種東西。有182種不同的汽車形狀可供選擇。其中120個具有調整「手柄」,您可以使用它來改變形狀,有時是戲劇性的。

許多形狀類型共享一組共同的屬性。我們將在這裡介紹其中的許多,因為其中一些形狀只是AutoShape的一種特殊形式。

添加自動形狀

下面的代碼添加了一個圓角矩形形狀,一個英寸的正方形,並且距離幻燈片的左上角一英寸:

from pptx.enum.shapes import MSO_SHAPEshapes = slide.shapesleft = top = width = height = Inches(1.0)shape = shapes.add_shape( MSO_SHAPE.ROUNDED_RECTANGLE, left, top, width, height)有關所有182種自動形狀類型的列表,請參閱MSO_AUTO_SHAPE_TYPE枚舉頁面。

了解英制公制單位

在前面的示例中,我們將位置和維度值設置為表達式Inches(1.0)。那是什麼意思?

Inches

在內部,PowerPoint以英制公制單位(EMU)存儲長度值。EMU是一個整數單位長度,914400英寸。Office文檔中的大多數長度都存儲在EMU中。914400具有很大的優點,它可以在英寸和釐米之間進行精確轉換。

正如您可能想像的那樣,直接在EMU中工作是不方便的。為了方便起見,python-pptx提供了一組值類型,以便於規範和轉換為方便的單元:

>>> from pptx.util import Inches, Pt>>> length = Inches(1)>>> length914400>>> length.inches1.0>>> length.cm2.54>>> length.pt72.0>>> length = Pt(72)>>> length914400有關pptx.util的API文檔中提供了更多詳細信息

形狀位置和尺寸

所有形狀在其滑塊上都有一個位置並且具有一定的尺寸。通常,在創建形狀時指定位置和大小。位置和大小也可以從現有形狀中讀取並更改:

>>> from pptx.enum.shapes import MSO_SHAPE>>> left = top = width = height = Inches(1.0)>>> shape = shapes.add_shape(>>> MSO_SHAPE.ROUNDED_RECTANGLE, left, top, width, height>>> )>>> shape.left, shape.top, shape.width, shape.height(914400, 914400, 914400, 914400)>>> shape.left.inches1.0>>> shape.left = Inches(2.0)>>> shape.left.inches2.0填充

自選圖形的外邊緣有一個輪廓。該輪廓中出現的內容稱為形狀填充。

最常見的填充類型是純色。形狀也可以用漸變,圖片,圖案(例如交叉影線)填充,或者可以沒有填充(透明)。

當使用顏色時,可以將其指定為特定RGB值或來自主題調色板的顏色。

因為有很多選項,填充API有點複雜。此代碼將形狀的填充設置為紅色:

>>> fill = shape.fill>>> fill.solid()>>> fill.fore_color.rgb = RGBColor(255, 0, 0)這會將其設置為工具欄面板中顯示為「Accent 1 - 25%Darker」的主題顏色:

>>> from pptx.enum.dml import MSO_THEME_COLOR>>> fill = shape.fill>>> fill.solid()>>> fill.fore_color.theme_color = MSO_THEME_COLOR.ACCENT_1>>> fill.fore_color.brightness = -0.25這會將形狀填充設置為透明,或者在PowerPoint UI中調用「無填充」:

>>> shape.fill.background()如您所見,第一步是通過在fill上調用相應的方法來指定所需的填充類型。這樣做實際上會更改填充對象上可用的屬性。例如,.fore_color在調用其.background()方法後引用fill對象將引發異常:

>>> fill = shape.fill>>> fill.solid()>>> fill.fore_color<pptx.dml.color.ColorFormat object at 0x10ce20910>>>> fill.background()>>> fill.fore_colorTraceback (most recent call last): ...TypeError: a transparent (background) fill has no foreground color

AutoShape的輪廓也可以格式化,包括設置其顏色,寬度,破折號(實線,虛線,點線等),線條樣式(單,雙,厚薄等),端蓋,連接類型,和別的。在撰寫本文時,可以使用python-pptx設置顏色和寬度:

>>> line = shape.line>>> line.color.rgb = RGBColor(255, 0, 0)>>> line.color.brightness = 0.5 # 50% lighter>>> line.width = Pt(2.5)主題顏色也可用於線條:

>>> line.color.theme_color = MSO_THEME_COLOR.ACCENT_6Shape.line有屬性.color。這本質上是一個快捷方式:

>>> line.fill.solid()>>> line.fill.fore_color這對於行格式化是有意義的,因為形狀輪廓最常設置為純色。例如,要將線路設置為透明,則需要直接訪問填充:

>>> line.fill.background()線寬

形狀輪廓還具有讀/寫寬度屬性:

>>> line.width9525>>> line.width.pt0.75>>> line.width = Pt(2.0)>>> line.width.pt2.0調整自動形狀

在PowerPoint中,這些顯示為小黃色鑽石,您可以拖動以更改形狀的外觀。他們通過一個程序工作有點繁瑣,但如果你有耐心讓他們正確,可以非常精確地實現一些非凡的效果。

常精確地實現一些非凡的效果

形狀調整概念

在嘗試通過調整進行認真的工作之前,有一些值得抓住的概念。

首先,調整特定於特定的自動形狀類型。每個自動形狀都有0到8個調整。

調整值是大整數,每個整數基於100,000的標稱值。調整的有效值與形狀的寬度或高度成比例。因此,x坐標調整的值為50,000,對應於形狀寬度的一半; y坐標調整的值為75,000,對應於形狀高度的3/4。

調整值可以是負數,通常表示坐標位於形狀左上角(原點)的左側或上方。值也可以受到限制,這意味著它們的有效值不能超出規定範圍。實際上,這對應於例如不能延伸到形狀的左側之外的點。

以下代碼使用其調整格式化標註形狀:

callout_sp = shapes.add_shape(

MSO_SHAPE.LINE_CALLOUT_2_ACCENT_BAR, left, top, width, height

)

# get the callout line coming out of the right place

adjs = callout_sp.adjustments

adjs[0] = 0.5 # vert pos of junction in margin line, 0 is top

adjs[1] = 0.0 # horz pos of margin ln wrt shape width, 0 is left side

adjs[2] = 0.5 # vert pos of elbow wrt margin line, 0 is top

adjs[3] = -0.1 # horz pos of elbow wrt shape width, 0 is margin line

adjs[4] = 3.0 # vert pos of line end wrt shape height, 0 is top

a5 = adjs[3] - (adjs[4] - adjs[0]) * height/width

adjs[5] = a5 # horz pos of elbow wrt shape width, 0 is margin line

# rotate 45 degrees counter-clockwise

callout_sp.rotation = -45.0

以上對如何玩轉自選圖形做了一個詳細的介紹,接下來將又會回到基礎的知識的學習中去了,下一節講解,了解佔位符.

相關焦點

  • 從PPT到Word,用Python輕鬆實現辦公自動化
    來源  | 早起Python(ID:zaoqi-python)在之前的自動化系列文章中,我們分別講過如何使用 Python 將 Word 中表格信息批量提取至
  • 用Python玩轉PPT
    作者 | 陳熹來源 | 早起Python今天本文將基於第三方庫pptx,詳細講解如何使用Python操作Office全家桶最後一位——PPT。基本結構再看一下ppt結構組成,會較word複雜許多。當然這也跟ppt的高度自定義拓展性有關簡單來說,一個PPT文件為presentation,基本的結構為展示文件presentation-幻燈片頁slide-形狀shape組成,形狀就需要區分開,是包含文本的形狀還是不包含文本的形狀(純圖片等)。
  • 講一講我是如何通過Python實現辦公自動化的
    自動化辦公無非是excel、ppt、word、郵件、文件處理、數據分析處理、爬蟲這些,今天我們主要來講講excel、ppt、word自動化的操作技巧。我們需要學習的主要內容有:python基礎;excel自動化;ppt自動化;word自動化。
  • python自動化辦公手冊之python操作PPT
    前言1)python自動化文檔手冊python自動化文章一直深受廣大python愛好者的青睞。基於此,我花了整整一周時間真理出來的python自動化文檔手冊,涉及到五個章節(如下圖所示),① python使用openpyxl操作excel;② python使用PyPDF2和pdfplumber操作pdf;③ python使用python-docx操作word;④ python使用python-pptx操作PPT;⑤ python如何自動收發郵件;⑥ python製作電話號碼歸屬地查詢工具。
  • Python自動化用這些知識點就夠了!
    這可能是很多非IT職場人士面臨的困惑,想把python用到工作中,卻不知如何下手?python在自動化辦公領域越來越受歡迎,批量處理簡直是加班族的福音。自動化辦公無非是excel、ppt、word、郵件、文件處理、數據分析處理、爬蟲這些,這次就來理一理python自動化辦公的那些知識點。下面一一詳解。
  • python自動化辦公速學,學會這騷姿勢,加班?不存在的!
    日常工作中最痛苦的就莫過於,明明知道是重複的工作,卻不得不,重複的做,既煩躁又低效率,用python來解放雙手把,小編帶你利用python-pptx (0.6.7)自動生成250張PPT, 希望通過實例, 給常年整理PPT報表的上班族, 一個解放生產力的新思路。
  • 5分鐘python:給PPT自動添加精美的圖形
    本 5分鐘系列將會講解如何在python中如何自動在PPT裡畫柱形圖,並將其擴展為多柱形圖。最後給每個柱形圖標上對應數值,並把圖例標誌上。slide.shapes.add_chart( XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data ) chart = graphic_frame.chart請注意,我們捕獲了add_chart()調用返回的形狀引用 graphic_frame,然後使用其chart屬性從圖形框架中提取圖表對象
  • python自動化辦公:玩轉word之樣式秘笈
    上節對python如何定製word的頁眉頁腳做了詳細介紹,當然,要作出一篇精彩的word文檔,樣式公布可沒,本章繼續介紹python如何玩轉word的樣式。使用樣式python如何玩轉word的樣式此頁面使用前一頁中開發的概念而不作介紹。如果術語不熟悉,請參閱word的樣式參考。
  • 如何用VBA代碼新建自選圖形,還不會,馬上來學
    No.1Excel中為我們提供了許多自選圖片的創建,可以極大地豐富表格表現形式,是日常工作當中一個重要的操作。一個優秀的表格,離不開圖形化的展示。下面我們來學習一下,如何利用vba代碼進行自選圖形的創建,刪除,修改等操作。No.2自定義圖形就是各種大小不同,顏色各異,形狀怪異的封閉區域。太多的類型也只是讓我們選擇不同的參數,所以這方面不是十分難理解,操作也方便。
  • ppt實現任意的圖形組合功能的教程
    ppt如何組合圖形?一些特殊圖形可以用組合圖形替代,更特殊的需要用PS軟體單獨設計。像一些簡單的圖形就可以用ppt組合製作就可以了,下面分享詳細的教程常能看見ppt裡有一些簡潔明了的幾何形圖標,他藉由幾何形圖形的各類組合從而達成複雜的具有美感的組合型圖案。
  • 學會Python+Selenium,分分鐘搭建Web自動化框架!
    用python+selenium實現UI自動化測試,要有一些HTML和xpth的基礎,當然python基礎一定是必須要會的。筆者建議花點時間了解下相關基礎知識,不至於後面發懵。一、什麼是selenium?selenium是個強大的工具集。
  • Python 題庫自動化面試題
    10、怎麼提高Selenium腳本的執行速度 11、怎麼對含有驗證碼的功能進行自動化測試的 12、怎麼驗證複選按鈕是不是被選中 13、如何處理 alert 彈窗? 14、下拉菜單中如何去選擇一個菜單項?
  • PPT如何通過編輯頂點更改圖形形狀?
    ppt中如何快速通過編輯頂點來更改圖形的形狀呢?這個簡單但是很容易遺忘,調整形狀主要是位置和弧度,下面來給大家操作一下。1.首先繪製一個矩形,然後右鍵選擇——編輯頂點的選項。3.我們滑鼠拖拽的話就會發現可以改變圖形的形狀了。
  • Python自動化辦公(內容)
    python自動化辦公(python操作Excel、Word、PDF、PPT)python使用openpyxl操作excel;python使用PyPDF2和pdfplumber操作pdf;python使用python-docx操作word;python使用python-pptx操作PPT;python如何自動收發郵件;python製作電話號碼歸屬地查詢工具;一:python
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    總目錄 零基礎全能篇(4套課程) 實用編程技巧進價(1套課程) 數據分析與挖掘(8套課程) 辦公自動化(3套課程) 機器學習與人工智慧(7套課程) 開發實戰篇(4套課程) 量化投資(2套課程) 網絡爬蟲(6套課程) 資料庫操作(1套課程) python高級編程
  • 用於全棧自動化測試的最佳Python工具!
    那麼,您可以使用哪些最好的Python庫來幫助您進行測試和自動化工作呢?以下是我過去的受訪者最喜歡的一些Python自動化庫,以及一些我個人認為有用的庫。  但是首先,如果您正在尋找一種快速學習如何開始使用Python的方法,那麼您應該查看Andrew Knight在自動化協會的會議,了解如何開始使用Python進行測試。在檢查以下python測試庫之前,這將是一個很好的開始。
  • Python|自動化測試與if __name__==「__main__」
    問題描述最近有小夥伴在學習python自動化測試的時候遇到了一個問題,下面我直接奉上代碼。解決方案若要讓此程序執行很簡單只需在最後一行代碼unittest.main()前加一行代碼if__name__==」__main__」:方可執行。
  • PyAutoGUI:自動化鍵鼠操作的Python類庫
    隨便挑了一張看起來比較高端的圖片有些朋友可能玩過按鍵精靈,一個用來操作鍵盤滑鼠完成一些自動化工作的軟體。其實如果你學了Python的話,完全用不著按鍵精靈這種東西了。因為廣泛的Python類庫裡,就有PyAutoGUI這樣可以變成控制鍵盤滑鼠的類庫,有了它,就可以用Python隨心所欲的操作電腦了。
  • 「PPT技巧」利用PPT玩出醒目的藝術文字和漂亮圖形
    這就是我們今天要聊的一個非常有趣的話題「PPT如何拆分文字及圖形」。利用PPT自帶的【合併形狀|拆分】功能,可以輕鬆實現文字及圖形的拆分。比如:可以將文字的筆畫拆分開來;將圖形拆分成各種不規則形狀。2、插入任意多邊形●點擊菜單的【插入】—【形狀】,選擇【線條】裡的【任意多邊形】;●然後在ppt頁面裡,拖動滑鼠,在心形圖上,勾勒形狀輪廓。
  • 每個python人都離不開的12個python庫
    如果說python能取得今天的成就,一方面是它簡介的語法,更重要的一方面就是它豐富的第三方庫,可以毫不誇張的說,只要你能想到的任何一個功能模塊,都有對應的python庫,可以說正是因為有了豐富的python庫,python才發展得如此迅速,下面我們來看看python人最常用的20個python