Должен быть способ подключиться к Visio с помощью COM и заставить его сохранить изображение.
Почему бы не попробовать написать что-нибудь самостоятельно, если вы знаете, как использовать COM-материал? В конце концов, если вы не можете найти что-то, что уже сделано для этого, и знаете, что можете придумать, как это сделать самостоятельно, почему бы не написать что-нибудь, чтобы сделать это самостоятельно?
РЕДАКТИРОВАТЬ: немного поработав над тем, что я сказал в своем комментарии: написание какого-то скрипта, кажется, является вашим лучшим вариантом в этой ситуации, и Python, по крайней мере, был бы весьма полезен для этого, используя библиотеку comtypes найдено здесь: http://starship.python.net/crew/theller/comtypes/ Конечно, как я уже сказал, если вы предпочитаете использовать другой язык сценариев, то вы можете попробовать использовать это; Дело в том, что на данный момент я на самом деле использовал только COM с VBA и Python (кроме того, в наши дни Microsoft имеет тенденцию ссылаться на «Автоматизацию», а не на конкретные ссылки на COM, я считаю.) Хорошая вещь в Python заключается в том, что это интерпретируемый язык, и поэтому вам просто нужна версия интерпретатора для различных операционных систем, которые вы используете, с версиями для Windows, OSX, Linux, Unix и т. д. С другой стороны, я сомневаюсь, что вы можете использовать COM на не - Windows-системы без какого-либо взлома, поэтому вам, возможно, придется анализировать данные непосредственно в исходных файлах (и хотя форматы по умолчанию в Visio, похоже, используют некоторую форму XML, это, вероятно, один из тех проприетарных форматов, которые Microsoft, похоже, любит ).
Если вы раньше не использовали Python, в документации по Python есть хорошее руководство, чтобы начать работу: http://docs.python.org/3.1/tutorial/index.html
И, конечно же, вам понадобится сам интерпретатор Python: http://python.org/download/releases/3.1/ (обратите внимание, что вам, возможно, придется вручную добавить каталог Python в переменную среды PATH после установки.)
Когда вы пишете сценарий, вы, вероятно, могли бы иметь синтаксис для запуска сценария что-то вроде "python visioexport.py <source/original file[ with path]>[ <new file[ with path]>]
" (при условии, что файл сценария находится в вашем каталоге Python), с новым файлом по умолчанию, равным файлу того же самого имя и в той же папке / каталоге, что и оригинал (хотя и с другим расширением; на самом деле, если вы хотите, вы можете настроить его на экспорт в несколько форматов, причем формат по умолчанию будет соответствовать формату любого расширения по умолчанию, которое вы выберете; определяется альтернативным расширением, которое вы указали в имени файла, а также, скорее всего, вы можете настроить его так, чтобы, если у вас было только новое имя файла после исходного файла, без указания пути, оно сохранялось с этим новым файлом. имя для каталога исходного файла. И, конечно, если вы не указываете путь к исходному файлу, просто имя файла, вы можете настроить его для получения файла из текущего каталога).
По вопросу о форматах файлов: мне кажется, что преобразование в SVG может быть лучшим решением, так как оно будет более экономичным и лучше будет отражать статус исходных изображений как векторных изображений. С другой стороны, преобразование из формата Visio в SVG не является идеальным (или, по крайней мере, не было в Visio 2003; я не могу найти источник информации, подобный этот для Visio 2007), и, как видно здесь , вам, возможно, придется изменить результирующий XML-файл (хотя это можно сделать с помощью скрипта после экспорта файла через части стандартной библиотеки Python). Если вы не возражаете против дополнительного размера файлов растровых изображений и предпочитаете не включать дополнительный код для исправления результирующих файлов SVG, то вам, вероятно, следует просто использовать растровый формат, например PNG.