使用Presentation()函數(shù)打開一個演示文稿郭宝,該函數(shù)直接由pptx包提供:
from pptx import Presentation
該函數(shù)返回一個Presentation對象跪者,該對象是包含構(gòu)成表示的組件的圖形的根洛巢,
例如 幻燈片坡贺,形狀等小染。通過遍歷圖形來引用所有現(xiàn)有的表示組件翘瓮,
并通過在對象的容器上調(diào)用方法來將新對象添加到圖形中。
因此裤翩,通常不會直接構(gòu)造python-pptx對象资盅。
例:
# 加載一個ppt文件
prs = Presentation('pptx/zf.pptx')
# 第一張幻燈片中的第一個形狀
sp = prs.slides[0].shapes[0]
# 向第一張幻燈片中添加圖片形狀
pic = prs.slides[0].shapes.add_picture('image/bg2.jpg', 100, 100, 100, 100)
Presentation功能
此功能是使用演示文件必須導入的唯一參考。典型用法與許多其他類進行交互踊赠,
但是由于使用其包含對象的屬性或方法訪問它們時呵扛,無需構(gòu)造它們。
class pptx.Presentation(pptx = None )
返回Presentation從pptx加載的對象筐带,其中pptx可以是.pptx文件(字符串)的路徑今穿,
也可以是類似文件的對象。如果 缺少pptx或None烫堤,則將加載內(nèi)置的默認演示文稿“模板”荣赶。
Presentation對象
class pptx.presentation.Presentation
PresentationML(PML)演示文稿凤价。不打算直接構(gòu)造。
使用pptx.Presentation()打開或創(chuàng)建演示文稿拔创。
- core_properties
擁有此演示文稿的讀取/寫入Dublin Core文檔屬性的CoreProperty實例利诺。
- notes_master
此演示文稿的NotesMaster實例。如果演示文稿沒有便箋母版剩燥,
則從默認模板創(chuàng)建一個便箋本并將其返回慢逾。每次調(diào)用都返回相同的單個實例。
- save(file )
將此演示文稿保存到file灭红,其中file可以是文件的路徑(字符串)或類似文件的對象侣滩。
- slide_height
本演示文稿中的幻燈片高度,以英制公制(EMU)為單位变擒。
如果未定義幻燈片寬度君珠,則返回None。讀/寫娇斑。
- slide_layouts
屬于此演示文稿的第一個SlideMaster的SlideLayout實例的序列策添。
一個演示文稿可以有多個幻燈片母版,每個母版都有自己的一組布局毫缆。
對于演示文稿只有一個幻燈片母版的常見情況唯竹,此屬性很方便。
- slide_master
屬于此演示文稿的第一個SlideMaster對象苦丁。
通常浸颓,演示文稿只有一個幻燈片母版。
在這種常見情況下旺拉,此屬性提供了更簡單的訪問产上。
- slide_masters
屬于此演示文稿的SlideMaster對象的序列
- slide_width
本演示文稿中的幻燈片寬度,以英語公制單位(EMU)為單位账阻。
如果未定義幻燈片寬度蒂秘,則返回None泽本。讀/寫淘太。
- slides
slides對象,其中包含此演示文稿中的幻燈片
CoreProperties對象
每個Presentation對象都有一個CoreProperties通過其core_properties屬性訪問的對象规丽,
該屬性提供對文檔的所謂核心屬性的讀/寫訪問蒲牧。
核心屬性是作者,類別赌莺,評論冰抢,content_status,已創(chuàng)建艘狭,標識符挎扰,關鍵字翠订,語言,
last_modified_by遵倦,last_printed尽超,modified,修訂梧躺,主題似谁,標題和版本。
每個屬性是str掠哥,datetime.datetime或int這三種類型之一巩踏。
字符串屬性的長度限制為255個字符,如果未設置续搀,則返回一個空字符串(‘’)塞琼。
日期屬性被分配并作為沒有時區(qū)的datetime.datetime對象返回,即在UTC中禁舷。
任何時區(qū)轉(zhuǎn)換均由客戶負責屈梁。 如果未設置,日期屬性將返回無榛了。
python-pptx不會自動設置任何文檔核心屬性在讶,
除非將核心屬性部分添加到不包含該屬性的演示文稿中(非常少見)。
如果python-pptx添加了核心屬性部分霜大,則它包含標題构哺,last_modified_by,
修訂版和修改后屬性的默認值战坤。如果需要該行為曙强,
客戶端代碼應顯式更改諸如revend和last_modified_by之類的屬性。
class pptx.opc.coreprops.CoreProperties
- author
string –主要負責制作資源內(nèi)容的實體途茫。
- category
string –此軟件包內(nèi)容的分類碟嘴。值示例包括:簡歷,信函囊卜,財務預測娜扇,提案或技術演示。
- comments
string –資源內(nèi)容的帳戶栅组。
- content_status
string –文檔的完成狀態(tài)雀瓢,例如“草稿”
- created
datetime –最初創(chuàng)建文檔的時間
- identifier
string –在給定上下文(例如ISBN)中對資源的明確引用。
- keywords
string –描述性詞或短短語可能會用作本文檔的搜索詞
- language
string -文檔所用的語言
- last_modified_by
string –上次修改文檔的人的姓名或其他標識符(例如電子郵件地址)
- last_printed
datetime –文檔上次打印的時間
- modified
datetime –文檔上次修改的時間
- revision
int –此修訂版的編號玉掸,每次保存文檔時刃麸,PowerPoint?客戶端將其遞增一次。
但是請注意司浪,版本號不會由python-pptx自動增加泊业。
- subject
string –資源內(nèi)容的主題把沼。
- title
string –給資源的名稱。
- version
string –自由格式的字符串
Note
# !/usr/bin/python
# coding:utf-8
from pptx import Presentation
import sys
# 加載一個ppt文件
prs = Presentation('pptx/zf.pptx')
# 在第一張幻燈片中獲得對第一個形狀的引用
sp = prs.slides[0].shapes[0]
# 向第一張幻燈片中添加圖片形狀
pic = prs.slides[0].shapes.add_picture('image/bg2.jpg', 100, 100, 100, 100)
# 此演示文稿的NotesMaster實例吁伺。如果演示文稿沒有便箋母版智政,
則從默認模板創(chuàng)建一個便箋本并將其返回。每次調(diào)用都返回相同的單個實例箱蝠。
note = prs.notes_master
# 本演示文稿中的幻燈片高度续捂,以英制公制(EMU)為單位。
None如果未定義幻燈片寬度宦搬,則返回牙瓢。讀/寫。
height = prs.slide_height
# 屬于此演示文稿的第一個SlideMaster的SlideLayout實例的序列间校。
一個演示文稿可以有多個幻燈片母版矾克,每個母版都有自己的一組布局。
對于演示文稿只有一個幻燈片母版的常見情況憔足,此屬性很方便胁附。
layouts = prs.slide_layouts
# 屬于此演示文稿的第一個SlideMaster對象。
通常滓彰,演示文稿只有一個幻燈片母版控妻。
在這種常見情況下,此屬性提供了更簡單的訪問揭绑。
master = prs.slide_master
# 屬于此演示文稿的SlideMaster對象的序列
masters = prs.slide_masters
# 本演示文稿中的幻燈片寬度弓候,以英語公制單位(EMU)為單位。
如果未定義幻燈片寬度他匪,則返回None菇存。讀/寫。
width = prs.slide_width
# slides對象邦蜜,其中包含此演示文稿中的幻燈片
slides = prs.slides
# 每個Presentation對象都有一個CoreProperties通過其core_properties屬性訪問的對象依鸥,
該屬性提供對文檔的所謂核心屬性的讀/寫訪問
core_properties = prs.core_properties
core_properties.author = 'HaI'
core_properties.category = 'python-pptx'
core_properties.comments = 'HaI\'s comments'
core_properties.content_status = "draft"
core_properties.identifier = 'HaI\'s identifier'
core_properties.keywords = 'HaI\'s keywords'
core_properties.language = 'utf-8'
core_properties.last_modified_by = 'HaI\'s last_modified_by'
core_properties.subject = 'HaI\'s subject'
core_properties.title = 'HaI\'s title'
core_properties.version = 'v1.0.0'
# string –主要負責制作資源內(nèi)容的作者。
author = core_properties.author
# string –此軟件包內(nèi)容的分類悼沈。值示例包括:簡歷贱迟,信函,財務預測井辆,提案或技術演示关筒。
category = core_properties.category
# string –資源內(nèi)容的帳戶。
comments = core_properties.comments
# string –文檔的完成狀態(tài)杯缺,例如“草稿”
content_status = core_properties.content_status
# datetime –最初創(chuàng)建文檔的時間
created = core_properties.created
# string –在給定上下文(例如ISBN)中對資源的明確引用。
identifier = core_properties.identifier
# string –描述性詞或短短語可能會用作本文檔的搜索詞
keywords = core_properties.keywords
# string -文檔所用的語言
language = core_properties.language
# string –上次修改文檔的人的姓名或其他標識符(例如電子郵件地址)
last_modified_by = core_properties.last_modified_by
# datetime –文檔上次打印的時間
last_printed = core_properties.last_printed
# datetime –文檔上次修改的時間
modified = core_properties.modified
# int –此修訂版的編號睡榆,每次保存文檔時萍肆,PowerPoint?客戶端將其遞增一次袍榆。
# 但是請注意,版本號不會由python-pptx自動增加塘揣。
revision = core_properties.revision
# string –資源內(nèi)容的主題包雀。
subject = core_properties.subject
# string –給資源的名稱。
title = core_properties.title
# string –自由格式的字符串
version = core_properties.version
prs.save('pptx/zf-01.pptx')