У меня есть шаблон Visio со своим трафаретом (библиотекой фигур). Представьте, у меня есть трафарет, в котором фигур больше; поэтому я хочу удалить трафарет шаблона Visio и хочу добавить свой. Я много искал это в Интернете, но не смог найти решение. Я могу просто добавить свои формы в трафарет документа шаблона, однако я хочу сделать это с помощью Python, так как я хочу автоматизировать вещи, и в каждом шаблоне я не хочу этого делать.
На странице Office VBA я нашел это, но не смог реализовать свой скрипт. (Добавление объекта документа на основе как шаблона, так и трафарета.)
Вот ссылка: https://docs.microsoft.com/en-us/office/vba/api/visio.documents.add
Public Sub AddDocument_Example()
Dim vsoDocument As Visio.Document
'Add a Document object based on the Basic Diagram template.
Set vsoDocument = Documents.Add("Basic Diagram.vst")
'Add a Document object based on a drawing (creates a copy of the drawing).
Set vsoDocument = Documents.Add("Myfile.vsd ")
'Add a Document object based on a stencil (creates a copy of the stencil).
Set vsoDocument = Documents.Add("Basic Shapes.vss")
'Add a Document object based on no template.
Set vsoDocument = Documents.Add("")
End Sub
Я не знаю, может быть, удаление текущего набора элементов может быть проблематичным, потому что в шаблоне Visio уже есть фигуры из этого набора элементов.
Я открыт для новых идей или решений. Если вы поможете мне, я был бы очень признателен.
Мой текущий код:
import win32com.client
app = win32com.client.Dispatch("Visio.Application")
app.Visible = True
doc = app.Documents.Open("d:\\X.vsd") #Open template document
custom_stencil = app.Documents.Add("d:\\custom_stencil.vssx") #Trying to add custom stencil
page = app.ActivePage
#Show the all items in stencil
for shape in doc.Masters:
print(shape)