嗨,夥計們:我想創建一個使用原始文本文件的Powerpoint演示文稿,以便我可以快速編輯文件並查看結果,並以統一格式進行打印。基本上,我正在談論從演示中分離數據內容。我可以在原始文本中定義powerpoint或演示文稿嗎?
我該怎麼做?我在想,也許乳膠可能是一個選擇。我還看到有Powerpoint和開放式辦公室演示文稿的API。
嗨,夥計們:我想創建一個使用原始文本文件的Powerpoint演示文稿,以便我可以快速編輯文件並查看結果,並以統一格式進行打印。基本上,我正在談論從演示中分離數據內容。我可以在原始文本中定義powerpoint或演示文稿嗎?
我該怎麼做?我在想,也許乳膠可能是一個選擇。我還看到有Powerpoint和開放式辦公室演示文稿的API。
Powerpoint通過COM公開了它的API - 這使得可以在支持COM的任何編程語言中執行(幾乎)所有可以在GUI中執行的任何操作。難點在於API在版本之間變化。 API範圍的一種方法是使用宏記錄工具手動完成一張幻燈片,然後將其翻譯爲目標語言。
我已經有了一些老的(未測試過的)Powerpoint 2003的Python代碼,它應該能夠讓你瞭解代碼的樣子,這取決於你的佈局需求。
from win32com.client import Dispatch
ppLayoutTitle = 1
ppLayoutText = 2
def writePresentation(fname, data):
pptApp = Dispatch('Powerpoint.Application')
pres = pptApp.ActivePresentation
aw = pptApp.ActiveWindow
slides = pres.Slides
for item in data:
t1 = item[0]
t2 = item[1]
stype = item[2]
assert(stype in [ppLayoutTitle,ppLayoutText])
s = slides.Add(slides.Count, stype)
aw.View.GotoSlide(s.SlideIndex)
s.Shapes.Item(1).Select()
aw.Selection.ShapeRange.TextFrame.TextRange.Select()
aw.Selection.ShapeRange.TextFrame.TextRange.Characters(Start=1, Length=0).Select
tr = aw.Selection.TextRange
tr.Text = t1
s.Shapes.Item(2).Select()
aw.Selection.ShapeRange.TextFrame.TextRange.Select()
if stype == ppLayoutText:
aw.Selection.ShapeRange.TextFrame.TextRange.ParagraphFormat.Bullet.Visible = 0
aw.Selection.ShapeRange.TextFrame.TextRange.Characters(Start=1, Length=0).Select
tr = aw.Selection.TextRange
tr.Text = t2
slides.Range(slides.Count).Delete()
pres.SaveAs(fname)
編輯:
OpenOffice的(可以導出到PowerPoint)還附帶它的scripting API可以用來解決類似的問題。
那麼如何讓COM和python在* NIX上互操作呢?似乎有一些特定於Windows的庫。 – jayunit100
我不知道這段代碼是否可以在windows下工作。我沒有嘗試過,但它可能在Wine下面。已編輯答案以提供替代* NIX兼容解決方案。 –
因爲示例代碼自動執行PowerPoint,所以您至少需要安裝並運行PowerPoint的副本。除了Windows ...或者一個合適的模擬器...它不會工作。至於PPT版本的差異,我沒有看到任何可能受到影響的代碼。相同的代碼應該從97年以後的任何版本的PPT上運行一致。一般來說,在這裏沒有任何理由使用Select,這樣做會大大減慢代碼的運行速度,並阻止你無形地運行PPT。 FWIW。 –
如果您只需要帶有標題和項目符號的幻燈片,則非常簡單。創建一個如下所示的txt文件(使用TAB鍵代替以下內容):
Slide 1 Title
<tab>Bullet Level One Text
<tab><tab>Bullet Level Two Text
<tab>Back to Bullet Leven One again
Slide 2 Title
Slide 3 Title
<tab>More Bulleted text
<tab><tab>Tufte hates us by now
<tab><tab>But we don't care, do we?
Slide 4 Title
依此類推。保存文件,啓動PowerPoint,選擇文件打開命令,在文件打開對話框中選擇大綱或所有類型的文件,並選擇您的TXT文件。完成。
你想要「powerpoint」或任何形式的演示文稿格式? – dagnelies
我知道沒有TeX的實現可以輸出PPT格式(以及爲什麼要在地球上它想要,PDF比較好)。 –
你的問題在這裏不是真正的主題(不是關於軟件開發),也不是你提問的方式。如果您想使用LaTeX創建演示文稿(而不是PowerPoint文檔),請查看「beamer」類(如果遇到問題,請諮詢[TeX Stack Exchange](http://tex.stackexchange.com/) ))。 –