Чтение фигур внутри группы / контейнера с использованием aspose.diagram java - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь использовать aspose.diagram API для Java, чтобы прочитать мой файл visio (vsdx) и извлечь информацию о формах, трафаретах, соединителях и т. Д. c. В примерах / диаграмме / фигурах, когда я пытаюсь запустить класс retrieveShapeInfo Java с файлом, указанным в коде, он не извлекает информацию о фигурах, присутствующих в группе / контейнере.

Вот ссылка на хранилище GitHub я использую. https://github.com/aspose-diagram/Aspose.Diagram-for-Java Я использую класс com.aspose.diagram.examples / Shapes / RetriveShapeInfo java из хранилища.

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

Вот мой фрагмент кода.

public static void main(String[] args) throws Exception
	{
		// ExStart:RetrieveShapeInfo
		// The path to the documents directory.
		String dataDir = Utils.getSharedDataDir(RetrieveShapeInfo.class) + "Shapes/";

		// Load diagram
		//Diagram diagram = new Diagram(dataDir + "RetrieveShapeInfo.vsd");
		Diagram diagram = new Diagram(dataDir + "filename.vsdx");

		System.out.println(diagram.getPages().getPage(0).getShapes().getCount());
        //List<Shape> ignoredShapes = new List<Shape>();
		for (com.aspose.diagram.Shape shape : (Iterable<Shape>) diagram.getPages().getPage(0).getShapes())
		{

			// Display information about the shapes
			System.out.println("\nShape ID : " + shape.getID());
			System.out.println("Name : " + shape.getName());
			if(shape.getMaster() != null)
			    System.out.println("Master Shape : " + shape.getMaster().getName());

			// ExEnd:RetrieveShapeInfo
		}

1 Ответ

0 голосов
/ 24 марта 2020

Я пытаюсь разобрать каждую фигуру в группе. Вот фрагмент кода.

// for group shapes
            if(shape.getType()==TypeValue.GROUP)
                for (com.aspose.diagram.Shape subshape : (Iterable<com.aspose.diagram.Shape>) shape.getShapes()) {
                    System.out.println("\nParent Shape ID : " + shape.getID());
                    System.out.println("Parent Name : " + shape.getName());
                    System.out.println("\nShape ID : " + subshape.getID());
                    System.out.println("Name : " + subshape.getName());

                    //System.out.println(shape.getShapes().getCount());
                    if (subshape.getText().getValue().getText() != "") {
                        txt = (subshape.getText().getValue().getText().replaceAll("\\<.*?>", ""));
                        System.out.println("Text from shape added : " + txt);
                        txt += txt;
                    }

Этот фрагмент кода анализирует групповые фигуры и возвращает идентификатор родительского элемента, имя и идентификатор дочерней фигуры, а также текст фигуры. Однако фрагмент не может извлечь все формы внутри контейнера / группы.

Вот вывод. Идентификатор формы: 1 Имя: Квадрат.1 Добавлен текст из фигуры: маршрут Amazon 53

Идентификатор фигуры: 2 Имя: Квадрат.2 Добавлен текст из фигуры: AWS WAF

Форма ID: 3 Название: Square.3 Текст из формы добавлен: CloudFRont Distribution

Идентификатор формы: 4 Имя: Square.4 Текст из формы добавлен: S3

Идентификатор формы: 5 Название: Square.5 Текст из формы добавлен: AWS пул пользователей cognito

Идентификатор формы: 6 Имя: Square.6 Текст из формы добавлен: AWS quicksight

Идентификатор формы: 9 Имя: Круг.9 Добавлен текст из фигуры: AWS Аврора

Идентификатор фигуры: 10 Имя: Круг.10 Добавлен текст из фигуры: Красное смещение

Идентификатор фигуры: 15 Имя: Шестиугольник .15 Добавлен текст из фигуры: Dynamo db

Идентификатор фигуры: 16 Имя: шестиугольник.16 Добавлен текст фигуры: Amazon Athena

Идентификатор фигуры: 36 Имя: Добавлен текст фигуры: Logi c уровень

Родительский идентификатор формы: 36 Родительское имя:

Идентификатор формы: 18 Имя: Круг.18 Добавлен текст из фигуры : CloudWatch

Идентификатор родительской формы: 36 Имя родителя:

Идентификатор формы: 35 Имя:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...