2005/02/23

できた。

import win32com.client, pythoncom

def ppt2ps(from_path, to_directory, ps_printer):
pythoncom.CoInitializeEx(pythoncom.COINIT_APARTMENTTHREADED)
ppt = win32com.client.DispatchEx('Powerpoint.Application')
ppt_file = ppt.Presentations.open(from_path, False, False, False)
slide_count = ppt_file.Slides.Count
del ppt
del ppt_file

for slide_num in range(1, slide_count):
ppt = win32com.client.DispatchEx('Powerpoint.Application')
ppt_file = ppt.Presentations.open(from_path, False, False, False)
ppt_file.PrintOptions.PrintInBackground = 0
ppt_file.PrintOptions.ActivePrinter = ps_printer
ppt_file.PrintOptions.FitToPage = True
ppt_file.Saved = 1

save_to = to_directory + str(slide_num) + ".ps"
ppt_file.PrintOut(slide_num, slide_num, save_to, 0, False)
ppt_file.Close()
del ppt
del ppt_file
pythoncom.CoUninitialize()

ppt2ps("C:\\temp\\foobar.ppt", "c:\\temp\\fig\\", "Adobe PDF")

これで、PowerPoint のファイルから各スライドを ps に変換できる。あとは、ps2eps で eps にするなり、コマンドラインで実行できる Distiller( こちらの distill.zip とか)で pdf にするなりすればいいことにする。

(acknowledgement: msoffice2ps

No comments :