我可以在原始文本中定义powerpoint或演示文稿吗?

时间:2011-10-12 18:36:52

标签: latex powerpoint

嗨大家好:我想使用原始文本文件创建一个功率点演示文稿,这样我就可以快速编辑文件并查看结果,并使用统一格式保存。基本上,我在谈论将数据内容与演示文稿分开。

我该怎么做?我想也许乳胶可能是一个选择。我还看到有针对Powerpoint和开放式办公室演示文稿的API。

2 个答案:

答案 0 :(得分:1)

如果您只需要带标题和项目符号文字的幻灯片,那就非常简单了。创建一个如下所示的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文件。完成。

答案 1 :(得分:1)

Powerpoint通过COM公开它的API - 这使得可以(几乎)在GUI中以任何支持COM的编程语言执行任何操作。难点在于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,可以用来解决类似的问题。