Как извлекать фигуры из диаграмм с помощью GroupDocs.Watermark на Java
Когда вам нужно how to extract shapes из диаграммы в стиле Visio программно, библиотека GroupDocs.Watermark предоставляет чистый, ориентированный на Java способ получить каждую деталь — размеры, позиции, встроенные изображения и даже текст внутри каждой фигуры. В этом руководстве вы увидите точно how to extract shapes, почему это важно, и пошаговый код, который можно скопировать в ваш проект.
Быстрые ответы
- Какая библиотека обрабатывает извлечение фигур? GroupDocs.Watermark for Java
- Какая версия Java требуется? JDK 8 или выше
- Можно ли получить данные изображения из фигуры? Да – используйте
shape.getImage() - Доступен ли текст внутри фигуры? Абсолютно, через
shape.getText() - Нужна ли лицензия для продакшн? Требуется действующая лицензия GroupDocs.Watermark
Введение
Управление сложными диаграммами часто требует доступа к подробной информации об их компонентах, таких как фигуры и изображения. Если вам когда‑нибудь нужно было программно получать данные, такие как размеры, позиции или текст, связанные с фигурами диаграммы, используя Java, это руководство для вас. Использование возможностей библиотеки GroupDocs.Watermark может упростить этот процесс в Java‑приложении. В этом руководстве мы пройдем через how to extract shapes из файла диаграммы, а также покажем, как extract image from shape и extract text from shape.
Что такое “how to extract shapes”?
Извлечение фигур означает чтение внутренних объектов диаграммы (страницы, фигуры, изображения, текст), чтобы вы могли анализировать, преобразовывать или повторно использовать их в других приложениях — идеально для автоматизации, отчетности или интеграции с CAD‑инструментами.
Почему использовать GroupDocs.Watermark для извлечения фигур?
- Полная поддержка форматов – работает с VSDX, VDX и многими другими типами диаграмм.
- Богатая объектная модель – предоставляет прямой доступ к геометрии фигур, изображениям и тексту.
- Отсутствие внешних зависимостей – чистый Java, легко встраивается в Maven‑проекты.
Предварительные требования
- GroupDocs.Watermark for Java (version 24.11 or later)
- Java Development Kit (JDK) 8 или выше
- Maven для управления зависимостями
- IDE, например IntelliJ IDEA или Eclipse
Настройка GroupDocs.Watermark для Java
Добавьте библиотеку в ваш Maven pom.xml:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/watermark/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-watermark</artifactId>
<version>24.11</version>
</dependency>
</dependencies>
Вы также можете скачать последние бинарные файлы с GroupDocs.Watermark for Java releases.
Шаги получения лицензии
- Free Trial: Скачайте пробный пакет для оценки API.
- Temporary License: Запросите временный ключ для расширенного тестирования.
- Purchase: Приобретите полную лицензию для использования в продакшн.
Базовая инициализация и настройка
import com.groupdocs.watermark.Watermarker;
import com.groupdocs.watermark.contents.DiagramContent;
import com.groupdocs.watermark.options.DiagramLoadOptions;
DiagramLoadOptions diagramLoadOptions = new DiagramLoadOptions();
Watermarker watermarker = new Watermarker("YOUR_DOCUMENT_DIRECTORY/diagram.vsdx", diagramLoadOptions);
Как извлекать фигуры – руководство по реализации
Загрузка и получение содержимого
// Create load options if necessary
DiagramLoadOptions diagramLoadOptions = new DiagramLoadOptions();
// Initialize watermarker with your document path
Watermarker watermarker = new Watermarker("YOUR_DOCUMENT_DIRECTORY/diagram.vsdx", diagramLoadOptions);
// Retrieve content of the diagram file as a DiagramContent object
DiagramContent content = watermarker.getContent(DiagramContent.class);
Итерация по фигурам
for (DiagramPage page : content.getPages()) {
// Process each shape in the current page
}
for (DiagramShape shape : page.getShapes()) {
if (shape.getImage() != null) {
// Access and print image-related properties
System.out.println("Image Width: " + shape.getImage().getWidth());
System.out.println("Image Height: " + shape.getImage().getHeight());
System.out.println("Image Size: " + shape.getImage().getData().length);
}
// Print other shape attributes
System.out.println("Shape Name: " + shape.getName());
System.out.println("X Position: " + shape.getX());
System.out.println("Y Position: " + shape.getY());
System.out.println("Width: " + shape.getWidth());
System.out.println("Height: " + shape.getHeight());
System.out.println("Rotation Angle: " + shape.getRotationAngle());
System.out.println("Text: " + (shape.getText() != null ? shape.getText() : "No text"));
System.out.println("Shape ID: " + shape.getId());
}
Как извлечь изображение из фигуры
Вызов shape.getImage() возвращает объект, содержащий необработанный bitmap, его размеры и массив байтов. Используйте показанные выше свойства, чтобы сохранить изображение на диск или передать его в другой конвейер обработки.
Как извлечь текст из фигуры
Метод shape.getText() возвращает простой текст внутри фигуры. Если фигура не содержит текста, метод возвращает null. Пример цикла уже выводит текст, и вы можете дальше манипулировать им — например, построить индекс всех меток фигур.
Советы по устранению неполадок
- Проверьте путь к файлу и права чтения.
- Убедитесь, что используете поддерживаемый формат диаграммы (VSDX, VDX и т.д.).
- Если фигура отображается без ожидаемых данных, проверьте примечания к выпуску библиотеки на предмет особенностей формата.
Практические применения
- Diagram Analysis: Автоматически проверять диаграммы на соответствие, проверяя размеры фигур или отсутствие меток.
- Data Visualization: Передавать извлечённые размеры в панель отчётов для визуализации плотности размещения.
- CAD Integration: Объединять данные фигур с CAD‑API для синхронизации спецификаций дизайна между инструментами.
Соображения по производительности
- Close resources: Вызовите
watermarker.close()после завершения, чтобы освободить нативные ресурсы. - Memory management: Большие диаграммы могут потреблять значительный объём heap; следите за памятью и при необходимости увеличьте
-Xmx. - Batch processing: Обрабатывайте файлы пакетами и при возможности переиспользуйте один экземпляр
Watermarker.
Заключение
Следуя этому руководству, вы теперь знаете how to extract shapes, как extract image from shape, и как extract text from shape с помощью GroupDocs.Watermark for Java. Эти техники открывают возможности для автоматизированного анализа диаграмм, отчетности и интеграции с другими инженерными системами. На следующем этапе изучите полный API, ознакомившись с его documentation, и попробуйте комбинировать извлечение фигур с пользовательской бизнес‑логикой.
Раздел FAQ
Что такое GroupDocs.Watermark?
- Комплексная Java‑библиотека, предназначенная для наложения водяных знаков и извлечения информации из различных форматов документов, включая диаграммы.
Могу ли я использовать эту библиотеку для обработки всех типов файлов диаграмм?
- Да, но убедитесь, что формат файла поддерживается, проверив API Reference.
Как извлечь размеры и позиции фигур из диаграммы с помощью Java и GroupDocs.Watermark?
- Загрузите диаграмму, получите доступ к
DiagramContent, затем пройдитесь по фигурам, чтобы получить свойства такие как ширина, высота, X и Y.
- Загрузите диаграмму, получите доступ к
Может ли GroupDocs.Watermark извлекать изображения, встроенные в фигуры диаграмм, с помощью Java?
- Да, она предоставляет методы доступа к данным изображений внутри фигур, включая размер и пиксельные данные, полезные для анализа или модификации.
Каковы предварительные требования для извлечения информации о фигурах диаграммы в Java?
- Java JDK 8+, настройка Maven, библиотека GroupDocs.Watermark (24.11+), и базовые знания Java являются необходимыми для реализации.
Последнее обновление: 2026-02-13
Тестировано с: GroupDocs.Watermark 24.11 for Java
Автор: GroupDocs