Microsoft Visio | Как выполнить VSTO (или альтернативу) с сервера

#vsto #visio

Вопрос:

Цель:

  1. У меня есть веб — приложение.
  2. У меня есть несколько файлов Microsoft Visio, присутствующих в моем приложении.
  3. Я хочу обработать (отредактировать/экспортировать/распечатать) эти файлы Visio (Примечание: инструменты с открытым исходным кодом, такие как LibreOffice Draw, не дают такого же качества, как Visio).

Текущий прогресс: Я узнал о Microsoft 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 officail, ЛИБО пакеты с открытым исходным кодом (НЕ ищу платные пакеты, такие как https://products.aspose.com/diagram/net/)

Комментарии:

1. Сообщение на форуме Microsoft: techcommunity.microsoft.com/t5/microsoft-learn/…

Ответ №1:

VSTO-это слой поверх API надстроек COM, полезный только для разработки надстроек Office. Он не может быть использован из внешних приложений.

Никакие приложения Office (включая Visio) не могут использоваться из службы (например, IIS). Посмотрите на API Open XML (https://docs.microsoft.com/en-us/office/client-developer/visio/how-to-manipulate-the-visio-file-format-programmatically) — это позволит вам управлять файлами vsdx без Visio.

Комментарии:

1. Я действительно взглянул на API Open XML, в нем отсутствуют возможности для конкретных приложений, такие как экспорт. и приложение с открытым исходным кодом, такое как LibreOffice, экспортирует Visio с некоторыми незначительными ошибками.