这篇文章由Andrew Jonathan Fine撰写,介绍了他如何将Python、COM、DocBook、OpenJade和Word整合在一起,为BEACON(一个可视化编程环境)创建了一个文档工具。这个文档工具在我的公司软件开发方法论中的代码审查中使用,并且带来了显著的成本节约(超过100万美元)。
在开始这个项目之前,我没有使用SGML、XML或其他文档标记语言的经验。正是在我接近重新发明标记语言概念的时候,我决定通过Mark Hammond的书《Python Programming on Win32》中介绍的直接PythonCOM-to-Word接口,寻找一个更好的设计和维护方法。
通过网络搜索,我对XML、HTML和SGML等标记语言有了速成课程的了解。我的搜索还让我了解到了DocBook SGML这一流行的开放标准,以及OpenJade,这是一个可以将DocBook SGML翻译成Word富文本的开源软件包。
这种安排并不完美,但我很快意识到我可以使用它来节省一年的开发和维护成本,并且能够更快地响应新的任务。
我的主要任务是将从组织各处挖掘出的任意数据转换成看起来合理的Microsoft Word 97报告。
我决定通过一个核心应用程序管道来处理这个问题,这个管道通过使用共同的数据约定来协同工作。这个管道将由一个Python生成器应用程序控制,它将驱动一组前端翻译器、内容插入器和后处理格式化程序来生成报告。Python最近被选为我们部门自动化测试脚本的继任语言。我注意到Python除了用于测试之外还有潜力,所以我得到了经理的许可,将其用于这项任务。
这个应用程序的前端翻译器从各种数据源中收集内容(图片、表格、段落),并将其放入字典中。内容插入器创建Word文档,并将字典中的值插入其中。后处理格式化程序对结果进行修改,以符合最