Создание диаграммы 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.
