Работа с данными формы Visio

Добавление новой формы в Visio

Aspose.Diagram for Java позволяет вам управлять Microsoft Visio диаграммами различными способами. Одна из вещей, которую вы можете сделать, это добавить новые фигуры на диаграммы. Aspose.Diagram for Java позволяет добавить новую форму к diagram. Добавленную форму также можно настроить с помощью Aspose.Diagram for Java.

В этом разделе описывается, как добавить новую прямоугольную фигуру в файл diagram.

Используйте Aspose.Diagram for Java API для создания новых фигур, а затем добавьте эти фигуры в коллекцию фигур diagram.

Чтобы добавить новую форму:

  1. Найдите страницу - Каждый Visio diagram содержит набор страниц. Разработчики могут получить страницу по идентификатору страницы или имени и сохранить нужную страницу вСтраницаобъект класса.
  2. Добавьте требуемый мастер формы - Каждый Visio diagram содержит коллекцию мастеров. Разработчики могут добавить мастер (по идентификатору или имени) из существующего файла трафарета (по прямому пути или файловому потоку).
  3. Добавить форму в Visio diagram - Разработчики могут разместить новую фигуру в Visio diagram по индексу страницы (начиная с 0), главному имени, PinX, PinY, высоте (необязательно) и ширине (необязательно).
  4. Установить свойства формы - Метод AddShape класса Diagram возвращает идентификатор формы. Разработчики могут получить форму из Visio diagram, используя этот идентификатор, а затем установить ее свойства, например цвет, положение, выравнивание и текст.

Ввод diagram

дело:изображение_альтернативный_текст

diagram с добавленной формой

дело:изображение_альтернативный_текст

Добавить пример программирования

Фрагмент кода ниже показывает, как выполнить каждый шаг.

Получение информации о форме

Работа с диаграммамиобъясняет, как создавать диаграммы, добавлять фигуры и соединители, а затем как получать информацию о diagram элементах, таких какстраницы, мастера , разъемы ишрифты. В этой статье рассматривается, как получить информацию о фигурах в файле diagram.

Каждая фигура в diagram имеет идентификатор и имя. Идентификатор важен при программировании с помощью Visio: это основной метод доступа к фигуре. Каждая фигура также сохраняет информацию о том, из какого шаблона (трафарета) она сделана.

АФорма является объектом на чертеже Visio. Свойство Shapes, предоставляемое классом Page, поддерживает коллекцию объектов Aspose.Diagram.Shape. Свойство Shapes можно использовать для получения информации о фигуре.

Например, в окне консоли ниже вы можете увидеть вывод информации для diagram, который содержит четыре фигуры: два терминатора, процесс и динамический коннектор. У каждого есть уникальный идентификатор, а также имя основной формы (трафарета).

Окно консоли с информацией о форме

дело:изображение_альтернативный_текст

Чтобы получить информацию о странице Visio:

  1. Загружает diagram.
  2. Настраивает цикл foreach для перебора всех фигур в diagram.
  3. Отображает информацию о форме.

Получить пример программирования

Следующий фрагмент кода извлекает информацию о форме из Visio diagram.

Копирование фигур из существующей Visio

Aspose.Diagram for Java API позволяет разработчикам копировать фигуры с исходной страницы Visio на новую страницу Visio diagram. Он также поддерживает копирование групповых фигур. В этой статье описывается, как скопировать все фигуры с исходной страницы diagram.

Чтобы скопировать фигуры, разработчикам также следует скопировать исходные темы PageSheet и исходные темы Visio, чтобы сохранить стиль заливки фигур и другие свойства форматирования.

Этот пример работает следующим образом:

  1. Загрузите источник Visio.
  2. Инициализировать новый Visio
  3. Добавляйте мастера и темы из источника Visio.
  4. Получить страницу из источника Visio.
  5. Скопируйте его PageSheet на новую страницу Visio.
  6. Переберите формы исходной страницы Visio.
  7. Установите его новый идентификатор и добавьте на новую страницу Visio.
  8. Сохраните новый 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:

  1. В diagram щелкните фигуру правой кнопкой мыши.
  2. ВыбиратьДанные , тогдаДанные формы из меню. Все существующие свойства перечислены в диалоговом окне.
Данные фигуры, как показано в Microsoft Visio. ** 
дело:изображение_альтернативный_текст
Окно консоли, показывающее выходные данные формы. ** 
дело:изображение_альтернативный_текст

Читать пример программирования

Фрагменты кода ниже считывают данные формы (настраиваемые свойства).

Чтение свойства формы по имени

Фрагмент кода ниже считывает свойство фигуры по имени (настраиваемое свойство).

Пример программирования чтения по имени

Используйте индексы соединения для соединения фигур

Aspose.Diagram for Java API уже позволяет разработчикам добавлять новые точки соединения на фигуру, и теперь разработчики могут соединять фигуры с помощью индексов соединения.

Используйте индексы соединения для соединения фигур

Элемент connectShapesViaConnectorIndex, предоставляемый классом Page, можно использовать для соединения фигур с помощью индексов соединения. В следующем коде показано, как соединить фигуры:

  1. Инициализировать новый рисунок.
  2. Поместите четыре прямоугольника
  3. Добавьте две дополнительные точки соединения, чтобы на нижней линии границы было три точки соединения.
  4. Соедините первую фигуру от каждого нижнего соединения с тремя другими прямоугольными фигурами сверху с помощью динамических соединителей.
  5. Сохранить рисунок

Использование индексов соединения для соединения фигур Образец программирования

Используйте следующий код в своем приложении 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 для получения родительской формы.

Получить пример программирования родительской фигуры