Microsoft® Visio 通过 Java 拆分文件

使用基于 Java 的应用程序中的 Java 代码将单个 Visio 文档拆分为不同的文件

 

Java Visio 库 能够在基于 Java 的应用程序中将 Visio 文档拆分为多个页面。支持的文件格式包括 VDW、VDX、VSD、VSDM、VSDX、VSS、VSSM、VSSX、VST、VSTM、VSTX、VSX、VTX。

将 Visio 文档拆分为多个文件

按页面拆分 Visio 文件的最简单方法是,通过以下方式访问所有页面 页面 遍历每个页面并调用 [复制]( https://apireference.aspose.com/diagram/java/com.aspose.diagram/page#copy(com.aspose.diagram.Page) ) 方法。最后保存到指定路径。

  • 使用完整路径加载 Visio 文件 diagram 类 . 遍历每一页
  • 创建一个新的 Diagram 类对象 +通过复制页面 复制方法
  • 调用 save() 方法并传递具有相关 SaveFormat 的文件名(完整路径)。
Java 拆分 Visio 个文件的代码
// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-Java
// The path to the documents directory.
String dataDir = Utils.getDataDir(CopyVisioPage.class);
// Call the diagram constructor to load diagram from a VSD file
Diagram originalDiagram = new Diagram(dataDir + "Drawing1.vsd");
// initialize the new visio diagram
Diagram newDiagram = new Diagram();
// add all masters from the source Visio diagram
MasterCollection originalMasters = originalDiagram.getMasters();
for (Master master : (Iterable<Master>) originalMasters) {
newDiagram.addMaster(originalDiagram, master.getName());
}
// get the page object from the original diagram
Page SrcPage = originalDiagram.getPages().getPage("Page-1");
// set page name
SrcPage.setName("new page");
// it calculates max page id
int max = 0;
if (newDiagram.getPages().getCount() != 0)
max = newDiagram.getPages().get(0).getID();
for (int i = 1; i < newDiagram.getPages().getCount(); i++)
{
if (max < newDiagram.getPages().get(i).getID())
max = newDiagram.getPages().get(i).getID();
}
int MaxPageId = max;
// set page id
SrcPage.setID(MaxPageId);
// add reference of the original diagram page
newDiagram.getPages().add(SrcPage);
// remove first empty page
newDiagram.getPages().remove(newDiagram.getPages().get(0));
// save diagram in VDX format
newDiagram.save(dataDir + "CopyVisioPage_Out.vsdx", SaveFileFormat.VSDX);