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

Требования к созданию диаграмм Visio

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

Подход: генерация диаграмм Visio с помощью Conholdate.Total

Conholdate.Total for Java предлагает специализированный API для работы с диаграммами, поддерживающий формат VSDX. Он позволяет загружать мастер‑шаблоны, добавлять фигуры из этих мастеров, перемещать фигуры через их свойства XForm, прикреплять текст и применять предопределённые стили текста, всё это с помощью простых вызовов Java. Документация по классам диаграмм доступна в официальной документации, а полный справочник API можно изучить в справочнике API. Используя эту библиотеку, вы можете автоматизировать весь процесс создания Visio как на сервере, так и на настольном компьютере.

Создание решения: создание диаграммы Visio на Java

Следующие шаги проведут вас через весь процесс, от настройки Maven до сохранения окончательного файла VSDX.

Добавьте зависимость Maven и импортируйте классы

Сначала настройте репозиторий Maven Conholdate и добавьте зависимость SDK в ваш pom.xml.

<repositories>
  <repository>
    <id>conholdate-repo</id>
    <name>Conholdate Maven Repository</name>
    <url>https://repository.conholdate.com/repo/</url>
  </repository>
</repositories>

<dependency>
  <groupId>com.conholdate</groupId>
  <artifactId>conholdate-total</artifactId>
  <version>24.9</version>
  <type>pom</type>
</dependency>

Классы диаграмм, используемые в этом руководстве, находятся в пакете com.aspose.diagram, который поставляется в составе пакета Conholdate.Total for Java:

import com.aspose.diagram.Diagram;
import com.aspose.diagram.Shape;
import com.aspose.diagram.TypeValue;
import com.aspose.diagram.Txt;
import com.aspose.diagram.SaveFileFormat;

Инициализация диаграммы и загрузка мастер-формы

Создайте новый экземпляр Diagram, затем загрузите файл шаблона и выберите мастер, на котором вы хотите основывать свою фигуру. Здесь мы используем встроенный мастер “Rectangle” из шаблона “Basic Shapes.vss”.

// Create a new instance of a diagram
Diagram diagram = new Diagram();

// Define the name of the master (template) to be used for creating shapes
String masterName = "Rectangle";
diagram.addMaster("Basic Shapes.vss", masterName);

Добавить фигуру из шаблона и задать её позицию

Добавьте форму в диаграмму, используя мастер, затем найдите форму по идентификатору, который возвращает addShape, чтобы вы могли скорректировать её позицию.

// Define the dimensions and position for the new shape
double width = 2, height = 2, pinX = 4.25, pinY = 4.5;

// Add a new rectangle shape to the diagram using the specified master
long rectangleId = diagram.addShape(pinX, pinY, width, height, masterName, 0);

// Retrieve the shape by its ID for modification
Shape rectangle = diagram.getPages().get(0).getShapes().getShape(rectangleId);

// Set the position of the shape by modifying its PinX and PinY properties
rectangle.getXForm().getPinX().setValue(5);
rectangle.getXForm().getPinY().setValue(5);

// Set the type of the shape to indicate it is a standard shape
rectangle.setType(TypeValue.SHAPE);

Добавить текст и применить стиль текста

Присоедините текстовый фрагмент к фигуре и примените одну из предопределённых таблиц стилей диаграммы, чтобы метка соответствовала остальному документу.

// Add text to the shape
rectangle.getText().getValue().add(new Txt("Aspose Diagram"));

// Apply a predefined text style to the shape's text
rectangle.setTextStyle(diagram.getStyleSheets().get(3));

Сохранить диаграмму в VSDX

Наконец, запишите диаграмму в файл VSDX, который можно открыть в Microsoft Visio.

diagram.save("Visio_out.vsdx", SaveFileFormat.VSDX);

Создание диаграммы Visio на Java - Полный рабочий пример - Полный код

Следующий код демонстрирует весь рабочий процесс от начала до конца.

import com.aspose.diagram.Diagram;
import com.aspose.diagram.Shape;
import com.aspose.diagram.TypeValue;
import com.aspose.diagram.Txt;
import com.aspose.diagram.SaveFileFormat;

public class CreateVisioDiagram {
    public static void main(String[] args) {
        try {
            // Create a new instance of a diagram
            Diagram diagram = new Diagram();

// Define the name of the master (template) to be used for creating shapes
            String masterName = "Rectangle";
            diagram.addMaster("Basic Shapes.vss", masterName);

// Define the dimensions and position for the new shape
            double width = 2, height = 2, pinX = 4.25, pinY = 4.5;

// Add a new rectangle shape to the diagram using the specified master
            long rectangleId = diagram.addShape(pinX, pinY, width, height, masterName, 0);

// Retrieve the shape by its ID for modification
            Shape rectangle = diagram.getPages().get(0).getShapes().getShape(rectangleId);

// Set the position of the shape by modifying its PinX and PinY properties
            rectangle.getXForm().getPinX().setValue(5);
            rectangle.getXForm().getPinY().setValue(5);

// Set the type of the shape to indicate it is a standard shape
            rectangle.setType(TypeValue.SHAPE);

// Add text to the shape
            rectangle.getText().getValue().add(new Txt("Aspose Diagram"));

// Apply a predefined text style to the shape's text
            rectangle.setTextStyle(diagram.getStyleSheets().get(3));

// Save the modified diagram to a file
            diagram.save("Visio_out.vsdx", SaveFileFormat.VSDX);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

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

Вопросы развертывания проектов Visio Diagram

SDK работает на любой среде выполнения Java 8+, что делает его подходящим для серверных служб, пакетных заданий или настольных утилит. При генерации больших диаграмм следите за использованием кучи и рассматривайте возможность повторного использования единственного экземпляра Diagram для нескольких страниц, чтобы снизить нагрузку на память. Для продакшн‑среды требуется действующая лицензия; временную лицензию для тестирования можно получить на странице временной лицензии и приобрести полную лицензию через страницу цен. Убедитесь, что каталог вывода доступен для записи процессом, который выполняет код.

Заключение

Программное создание диаграмм Visio на Java становится простым с помощью Conholdate.Total for Java. Следуя описанным выше шагам, вы можете загрузить основной шаблон, генерировать файлы VSDX, точно позиционировать фигуры и применять единый стиль текста. Не забудьте получить соответствующую производственную лицензию и протестировать сгенерированные диаграммы в Microsoft Visio, чтобы убедиться в точности макета. С установленным SDK вы сможете автоматизировать создание диаграмм в широком спектре корпоративных сценариев.

Часто задаваемые вопросы

  • Как создать диаграмму Visio на Java, используя шаблон мастера?
    Используйте классы диаграмм, предоставленные Conholdate.Total for Java, загрузите шаблон с помощью addMaster, добавьте форму из этого мастера с помощью addShape и сохраните файл в формате VSDX.

  • В каком файловом формате SDK генерирует диаграммы Visio?
    SDK выводит современный формат VSDX, который полностью совместим с Microsoft Visio.

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

  • Могу ли я интегрировать генерацию диаграмм в веб‑сервис?
    Абсолютно. SDK — это чистая библиотека Java, поэтому её можно вызывать из любого бэкенда на Java, например Spring Boot или Jakarta EE.

Читать дальше