Aspose.Diagram for Java 是一个功能丰富的 Java API,用于以编程方式操作 Visio 图表,而无需 Microsoft Visio。 API 支持使用流行的 Visio 格式,包括 VSD、VSDX、VDX、VSDM、VSSM 和 VSSX。最近,我们利用了 Aspose.Diagram for Java 的功能,使在 Node.js 应用程序中实现 MS Visio 自动化功能成为可能。这些功能让您可以在 Node.js 应用程序中创建、操作、转换和处理 MS Visio 图表。

Aspose.Diagram for Node.js via Java 提供了一套完整的功能来自动创建或操作 Visio 图表。您可以通过几行代码轻松创建、读取、导出、打印和保护图表。在本文中,我将介绍如何在 Node.js 应用程序中从头开始创建 Visio 图表。本文的其余部分分为以下几节。

Node.js Visio API - 安装

使用以下命令在您的 Node.js 应用程序中安装 Aspose.Diagram 包。

npm install aspose.diagram --save

在 Node.js 中创建 MS Visio 图表

我将从头开始创建一个空的 Visio 图表 (VSDX)。以下是执行此操作的步骤。

以下代码示例展示了如何在 Node.js 应用程序中创建 Visio 图表 (VSDX)。

var aspose = aspose || {};
aspose.diagram = require("aspose.diagram");

var diagram = new aspose.diagram.Diagram();
diagram.save("output.vsdx", aspose.diagram.SaveFileFormat.VSDX);

在 Node.js 中将 Master 添加到 Visio 图表

Visio 模具包含用于在 Visio 图表中添加/复制形状的主形状的集合。使用 VSS 模具文件将母版添加到 Visio 图表。以下是使用 Aspose.Diagram 添加母版的步骤。

  • 使用 Diagram 类创建一个新的 Visio 图表。
  • 使用模板文件的路径和主文件的名称/ID 将主文件添加到图表中。
  • 使用主人的名字将形状添加到图表中。
  • 使用 Diagram.save() 方法保存图表。

以下代码示例展示了如何在 Node.js 中向 Visio 图表添加母版。

var aspose = aspose || {};
aspose.diagram = require("aspose.diagram");

var diagram = new aspose.diagram.Diagram();

// 将模板加载到流中
templateFileName = "NetApp-FAS-series.vss";

// 添加具有模板文件路径和主 ID 的主控
masterName = "FAS80xx rear empty";
diagram.addMaster(templateFileName, 2);

// 或者添加带有模板文件路径和主名称的主
diagram.addMaster(templateFileName, masterName);

// 或从源图中将主图添加到图
src = new aspose.diagram.Diagram(templateFileName);
diagram.addMaster(src, masterName);

// 添加具有已定义 PinX 和 PinY 的形状。
diagram.addShape(2.0, 2.0, masterName, 0);
diagram.addShape(6.0, 6.0, masterName, 0);

// 添加具有定义的 PinX、PinY、宽度和高度的形状。
diagram.addShape(7.0, 3.0, 1.5, 1.5, masterName, 0);

diagram.save("output.vsdx", aspose.diagram.SaveFileFormat.VSDX);

在 Node.js 的 Visio 图表中插入页面

在创建形状之前,您需要在 Visio 图表中至少有一页。 Visio 图表中的每个页面都有一个名称和 ID,用于唯一标识该页面。以下是在 Visio 图表中添加页面的步骤。

以下代码示例展示了如何将页面插入到 Node.js 中的 Visio 图表中。

var aspose = aspose || {};
aspose.diagram = require("aspose.diagram");

var diagram = new aspose.diagram.Diagram();
// 它计算最大页面ID
 max = 0;
if (diagram.getPages().getCount() != 0)
    max = diagram.getPages().get(0).getID();

for ( i = 1; i < diagram.getPages().getCount(); i++)
{
    if (max < diagram.getPages().get(i).getID())
        max = diagram.getPages().get(i).getID();
}
        
// 初始化一个新的页面对象
newPage = new aspose.diagram.Page();
// 设置名称
newPage.setName("new page");
// 设置页面ID
newPage.setID(max + 1);

// 或者试试 Page 构造函数
// 页面 newPage = new Page(MaxPageId + 1);

// 添加一个新的空白页
diagram.getPages().add(newPage);
diagram.save("output.vsdx", aspose.diagram.SaveFileFormat.VSDX);

在 Node.js 的 Visio 图表中创建形状

在图表中创建页面后,您可以向其中添加形状。以下是在图表中创建和插入形状的步骤。

  • 创建一个 Diagram 类的对象。
  • 使用模板文件的路径将 master 添加到图表中。
  • 使用 Diagram.addShape() 方法添加一个矩形。
  • 设置形状的属性,例如 ID、文本、位置、填充颜色等。
  • 使用 Diagram.save() 方法保存图表。

以下代码示例展示了如何在 Node.js 中向 Visio 图表添加形状。

var aspose = aspose || {};
aspose.diagram = require("aspose.diagram");

var diagram = new aspose.diagram.Diagram("output.vsdx");

// 按名称获取页面
page = diagram.getPages()[.getPage("Page-2")];

// 添加具有模板文件路径和主 ID 的主控
masterName = "Rectangle";
// 添加具有模板文件路径和主控名称的主控
diagram.addMaster("Basic Shapes.vss", masterName);
            
// 页面索引从 0 开始
PageIndex = 2;
width = 2, height = 2, pinX = 4.25, pinY = 4.5;
// 添加一个新的矩形形状
rectangleId = diagram.addShape(pinX, pinY, width, height, masterName, PageIndex);
            
// 设置形状属性 
rectangle = page.getShapes().getShape(rectangleId);
rectangle.getXForm().getPinX().setValue(5);
rectangle.getXForm().getPinY().setValue(5);
rectangle.setType(TypeValue.SHAPE);
rectangle.getText().getValue().add(new Txt("Aspose Diagram"));
rectangle.setTextStyle(diagram.getStyleSheets().get(3));
rectangle.getLine().getLineColor().setValue("#ff0000");
rectangle.getLine().getLineWeight().setValue(0.03);
rectangle.getLine().getRounding().setValue(0.1);
rectangle.getFill().getFillBkgnd().setValue("#ff00ff");
rectangle.getFill().getFillForegnd().setValue("#ebf8df");

diagram.save("output.vsdx", aspose.diagram.SaveFileFormat.VSDX);

在 Node.js 中将文本形状添加到 Visio 图表

Aspose.Diagram 还允许您向 Visio 图表添加文本。在这种情况下,文本将作为形状添加。以下是将文本添加到 Visio 图表的步骤。

  • 使用 Diagram 类创建一个新的 Visio 图表。
  • 使用 Diagram.getPages().getPage(0).addText() 方法向图表添加文本形状。
  • 使用 Diagram.save() 方法保存图表。

以下代码示例展示了如何在 Node.js 中将文本形状添加到 Visio 图表。

var aspose = aspose || {};
aspose.diagram = require("aspose.diagram");

var diagram = new aspose.diagram.Diagram();

// 设置参数
PinX = 1, PinY = 1, Width = 1, Height = 1;
text = "Test text";

// 向 Visio 页面添加文本
diagram.getPages().getPage(0).addText(PinX, PinY, Width, Height, text);

diagram.save("output.vsdx", aspose.diagram.SaveFileFormat.VSDX);

Visio 图表中的超链接可用于从一个页面导航到另一个页面,或者将文件或网页链接到绘图。以下是将超链接添加到 Visio 图表的步骤。

  • 创建一个新的 Visio 图表。
  • 从图表中选择所需的页面。
  • 从所选页面中选择所需的 Shape
  • 使用 Hyperlink 类创建新的超链接并设置其属性。
  • 使用 Shape.getHyperlinks().add() 方法将超链接添加到形状。
  • 保存图表。

以下代码示例展示了如何在 Node.js 中向 Visio 图表添加超链接。

var aspose = aspose || {};
aspose.diagram = require("aspose.diagram");

var diagram = new aspose.diagram.Diagram();

page = diagram.getPages().getPage(0);
// 通过 ID 获取形状
shape = page.getShapes().getShape(2);

// 初始化超链接对象
hyperlink = new aspose.diagram.Hyperlink();
// 设置地址值
hyperlink.getAddress().setValue("http://www.google.com/");
// 设置子地址值
hyperlink.getSubAddress().setValue("Sub address here");
// 设置描述值
hyperlink.getDescription().setValue("Description here");
// 设置名称
hyperlink.setName("MyHyperLink");

// 向形状添加超链接
shape.getHyperlinks().add(hyperlink); 

diagram.save("output.vsdx", aspose.diagram.SaveFileFormat.VSDX);

结论

在本文中,您学习了如何在 Node.js 应用程序中从头开始创建 Visio 图表/绘图。分步教程和代码示例展示了如何使用几行代码在 Visio 图表中添加母版、页面、形状、文本和超链接。您可以使用 documentation 探索有关适用于 Node.js 的 Visio API 的更多信息。

相关文章)