我有一个. PPT (PowerPoint,可转换为ODP或PPTX)文件,每张幻灯片上都有演讲者注释。我想将整个演示文稿提取为动态内容,这样我就可以创建一个演讲者备忘单,在我讲话时在手机或桌子上运行(幻灯片缩略图和演讲者注释)。我经常这样做,以至于讨厌手工操作。
这几乎很容易
我还尝试了< code >
有没有办法从冷融合中的PowerPoint文件中获取笔记?
最简单的解决方案:
将PowerPoint演示文稿转换为OpenOffice ODP格式。那是一个压缩文件。CFML可以解压缩它,里面有一个content.xml文件,其中包含幻灯片和笔记,所以CFML可以从该格式中提取笔记。
考虑到CFDOCUMENT功能,ColdFusion甚至可以为您将PPT转换为ODP?
<罢工> 在CF中没有办法直接做到这一点,可以通过下降到底层Java来做到这一点。 我接受更正。上使用showNotes属性
作为替代方案,或者如果由于某种原因不起作用,您应该能够使用Apache POI来执行此操作,尽管您可能需要使用比您的coldFusion版本更新版本的poi,这可能需要一些额外的工作。
public static LinkedList<String> getNotes(String filePath) {
LinkedList<String> results = new LinkedList<String>();
// read the powerpoint
FileInputStream fis = new FileInputStream(filePath);
SlideShow slideShow = new SlideShow(is);
fis.close();
// get the slides
Slide[] slides = ppt.getSlides();
// loop over the slides
for (Slide slide : slides) {
// get the notes for this slide.
Notes notes = slide.getNotesSheet();
// get the "text runs" that are part of this slide.
TextRun[] textRuns = notes.getTextRuns();
// build a string with the text from all the runs in the slide.
StringBuilder sb = new StringBuilder();
for (TextRun textRun : textRuns) {
sb.append(textRun.getRawText());
}
// add the resulting string to the results.
results.add(sb.toString());
}
return results;
}
继续复杂的格式可能是一个挑战(项目符号列表、粗体、斜体、链接、颜色等),因为您必须更深入地挖掘文本运行和相关的应用编程接口,并了解如何生成超文本标记语言。
CFPRESENTATION(至少从第9版开始)确实有一个showNotes属性,但您仍然需要解析输出。根据输出的标记,jQuery会在短时间内抓取您想要的内容。