虽然我使用Doxygen已经有几年了,但是还有很多其他的方法可以用来创建文档: PowerPoint文件、Word文件、UML文件。虽然每种文件类型都有自己的优点(例如,PowerPoint易于创建,非常适合演示文稿),但这很快就会导致在不同的位置有许多不同的文件,并且没有概述。
现在我想将所有这些文件合并到一个入口点。我的想法是使用Doxygen生成包含源代码文档的HTML文件,用Doxygen编写概述文档(就像Qt所做的那样),并包含基于其他文件的图像。我也在尝试使整个系统自动化。
我现在正在寻找的是一种将这些其他文件转换为图像的方法,这样我的自动系统就可以将这些图像包含在生成的HTML中(最终包含在生成的QCH (Qt帮助)文件中)。
对于PowerPoint,我找到了一些工具,但我似乎不能让免费的工具正常工作,商业版的试用版在我的一些PPTX文件上失败了。
对于企业架构师,我没有找到一种自动生成图像的方法。
有人知道如何从企业架构师文件和PowerPoint文件自动生成图像吗?
发布于 2012-10-05 21:51:53
找到了。
Enterprise architect有一个Java Archive (eaapi.jar),您可以使用它来访问Java中的EAP文件。
您需要做的是获取存储库,打开文件并从中获取所有顶级包(我在此示例中省略了所有错误处理代码):
org.sparx.Repository repo = new org.sparx.Repository();
org.sparx.Project project = repo.GetProjectInterface();
repo.OpenFile(args[0]);
org.sparx.Collection packages = repo.GetModels();然后循环所有包并调用您自己的方法(因为您将需要递归地调用自己):
for (short i=0;i<packages.GetCount();i++)
{
org.sparx.Package pack = (org.sparx.Package)packages.GetAt(i);
handlePackage (project, pack, currentdir);
}然后在该方法中,循环遍历所有图表并生成图像,并递归地循环遍历所有子包:
public static void handlePackage (org.sparx.Project project, org.sparx.Package pack, String output)
{
for (org.sparx.Diagram diagram : pack.GetDiagrams())
{
project.PutDiagramImageToFile (diagram.GetDiagramGUID(), output + diagram.GetName() + ".png", 1);
}
for (org.sparx.Package subpack : pack.GetPackages())
{
handlePackage(project,subpack,output);
}
}就这样。
一些陷阱:
相同
https://stackoverflow.com/questions/12742547
复制相似问题