用Java创建.vsdx文件(Microsoft Visio)

用Java创建.vsdx文件(Microsoft Visio),java,visio,Java,Visio,我想了解一些关于如何在没有任何商业库的情况下用Java创建.vsdx文件的信息。根据其他问题,这似乎是相当困难的。 作为一个源,我们有一个不同的,可能未知的文件格式,名为.epml,其中包含EPC的图形信息,我们应该能够将其转换为.xml文件。就我目前所了解的.vsdx格式而言,这是解压缩的.vsdx所需的许多文件之一。如果有人能告诉我如何实现/创建所有其他文件,我将非常高兴 编辑:这里的目标是能够转换.epml文件的图形信息,以便Visio能够读取和显示源文件中的图形信息。因此,如果有其他可能

我想了解一些关于如何在没有任何商业库的情况下用Java创建.vsdx文件的信息。根据其他问题,这似乎是相当困难的。 作为一个源,我们有一个不同的,可能未知的文件格式,名为.epml,其中包含EPC的图形信息,我们应该能够将其转换为.xml文件。就我目前所了解的.vsdx格式而言,这是解压缩的.vsdx所需的许多文件之一。如果有人能告诉我如何实现/创建所有其他文件,我将非常高兴

编辑:这里的目标是能够转换.epml文件的图形信息,以便Visio能够读取和显示源文件中的图形信息。因此,如果有其他可能的选项,它不必是.vsdx文件


谢谢

有趣-虽然我无法给出最终答案,但以下是一些想法:

问题1:当最终结果文件需要一些工具(即“Visio”)时,为什么要避免使用商业工具

1) 从XML创建Visio文件: 从VSDX创建模板XML。确定需要编辑的文件。据我所见,这些应该是母版和页面文件。要能够从EPML生成XML,您还应该知道如何使其适应新的结构。 这个解决方案可能是迄今为止最乏味、最不灵活的

2) 使用Visio automation: 假定最终文档需要的不仅仅是图形,也就是形状数据,更简单的解决方案是首先创建图形 a) 作为SVG并导入Visio b) 更简单-通过Visio的自动化功能(VBA、.Net、…)实现自动绘图。要放置的形状已经准备好,因为主控形状将包含所有相关数据和行为设置。
然后,您可以通过许多数据链接功能(向导、标准数据链接、ODBC连接等)之一填充数据。

EPML不是未知格式,它是EPC工具的交换格式。试着用谷歌搜索一下:)

我建议您将.epml文件转换为.svg(有免费的开源转换器可用,如epml2svg)。Visio可以读取和显示.svg文件。方法-似乎不需要编写代码来实现您的目标(将.epml文件转换为Visio可以显示的内容)。远处也有这个工具的在线版本——上传EPML文件,取回SVG,然后在Visio中打开它——就是这样

旁注-有些公司,例如bpm-x,专门从事bpm工具到工具图的转换。也许他们已经为您的原始工具提供了解决方案

.VSDX文件是“office xml”格式,也是开放的并有文档记录的。但从头开始生成文件非常困难,您是对的。因此,原则上,您可以从能够处理开放xml包的任何代码开始。Microsoft有OpenXMLSDK,但那是.NET(假设您使用的是.NET,但解释了OpenXML包的基本组成)


顺便说一句,对于java,没有可以使用的开源visio库。Java和Visio似乎生活在平行的宇宙中。我听说的唯一可行的商业选择似乎是Aspose。

取消商业库(如Aspose)的原因很简单,就是我们不允许在项目中使用它们。此外,该项目仅基于Java,因此您的第二个建议也不起作用。to 1):我们已经确定了包含关键图形信息的XML文件。问题是,Visio还需要什么才能打开最终文件?所以这些限制纯粹是学术性的?不幸的是,你的第一个建议不是一个选择。我认为我必须进一步指定该项目:.epml文件由一个名为RefModMiner的程序读取/显示,该程序允许不同类型的EPC视图,并在这些EPC上运行不同的算法。其想法是能够在所有这些视图中转换EPC。此外,一些选定的算法结果也应该在Visio中表示(即,最短路径在Visio中以某种方式标记),这意味着我们必须能够手动更改Visio文件。我们还查看了较旧的.vdx文件格式,它似乎是一个包含所有信息的大.xml文件。问题是,生成这样一个文件容易吗?是的,vdx更容易——它是一个单独的文件,而不是一个包。但是,它已被弃用。您希望在哪里显示这些Visio文件-在Visio(Windows上)中,还是?如果是Visio/windows,那么Java是唯一的问题。不要用它。改为使用.NET-它更好地支持OpenXMLVisio文件操作。是的,结果文件应该在Visio中可编辑。不幸的是,Java是我们唯一的选择。