471,339 Members | 1,330 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,339 software developers and data experts.

create Powerpoint via com

Can someone point me to a simple example
or better yet tutorial for creating
a Powerpoint using Python.

Thanks,
Alan Isaac
Aug 30 '07 #1
6 4310
Alan,

On Aug 30, 1:37 pm, Alan Isaac <ais...@american.eduwrote:
Can someone point me to a simple example
or better yet tutorial for creating
a Powerpoint using Python.

Thanks,
Alan Isaac
You should check our the following for information on using COM
itself:

http://www.oreilly.com/catalog/pytho...pter/ch12.html

Core Python Programming by Chun has an example in it using Tkinter. I
did it a while back, so here's the source:
<code>

# Core Python Chp 23, pg 994
# ppoint.pyw

from Tkinter import Tk
from time import sleep
from tkMessageBox import showwarning
import win32com.client as win32

warn = lambda app: showwarning(app, 'Exit?')
RANGE = range(3, 8)

def ppoint():
app = 'PowerPoint'
ppoint = win32.gencache.EnsureDispatch('%s.Application' % app)
pres = ppoint.Presentations.Add()
ppoint.Visible = True

s1 = pres.Slides.Add(1, win32.constants.ppLayoutText)
sleep(1)
sla = s1.Shapes[0].TextFrame.TextRange
sla.Text = 'Python-to-%s Demo' % app
sleep(1)
slb = s1.Shapes[1].TextFrame.TextRange
for i in RANGE:
slb.InsertAfter("Line %d\r\n" % i)
sleep(1)
slb.InsertAfter("\r\nTh-th-th-that's all folks!\r\n")

warn(app)
pres.Close()
ppoint.Quit()

if __name__ == '__main__':
Tk().withdraw()
ppoint()

</code>

I recommend getting ActiveState's Python distro as it comes with an
IDE that can browse COM objects fairly easily.

Hope that helps!

Mike

Aug 30 '07 #2
ky******@gmail.com wrote:
Hope that helps!
Yes indeed.
Thanks!
Alan
Aug 30 '07 #3
ky******@gmail.com wrote:
<code>
OK, creating bulleted lists, or tables,
or adding pictures is all straightforward.
How about chart creation (in Ppt 2003)?
I do not see how to do this with Python.

Thanks,
Alan
Aug 31 '07 #4
On Aug 30, 11:55 pm, Alan Isaac <ais...@american.eduwrote:
kyoso...@gmail.com wrote:
<code>

OK, creating bulleted lists, or tables,
or adding pictures is all straightforward.
How about chart creation (in Ppt 2003)?
I do not see how to do this with Python.

Thanks,
Alan
Alan,

You probably need to browse the COM object using PythonWin, which is a
part of the ActiveState distro. You can also use Python's builtin
function, dir, to find out various methods of COM.

Here's some info in messing with charts in Excel, which should be
similar to chart manipulation in PowerPoint.

http://mail.python.org/pipermail/pyt...ne/003511.html
http://mail.python.org/pipermail/pyt...ch/000839.html
http://www.thescripts.com/forum/thread21565.html
http://mathieu.fenniak.net/plotting-...ugh-pythoncom/

Mike

Aug 31 '07 #5
>>How about chart creation (in Ppt 2003)?
>>I do not see how to do this with Python.
ky******@gmail.com wrote:
You probably need to browse the COM object using PythonWin, which is a
part of the ActiveState distro. You can also use Python's builtin
function, dir, to find out various methods of COM.

Here's some info in messing with charts in Excel, which should be
similar to chart manipulation in PowerPoint.

http://mail.python.org/pipermail/pyt...ne/003511.html
http://mail.python.org/pipermail/pyt...ch/000839.html
http://www.thescripts.com/forum/thread21565.html
http://mathieu.fenniak.net/plotting-...ugh-pythoncom/

Thanks!
Alan
Aug 31 '07 #6
Well, my needs were very limited so the
result is too, but in case someone else
just needs to get started:
http://econpy.googlecode.com/svn/trunk/utilities/mso.py

Comments, suggestions, additions welcom.

Alan Isaac
Sep 2 '07 #7

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

reply views Thread by msnews.microsoft.com | last post: by
11 posts views Thread by ssims | last post: by
6 posts views Thread by BWPanda | last post: by
1 post views Thread by chrizstone | last post: by
reply views Thread by rosydwin | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.