Как получить формат VDX из VSDX, используя Visio 2013 или выше? - PullRequest
0 голосов
/ 19 апреля 2020

Начиная с Microsoft Visio 2013, поддержка документов VSD прекращена. Наше приложение имеет требование конвертировать VSDX в VDX с помощью Visio 2013, но я не смог найти способ сделать это.

Я пытался использовать Visio Interop DLL, чтобы открыть невидимое приложение Visio, и пытался использовать SaveAs, чтобы сохранить VSDX как VDX. Код компилируется и выполняется без ошибок, и я получаю файл .VDX в качестве вывода. Когда я пытаюсь просмотреть этот сгенерированный файл VDX с помощью Visio Viewer, это не удается. В нем говорится

Microsoft Viewer не может выполнить эту операцию

Разве он не был создан как исправный файл?

Нам нужно отойти от Visio 2010 до Visio 2019. Нам нужно найти способ поддержки форматов VSDX и VDX, пока не будут перенесены все наши приложения. Я использовал ниже PO C для преобразования .vsdx в .vdx или для преобразования .vsd в .vdx, оба из которых не работают, когда я пытался просматривать с помощью средства просмотра Visio. -

Было несколько статей, в которых предлагалось использовать ниже PO C для преобразования .VSDX в .VDX или для преобразования .VSD в .VDX, обе из которых не работают. Так что .VSD в .VDX вообще невозможен, если я не использую редактор Visio 2010?

       // Create Visio Application Object
        Visio.Application vsdApp = new Visio.Application();

        // Make Visio Application Invisible
        vsdApp.Visible = false;

        // Create a document object and load a diagram
        Visio.Document vsdDoc = vsdApp.Documents.Open(dataDir + "Drawing1.vsd");

        // Save the VDX diagram
        vsdDoc.SaveAs(dataDir + "SaveDiagramToVDXwithVSTO_out.vdx");   

Ссылка указана - https://csharp.hotexamples.com/examples/Microsoft.Office.Interop.Visio/Application/-/php-application-class-examples.html

1 Ответ

1 голос
/ 19 апреля 2020

Функция «Сохранить как VDX» была действительно удалена в Visio 2013. Даже из API. Если вы называете .SaveAs передачей имени с расширением .vdx, то на самом деле вы получаете .vsd двоичный файл, просто с расширением .vdx. Вы можете убедиться в этом, просто просмотрев полученный файл в блокноте - это не xml.

Когда вы пытаетесь загрузить этот файл в программе просмотра, он пытается проанализировать его как xml, но не удается, потому что файл на самом деле является двоичным файлом, поэтому вы получаете эту ошибку.

Если вам нужна поддержка .vdx, придерживайтесь Visio 2010.

...