Spax EA 将图表导出到 Word 文档的最佳方式
Spax EA best way to export diagrams into Word document
得到一个旧模块,该模块使用来自 sparx ea 项目的数据生成报告。
文档中有部分需要插入图表作为图片。
现在看起来像那样
public static void copyDiagram(
EA.Diagram diagram,
EA.Repository eaRepository)
{
eaRepository.App.Project.PutDiagramImageOnClipboard(diagram.DiagramGUID, 0);
eaRepository.CloseDiagram(diagram.DiagramID);
}
将其复制到剪贴板,然后出现类似
currentDocumentRange.Paste()
我觉得很奇怪。
我觉得这样用剪贴板不太好,所以我想以后重写它。
所以,只有我在那里找到的其他函数看起来像那样 PutDiagramImageToFile(diagrammGUID, path, type)
如果没有更好的选择,可以新建一个文件,然后通过路径获取文件插入到word文档中,然后删除吗?
或者,也许还有一些其他的 SparxEA 函数,可以从图表中以 byte[]
格式或类似 Image
格式获取图像?
哪种方式比较好?
我正在使用此代码(在图表包装器 class 上)获取图表图像,而无需使用剪贴板。
此代码主要用于自定义书面文档生成器,并且速度惊人。
/// <summary>
/// returns diagram image
/// </summary>
public Image image
{
get
{
EA.Project projectInterface = this.model.getWrappedModel().GetProjectInterface();
string diagramGUID = projectInterface.GUIDtoXML(this.wrappedDiagram.DiagramGUID);
string filename = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".png";
//save diagram image to file (format ".png")
projectInterface.PutDiagramImageToFile(diagramGUID, filename, 1);
//load the contents of the file into a memorystream
MemoryStream imageStream = new MemoryStream(File.ReadAllBytes(filename));
//then create the image from the memorystream.
//this allows us to delete the temporary file right after loading it.
//When using Image.FromFile the file would have been locked for the lifetime of the Image
Image diagramImage = Image.FromStream(imageStream);
//delete the temorary file
System.IO.File.Delete(filename);
return diagramImage;
}
}
得到一个旧模块,该模块使用来自 sparx ea 项目的数据生成报告。
文档中有部分需要插入图表作为图片。
现在看起来像那样
public static void copyDiagram(
EA.Diagram diagram,
EA.Repository eaRepository)
{
eaRepository.App.Project.PutDiagramImageOnClipboard(diagram.DiagramGUID, 0);
eaRepository.CloseDiagram(diagram.DiagramID);
}
将其复制到剪贴板,然后出现类似
currentDocumentRange.Paste()
我觉得很奇怪。 我觉得这样用剪贴板不太好,所以我想以后重写它。
所以,只有我在那里找到的其他函数看起来像那样 PutDiagramImageToFile(diagrammGUID, path, type)
如果没有更好的选择,可以新建一个文件,然后通过路径获取文件插入到word文档中,然后删除吗?
或者,也许还有一些其他的 SparxEA 函数,可以从图表中以 byte[]
格式或类似 Image
格式获取图像?
哪种方式比较好?
我正在使用此代码(在图表包装器 class 上)获取图表图像,而无需使用剪贴板。
此代码主要用于自定义书面文档生成器,并且速度惊人。
/// <summary>
/// returns diagram image
/// </summary>
public Image image
{
get
{
EA.Project projectInterface = this.model.getWrappedModel().GetProjectInterface();
string diagramGUID = projectInterface.GUIDtoXML(this.wrappedDiagram.DiagramGUID);
string filename = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".png";
//save diagram image to file (format ".png")
projectInterface.PutDiagramImageToFile(diagramGUID, filename, 1);
//load the contents of the file into a memorystream
MemoryStream imageStream = new MemoryStream(File.ReadAllBytes(filename));
//then create the image from the memorystream.
//this allows us to delete the temporary file right after loading it.
//When using Image.FromFile the file would have been locked for the lifetime of the Image
Image diagramImage = Image.FromStream(imageStream);
//delete the temorary file
System.IO.File.Delete(filename);
return diagramImage;
}
}