Преобразование сложных диаграмм Visio в легковесные графики SVG часто требуется современным Java‑приложениям, отображающим диаграммы в вебе. Conholdate.Total for Java предоставляет надёжный SDK, упрощающий конвертацию Visio в SVG на Java. В этом руководстве вы увидите полный пример кода, узнаете, как настроить параметры конвертации, подключить библиотеку через Maven и эффективно работать с многостраничными файлами Visio. К концу вы будете готовы интегрировать преобразование Visio в SVG в свои проекты.

Полный пример кода: преобразование Visio в SVG в Java

В этом примере показано, как преобразовать файл Visio в SVG с помощью Conholdate.Total for Java.

import com.groupdocs.conversion.Converter;
import com.groupdocs.conversion.options.convert.SvgConvertOptions;
import java.io.File;

public class VisioToSvgConverter {
    public static void main(String[] args) {
        // Input Visio file (VSD, VSDX, VDX, VSS, VSSX, VST, VSTX)
        String inputVisioPath = "sample.vsdx";

        // Directory where SVG files will be saved
        String outputDirectoryPath = "output_svg";

        // Ensure output directory exists
        File outputDir = new File(outputDirectoryPath);
        if (!outputDir.exists()) {
            boolean created = outputDir.mkdirs();
            if (!created) {
                System.err.println("Failed to create output directory: " + outputDirectoryPath);
                return;
            }
        }

        // Perform conversion
        try (Converter converter = new Converter(inputVisioPath)) {
            // Configure SVG conversion options
            SvgConvertOptions svgOptions = new SvgConvertOptions();
            svgOptions.setScale(1.0);               // 100% scale
            svgOptions.setEmbedImages(true);        // Embed images directly into SVG
            svgOptions.setPageSize(SvgConvertOptions.PageSize.A4); // Example page size
            svgOptions.setQuality(100);             // Maximum quality

            // Get total number of pages (each page will become a separate SVG file)
            int pageCount = converter.getPageCount();

            // Convert each page individually – useful for large Visio files
            for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) {
                svgOptions.setPageNumber(pageIndex + 1); // Pages are 1‑based
                String outputSvgPath = outputDirectoryPath + File.separator + "page_" + (pageIndex + 1) + ".svg";

                // Convert current page to SVG
                converter.convert(outputSvgPath, svgOptions);
                System.out.println("Converted page " + (pageIndex + 1) + " to " + outputSvgPath);
            }
        } catch (Exception ex) {
            System.err.println("Error during Visio to SVG conversion: " + ex.getMessage());
            ex.printStackTrace();
        }
    }
}

Примечание: Этот пример кода демонстрирует основную функциональность. Прежде чем использовать его в вашем проекте, убедитесь, что обновили все пути к файлам и значения конфигурации в соответствии с вашей реальной средой, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если вы столкнётесь с какими‑либо проблемами, обратитесь к официальной документации или свяжитесь с службой поддержки для получения помощи.

Как работает конверсия Visio в SVG на Java

Процесс конвертации можно разбить на несколько четких шагов:

  1. Инициализировать конвертер – Класс Converter создаётся с указанием пути к исходному файлу Visio.
try (Converter converter = new Converter(inputVisioPath)) {

Этот класс является частью Conholdate.Total SDK и обрабатывает загрузку файлов VSD, VSDX, VDX, VSS, VSSX, VST и VSTX файлов. См. справочник API для деталей.

  1. Настройка параметров SVG – Экземпляр SvgConvertOptions позволяет задавать масштабирование, встраивание изображений, размер страницы и качество.
SvgConvertOptions svgOptions = new SvgConvertOptions();
svgOptions.setScale(1.0);
svgOptions.setEmbedImages(true);
svgOptions.setPageSize(SvgConvertOptions.PageSize.A4);
svgOptions.setQuality(100);

Эти настройки управляют внешним видом и разрешением генерируемых SVG‑файлов.

  1. Определить количество страниц - converter.getPageCount() возвращает количество страниц в документе Visio, позволяя обрабатывать каждую страницу отдельно.
int pageCount = converter.getPageCount();
  1. Перебор страниц - Для каждой страницы метод setPageNumber выбирает текущую страницу, а converter.convert записывает SVG‑вывод в целевой путь.
for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) {
    svgOptions.setPageNumber(pageIndex + 1);
    String outputSvgPath = outputDirectoryPath + File.separator + "page_" + (pageIndex + 1) + ".svg";
    converter.convert(outputSvgPath, svgOptions);
}

Этот подход экономит память при работе с большими файлами Visio, поскольку каждая страница обрабатывается отдельно.

  1. Обработка исключений - Любые ошибки во время конвертации перехватываются и выводятся, что помогает отлаживать такие проблемы, как неподдерживаемые фигуры.

Следуя этим шагам, SDK преобразует каждую страницу Visio в отдельный SVG‑файл высокого качества, готовый для отображения в вебе или дальнейшей обработки.

Visio в SVG рабочий процесс — Требования и настройка

Прежде чем вы сможете запустить код, настройте Conholdate.Total SDK в вашем Maven‑проекте.

  1. Добавьте репозиторий Conholdate Maven в ваш pom.xml:
   <repositories>
       <repository>
           <id>conholdate-repo</id>
           <name>Conholdate Maven Repository</name>
           <url>https://repository.conholdate.com/repo/</url>
       </repository>
   </repositories>
  1. Добавьте зависимость SDK:
   <dependency>
       <groupId>com.conholdate</groupId>
       <artifactId>conholdate-total</artifactId>
       <version>24.9</version>
       <type>pom</type>
   </dependency>
  1. Скачайте последние бинарные файлы SDK, если вы предпочитаете ручную установку. Файлы доступны со страницы загрузки.

  2. Java version – SDK требует Java 8 или выше. Убедитесь, что совместимость source и target вашего проекта настроена соответствующим образом.

  3. Лицензия - Для использования в продакшене примените действующую лицензию, как описано на странице страница временной лицензии. SDK будет работать в режиме оценки без лицензии, но с ограниченной функциональностью.

После того как зависимости будут разрешены, вы можете скомпилировать и запустить класс VisioToSvgConverter напрямую из вашей IDE или через командную строку.

Заключение

Конвертация Visio в SVG в Java становится простой, когда вы используете возможности Conholdate.Total for Java. SDK обрабатывает все поддерживаемые форматы Visio, предоставляет тонкий контроль над выводом SVG и масштабируется без проблем для многостраничных документов. Следуя пошаговому руководству, вы можете интегрировать эту возможность в любой Java‑ориентированный рабочий процесс, будь то веб‑служба, настольный просмотрщик или автоматизированный конвейер отчетности. Не забудьте получить соответствующую лицензию для продакшн‑развертываний; вы можете изучить варианты ценообразования на странице с ценами и запросить временную лицензию на странице временной лицензии. Happy coding!

Вопросы, которые могут у вас возникнуть

  • Как выполнить visio to SVG конвертацию в Java с использованием Conholdate.Total?
    Используйте класс Converter вместе с SvgConvertOptions, как показано в полном примере кода. SDK абстрагирует работу с файлами, позволяя сосредоточиться на настройках и путях вывода. Подробное использование описано в документации Conholdate.Total for Java.

  • Какие форматы файлов Visio поддерживаются для вывода в SVG?
    Библиотека поддерживает файлы VSD, VSDX, VDX, VSS, VSSX, VST и VSTX. Все они могут быть обработаны с помощью тех же вызовов API, создавая SVG‑файлы высокого качества.

  • Нужна ли лицензия для запуска конвертации в продакшене?
    Да. Для производственных сред требуется действительная лицензия. Вы можете получить временную лицензию на странице временной лицензии и ознакомиться с полным ценообразованием на странице цен.

  • Могу ли я настроить вывод SVG, например, внедрять изображения или задавать размер страницы?
    Абсолютно. Класс SvgConvertOptions предоставляет свойства, такие как setEmbedImages, setPageSize, setScale и setQuality. Настройте их перед вызовом convert, чтобы соответствовать вашим конкретным требованиям к рендерингу.

Связанные статьи