微软视觉 |如何从服务器执行 VSTO(或替代)

Microsoft Visio | How to perform VSTO (or alternative) from a Server

Objective:

  1. 我有一个 Web 应用程序。
  2. 我的应用程序中存在一些 Microsoft Visio 文件。
  3. 我想处理 (edit/export/print) 这些 Visio 文件(注意:像 LibreOffice Draw 这样的开源工具无法提供与 Visio 相同的质量)

目前进展: 了解了微软的VSTO,并通过VSTO实现了一些基本操作

VSTO示例代码

string docPath = "input.vsdx";

this.Application.Documents.Open(docPath);

int pageIndex = 1;
Visio.Pages visioDocPages = this.Application.ActiveDocument.Pages;
if (pageIndex <= visioDocPages.Count) {
    // Use `visioDocPages[pageIndex]` for some processing
}


this.Application.ActiveDocument.Close();

查询:

  1. VSTO 似乎是一个自动化库,所以我担心当需要从服务器处理多个文件时它会失败
  2. 是否有任何其他方法可以在服务器环境中处理 visio(如编辑、导出、打印等)
  3. 我正在寻找 Microsoft 官方软件包或开源软件包(不寻找像 https://products.aspose.com/diagram/net/ 这样的付费软件包)

VSTO 是 COM 插件之上的一个层 API 仅对开发 Office 插件有用。它不能从外部应用程序使用。

不能从服务(例如 IIS)使用任何 Office 应用程序(包括 Visio)。查看 Open XML API (https://docs.microsoft.com/en-us/office/client-developer/visio/how-to-manipulate-the-visio-file-format-programmatically) - 它可以让您在没有 Visio 的情况下操作 vsdx 文件。