Сохранить диаграмму Visio 2013 в формате VSD
Как сохранить диаграмму в формате VSD с помощью Visio 2013 в C# Visio Control?
Я использую следующий код:
string filename = String.Format("{0}.vsd", Guid.NewGuid());
visioControl1.Document.SaveAs(temppath + filename); //Error!
Это отлично работает в Visio 2003-2010, но в Visio 2013 выдает исключение "Файл не найден". Если я изменю расширение на "vsdx" в первой строке - это снова нормально. Но я должен поддерживать все версии Visio.
1 ответ
В API Visio есть известная ошибка: Visio Control в Visio 2013 не может быть сохранен как VSD. Это покажет все виды странного поведения. Чтобы справиться с этим, в Visio 2013 вам нужно сохранить как vsdx и использовать невидимый экземпляр приложения Visio для сохранения как vsd:
- сохранить как VSDX
- сделать копию VSDX
- запустить новый невидимый объект приложения Visio
- откройте копию vsdx с помощью невидимого приложения
- сохранить как VSD с помощью невидимого приложения
- (удалите файлы vsdx, сохраненные на шаге 1 / 2)
Чтобы определить версию установленного Visio: VisioVersion = Convert.ToInt32(document.Application.Version.Replace(".", ",").Replace(",0", "")) Если VisioVersion >= 15 -> Visio 2013
Также обратите внимание: чтобы сохранить как vsd / vsdx, вам нужно использовать: document.SaveEx insted of document.Save
Чтобы создать экземпляр невидимого приложения Visio, обратитесь по адресу: Microsoft.Office.Interop.Visio.InvisibleApp.