做一个PowerPoint转Markdown的转换器,最初的预期很简单:幻灯片就是个容器,标题在这里,要点在那里,读完就完事。真正动手才发现,幻灯片布局、占位符、文本框,每一层对"内容该放在哪"都有自己的想法。
第一版只读标题占位符。可真实的演示文稿里,真正的标题常常躺在一个文本框里——因为2019年有人手动把它拖到了那儿。第二版改成抓取所有文本框,结果页脚、页码,还有模板里遗留的一句"TODO",全被当成了正文内容。
最后的解法是给内容排优先级:先看标题占位符,再按布局顺序读正文占位符,剩下的文本框按位置排序——从上到下、从左到右。演讲者备注可以选择性追加。现在一份路演PPT能转成干净的Markdown,第N页变成## Slide N,下面的文字确实是人类会从幻灯片上读到的内容。
对比来看,python-pptx的提取做得不错,但布局的启发式规则仍要自己扛。托管型转换服务(如CloudConvert)按文件收费,排序逻辑并不对外公开。作者最终把整套东西打包上线:布局感知提取、备注开关、逐页标题,做成了一个在线工具。
最大的体会是,办公文档格式像考古现场。布局、母版、占位符、覆盖设置、文本框,每一层都是某个人在某个年代留下的变通方案。面对它们,不是解析,是发掘。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.