Работа с данными формы Visio
Добавление новой формы в Visio
Aspose.Diagram for Java позволяет вам управлять Microsoft Visio диаграммами различными способами. Одна из вещей, которую вы можете сделать, это добавить новые фигуры на диаграммы. Aspose.Diagram for Java позволяет добавить новую форму к diagram. Добавленную форму также можно настроить с помощью Aspose.Diagram for Java.
В этом разделе описывается, как добавить новую прямоугольную фигуру в файл diagram.
Используйте Aspose.Diagram for Java API для создания новых фигур, а затем добавьте эти фигуры в коллекцию фигур diagram.
Чтобы добавить новую форму:
- Найдите страницу - Каждый Visio diagram содержит набор страниц. Разработчики могут получить страницу по идентификатору страницы или имени и сохранить нужную страницу вСтраницаобъект класса.
- Добавьте требуемый мастер формы - Каждый Visio diagram содержит коллекцию мастеров. Разработчики могут добавить мастер (по идентификатору или имени) из существующего файла трафарета (по прямому пути или файловому потоку).
- Добавить форму в Visio diagram - Разработчики могут разместить новую фигуру в Visio diagram по индексу страницы (начиная с 0), главному имени, PinX, PinY, высоте (необязательно) и ширине (необязательно).
- Установить свойства формы - Метод AddShape класса Diagram возвращает идентификатор формы. Разработчики могут получить форму из Visio diagram, используя этот идентификатор, а затем установить ее свойства, например цвет, положение, выравнивание и текст.
Ввод diagram |
diagram с добавленной формой |
---|
Добавить пример программирования
Фрагмент кода ниже показывает, как выполнить каждый шаг.
Получение информации о форме
Работа с диаграммамиобъясняет, как создавать диаграммы, добавлять фигуры и соединители, а затем как получать информацию о diagram элементах, таких какстраницы, мастера , разъемы ишрифты. В этой статье рассматривается, как получить информацию о фигурах в файле diagram.
Каждая фигура в diagram имеет идентификатор и имя. Идентификатор важен при программировании с помощью Visio: это основной метод доступа к фигуре. Каждая фигура также сохраняет информацию о том, из какого шаблона (трафарета) она сделана.
АФорма является объектом на чертеже Visio. Свойство Shapes, предоставляемое классом Page, поддерживает коллекцию объектов Aspose.Diagram.Shape. Свойство Shapes можно использовать для получения информации о фигуре.
Например, в окне консоли ниже вы можете увидеть вывод информации для diagram, который содержит четыре фигуры: два терминатора, процесс и динамический коннектор. У каждого есть уникальный идентификатор, а также имя основной формы (трафарета).
Окно консоли с информацией о форме
Чтобы получить информацию о странице Visio:
- Загружает diagram.
- Настраивает цикл foreach для перебора всех фигур в diagram.
- Отображает информацию о форме.
Получить пример программирования
Следующий фрагмент кода извлекает информацию о форме из Visio diagram.
Копирование фигур из существующей Visio
Aspose.Diagram for Java API позволяет разработчикам копировать фигуры с исходной страницы Visio на новую страницу Visio diagram. Он также поддерживает копирование групповых фигур. В этой статье описывается, как скопировать все фигуры с исходной страницы diagram.
Чтобы скопировать фигуры, разработчикам также следует скопировать исходные темы PageSheet и исходные темы Visio, чтобы сохранить стиль заливки фигур и другие свойства форматирования.
Этот пример работает следующим образом:
- Загрузите источник Visio.
- Инициализировать новый Visio
- Добавляйте мастера и темы из источника Visio.
- Получить страницу из источника Visio.
- Скопируйте его PageSheet на новую страницу Visio.
- Переберите формы исходной страницы Visio.
- Установите его новый идентификатор и добавьте на новую страницу Visio.
- Сохраните новый Visio в локальном хранилище.
Копировать пример программирования
Скопируйте фигуру Visio в другой экземпляр фигуры.
Метод копирования класса Shape использует экземпляр формы для клонирования.
// import diagram
Diagram diagram = new Diagram(dataDir + "Drawing1.vsdx");
Shape newShape = new Shape();
// copy diagram
newShape.copy(diagram.getPages().get(0).getShapes().get(0));
newShape.setID(3);
newShape.getXForm().getPinX().setValue(1);
newShape.getXForm().getPinY().setValue(1);
Чтение данных формы Visio
Коллекция Props, предоставляемая классом Shape, поддерживаетAspose.Diagram.Prop объект. Свойство можно использовать для чтения данных фигуры (настраиваемые свойства).
Чтение всех свойств формы
Чтобы определить пользовательские свойства в Microsoft Visio:
- В diagram щелкните фигуру правой кнопкой мыши.
- ВыбиратьДанные , тогдаДанные формы из меню. Все существующие свойства перечислены в диалоговом окне.
Данные фигуры, как показано в Microsoft Visio. | ** |
---|---|
Окно консоли, показывающее выходные данные формы. | ** |
---|---|
Читать пример программирования
Фрагменты кода ниже считывают данные формы (настраиваемые свойства).
Чтение свойства формы по имени
Фрагмент кода ниже считывает свойство фигуры по имени (настраиваемое свойство).
Пример программирования чтения по имени
Используйте индексы соединения для соединения фигур
Aspose.Diagram for Java API уже позволяет разработчикам добавлять новые точки соединения на фигуру, и теперь разработчики могут соединять фигуры с помощью индексов соединения.
Используйте индексы соединения для соединения фигур
Элемент connectShapesViaConnectorIndex, предоставляемый классом Page, можно использовать для соединения фигур с помощью индексов соединения. В следующем коде показано, как соединить фигуры:
- Инициализировать новый рисунок.
- Поместите четыре прямоугольника
- Добавьте две дополнительные точки соединения, чтобы на нижней линии границы было три точки соединения.
- Соедините первую фигуру от каждого нижнего соединения с тремя другими прямоугольными фигурами сверху с помощью динамических соединителей.
- Сохранить рисунок
Использование индексов соединения для соединения фигур Образец программирования
Используйте следующий код в своем приложении Java для соединения фигур с помощью индексов соединения с Aspose.Diagram for Java API.
Java
// initialize a new drawing
Diagram diagram = new Diagram();
// get page by index
Page page = diagram.getPages().get(0);
// add masters
String connectorMaster = "Dynamic connector", rectangle = "Rectangle";
int pageNumber = 0;
double width = 2, height = 2, pinX = 4.25, pinY = 9.5;
diagram.addMaster("C:\\temp\\Basic Shapes.vss", rectangle);
diagram.addMaster("C:\\temp\\Basic Shapes.vss", connectorMaster);
// add shapes
long shape1_ID = diagram.addShape(4.5, 7, rectangle, pageNumber);
long shape2_ID = diagram.addShape(2.25, 4.5, rectangle, pageNumber);
long shape3_ID = diagram.addShape(4.5, 4.5, rectangle, pageNumber);
long shape4_ID = diagram.addShape(6.75, 4.5, rectangle, pageNumber);
// get shapes by ID
Shape shape1 = page.getShapes().getShape(shape1_ID);
Shape shape2 = page.getShapes().getShape(shape2_ID);
Shape shape3 = page.getShapes().getShape(shape3_ID);
Shape shape4 = page.getShapes().getShape(shape4_ID);
// add two more connection points
Connection connection1 = new Connection();
connection1.getX().getUfe().setF("Width*0.33");
connection1.getY().getUfe().setF("Height*0");
Connection connection3 = new Connection();
connection3.getX().getUfe().setF("Width*0.66");
connection3.getY().getUfe().setF("Height*0");
shape1.getConnections().add(connection1);
shape1.getConnections().add(connection3);
// add connector shapes
Shape connector1 = new Shape();
Shape connector2 = new Shape();
Shape connector3 = new Shape();
long connecter1Id = diagram.addShape(connector1, connectorMaster, 0);
long connecter2Id = diagram.addShape(connector2, connectorMaster, 0);
long connecter3Id = diagram.addShape(connector3, connectorMaster, 0);
// connect shapes by index of conneecting points
page.connectShapesViaConnectorIndex(shape1.getID(), 6, shape2.getID(), 3, connecter1Id);
page.connectShapesViaConnectorIndex(shape1.getID(), 1, shape3.getID(), 3, connecter2Id);
page.connectShapesViaConnectorIndex(shape1.getID(), 7, shape4.getID(), 3, connecter3Id);
// save drawing
diagram.save("C:\\temp\\Drawing1_out.vsdx", SaveFileFormat.VSDX);
Получить родительскую форму подформы
Aspose.Diagram for Java позволяет разработчикам извлекать родительскую форму подформы.
Получить родительскую форму
Класс Shape предлагает свойство getParentShape для получения родительской формы.