从XML(或通过Ruby gem)生成Powerpoint或Keynote?

时间:2011-07-03 06:45:26

标签: ruby xml powerpoint iwork keynote

我正在寻找一种很好的方法来生成来自XML的Keynote文件或一个我可以导入到Keynote的Powerpoint文件。基本上,我正在寻找一种简单的人类可写标记格式(便于编写脚本),可以导出到幻灯片中。

我是一名当地非营利组织的志愿者,任何远程技术都属于我。在相当规律的基础上,我发送了事件信息,并在Word中生成了漂亮的打印程序,尽管许多相同的材料也会在Keynote中进入幻灯片。 (使用Keynote而不是PowerPoint,以便可以使用Keynote Remote。)

无论如何,我使用的大量文本是通过电子邮件发送的,它必须同时包含Keynote演示文稿和Word文档,并且需要各种奇怪的手动格式化才能打破页面或在奇怪的时候滑行,也需要大量的人工重新设计,因为我不会允许我做的事情看起来像20世纪90年代的草率。

我希望写一个Ruby脚本,我可以将源文本提供给它,它将为我做所有处理,至少对于Powerpoint或Keynote。我通常很幸运能找到我想要使用的任何格式或服务的宝石,但我没有发现任何适用于Powerpoint或Keynote的东西。

我的下一个想法是让Ruby代码生成适当的XML,因为Office和I Work都涉嫌打开Office XML格式,但我找不到任何人类可写的实用友好文档XML代码。

希望能够做以下事情是一厢情愿的想法吗?

<SLIDE FORMAT="Title & Bullets">
  <SLIDE_TITLE>
    Lorem Ipsum
  </SLIDE_TITLE>
<PARAGRAPH>
    [etc.]

就转换器脚本而言,所有我都可以找到所有与图表和表格相关的内容,这些都是零用途),通常围绕打开或转换FROM Powerpoint或Keynote而不是创建,而且通常似乎是Windows使用OLE或VBScript。这需要在他们那里的Mac上运行,因此没有Visual Studio的东西,Windows相关的脚本等等都可以工作。我不需要在Ruby中做到这一点,但这就是我在Mac游戏中最为舒服的东西。

那么对于Powerpoint或Keynote,还有一些非常友好的XML格式的文档,或者甚至更好的,是Ruby的宝石?

1 个答案:

答案 0 :(得分:2)

如果你需要做的只是标题+子弹点幻灯片,你只需要创建一个ascii文本文件。每行文本将成为新幻灯片的标题。但是,如果文本行中的第一个字符是制表符,则该行将成为与上一个标题相同的幻灯片上的第一级子弹点。如果有两个选项卡,则会将文本缩进到第二级项目符号点,依此类推。

This becomes the title on slide one
This becomes the title on slide two
<tab>This is a bullet point, first level
<tab><tab>And this is a bullet point, second level
<tab>Back to first level bullet point
And another new slide

获得文本文件后,可以在PPT中执行文件打开,并将类型文件强制为所有文件,然后选择.TXT文件。或者,您可以使用“从文件插入幻灯片”将.TXT文件放入现有演示文稿中。

您可以像这样一次创建的幻灯片数量有限;或许100?

另请注意,VBA在Mac Ofice 2008中消失了,但又回到了Mac Office 2011,所以如果你能找到符合你想要的VB / VBA代码的例子,你可以在Mac上使用它们,只要它没有'必须在Office 2008中发生。