Я разрабатываю приложение для автоматической документации на Python. Одной из обязательных функций является рисование блок-схем. Поскольку пользователи используют Visio, я хотел бы создавать блок-схемы в формате Visio, чтобы пользователь мог вносить точные корректировки в рисунок, не имея навыков программирования. Я ищу надстройки VSTO для Office, и хотя кажется возможным использовать его для программного создания рисунков Visio, неясно, можно ли использовать его с моим приложением Python. Можно ли использовать Python для отправки информации в надстройку VSTO и использования ее для построения блок-схемы в Visio на основе этой информации? Как это можно реализовать? Есть ли какие-либо другие рекомендации о том, как программно создать блок-схему в формате, который пользователи могут редактировать с помощью редактора векторной графики?






Нет необходимости взаимодействовать с надстройкой на основе VSTO. Вы можете автоматизировать любое приложение MS Office (включая Visio) из скрипта Python. Я верю, что pywin32 может помочь с такими задачами.
from win32com.client import constants
appVisio = win32com.client.Dispatch("Visio.Application")
appVisio.Visible =1
doc = appVisio.Documents.Add("Basic Diagram.vst")
pagObj = doc.Pages.Item(1)
doc.SaveAs(r'e:\temp\MyDrawing.vsd')
doc.Close()
win32com возвращает вам тонкую оболочку Python вокруг COM-сервера, предоставленного приложением. Документация по объектной модели Visio находится здесь.
Имейте в виду, что объекты, которые вы возвращаете, являются объектами COM в тонкой оболочке Python и поэтому не всегда ведут себя как объекты Python, а в документации предполагается, что вы пишете на VBA, а не на Python.
Это больше похоже на "философский" вопрос, речь не совсем о программировании. Возможно, вам повезет больше, если вы спросите что-то подобное на специальном ресурсе Visio, таком как visguy.com/vgforum. Но в принципе можно генерировать диаграммы Visio и с помощью python (учитывая, что python работает на той же машине, что и пользователь, и Visio установлен на той же машине).