我的目标是确保我插入演示文稿的 C++ 代码能够正确编译。因此,我认为应该将每个示例放在一个单独的文件中(以便我可以编译它),并将这些文件中的文本包含在 Powerpoint 幻灯片中……我希望这种“包含”是动态的,这样如果我更改文件中的代码,幻灯片就会自动更新。
有可能吗?我是否必须使用 LaTeX 而不是 Powerpoint?还有其他关于如何解决这个问题的建议吗?
谢谢。
答案1
请参阅此问题。如果将幻灯片作为对象插入,则不需要代码来更新幻灯片
答案2
在 PowerPoint 中,您需要编写宏来读取文本并更新幻灯片。
您可以在此处找到读取文本文件的宏的示例:
从 ascii 文件中读取文本。
您还需要强制刷新幻灯片:
' assuming a reference to the current slide in oSl
ActiveWindow.View.GotoSlide(oSl.SlideIndex)
本文也可以作为一个例子:
将文本文件中的随机短语添加到每张幻灯片上的文本框中
答案3
如果您重命名Powerpoint 2010 .pptx
文件变成.zip
文件,您可以通过等方式打开它Winzip
。7zip
幻灯片内容写在该打包的档案结构中XML
命名的文件中。"...\ppt\slides\slide2.xml"
摘自德语.pptx
文件:
-<a:p>
-<a:r>
<a:rPr lang="de-DE" smtClean="0" err="1" dirty="0"/>
<a:t>A text to change ....</a:t>
</a:r>
-<a:r>
<a:rPr lang="de-DE" smtClean="0" dirty="0"/>
<a:t> </a:t>
</a:r>
-<a:r>
<a:rPr lang="de-DE" smtClean="0" err="1" dirty="0"/>
<a:t>another Text to change</a:t>
</a:r>
-<a:r>
<a:rPr lang="de-DE" smtClean="0" dirty="0"/>
<a:t> </a:t>
</a:r>
-<a:r>
<a:rPr lang="de-DE" smtClean="0" err="1" dirty="0"/>
<a:t>Text ...</a:t>
</a:r>
-<a:r>
<a:rPr lang="de-DE" smtClean="0" dirty="0"/>
<a:t> </a:t>
</a:r>
-<a:r>
<a:rPr lang="de-DE" smtClean="0" err="1" dirty="0"/>
<a:t>Text ...</a:t>
</a:r>
<a:endParaRPr lang="de-DE" smtClean="0" dirty="0"/>
</a:p>
因此,应该可以准备一个.pptx
模板文件并像${Text1234}
使用自制工具一样替换占位符字符串。
答案4
我不知道是否有一个API可以让你直接用C++编写代码,但是有一个适用于Java的API:apache.org 网站因此您始终可以将其包装在脚本中以执行它。
话虽如此,在我看来,LaTex 听起来更适合。