diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/redaction/DocumentStructure.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/redaction/DocumentStructure.java index 97e49ec..ae01be0 100644 --- a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/redaction/DocumentStructure.java +++ b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/redaction/DocumentStructure.java @@ -1,5 +1,7 @@ package com.knecon.fforesight.service.layoutparser.internal.api.data.redaction; +import java.awt.geom.Rectangle2D; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Stream; @@ -21,6 +23,39 @@ public class DocumentStructure { EntryData root; + public static class TableProperties { + + public static final String NUMBER_OF_ROWS = "numberOfRows"; + public static final String NUMBER_OF_COLS = "numberOfCols"; + + } + + public static class ImageProperties { + + public static final String TRANSPARENT = "transparent"; + public static final String IMAGE_TYPE = "imageType"; + public static final String POSITION = "position"; + + } + + public static class TableCellProperties { + + public static final String B_BOX = "bBox"; + public static final String ROW = "row"; + public static final String COL = "col"; + public static final String HEADER = "header"; + + } + + public static final String RECTANGLE_DELIMITER = ";"; + + public static Rectangle2D parseRectangle2D(String bBox) { + + List floats = Arrays.stream(bBox.split(RECTANGLE_DELIMITER)).map(Float::parseFloat).toList(); + return new Rectangle2D.Float(floats.get(0), floats.get(1), floats.get(2), floats.get(3)); + } + + public EntryData get(List tocId) { if (tocId.isEmpty()) { @@ -66,6 +101,7 @@ public class DocumentStructure { Map properties; List children; + @Override public String toString() { diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/LayoutParsingPipeline.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/LayoutParsingPipeline.java index d311c38..5032478 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/LayoutParsingPipeline.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/LayoutParsingPipeline.java @@ -52,12 +52,12 @@ public class LayoutParsingPipeline { try (PDDocument originDocument = layoutParsingStorageService.getOriginFile(layoutParsingRequest.originFileStorageId())) { ImageServiceResponse imageServiceResponse = new ImageServiceResponse(); if (layoutParsingRequest.imagesFileStorageId().isPresent()) { - imageServiceResponse = layoutParsingStorageService.getImagesFile(layoutParsingRequest.pageFileStorageId()); + imageServiceResponse = layoutParsingStorageService.getImagesFile(layoutParsingRequest.imagesFileStorageId().get()); } TableServiceResponse tableServiceResponse = new TableServiceResponse(); if (layoutParsingRequest.tablesFileStorageId().isPresent()) { - tableServiceResponse = layoutParsingStorageService.getTablesFile(layoutParsingRequest.pageFileStorageId()); + tableServiceResponse = layoutParsingStorageService.getTablesFile(layoutParsingRequest.tablesFileStorageId().get()); } Document documentGraph = parseLayout(layoutParsingRequest.layoutParsingType(), originDocument, imageServiceResponse, tableServiceResponse); diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Classification.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Classification.java index 923a447..00b8cd0 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Classification.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Classification.java @@ -3,9 +3,15 @@ package com.knecon.fforesight.service.layoutparser.processor.python_api.model.im import java.util.HashMap; import java.util.Map; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class Classification { private Map probabilities = new HashMap<>(); diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/FilterGeometry.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/FilterGeometry.java index 3d9ef06..41198d7 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/FilterGeometry.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/FilterGeometry.java @@ -1,8 +1,14 @@ package com.knecon.fforesight.service.layoutparser.processor.python_api.model.image; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class FilterGeometry { private ImageSize imageSize; diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Filters.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Filters.java index c7e20ec..99d25a6 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Filters.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Filters.java @@ -1,8 +1,14 @@ package com.knecon.fforesight.service.layoutparser.processor.python_api.model.image; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class Filters { private FilterGeometry geometry; diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Geometry.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Geometry.java index 8f0bf55..05fa726 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Geometry.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Geometry.java @@ -1,8 +1,14 @@ package com.knecon.fforesight.service.layoutparser.processor.python_api.model.image; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class Geometry { private float width; diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/ImageFormat.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/ImageFormat.java index 2c5d39c..0c61d5e 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/ImageFormat.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/ImageFormat.java @@ -1,8 +1,14 @@ package com.knecon.fforesight.service.layoutparser.processor.python_api.model.image; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class ImageFormat { private float quotient; diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/ImageMetadata.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/ImageMetadata.java index 2eec846..d0c9107 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/ImageMetadata.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/ImageMetadata.java @@ -1,8 +1,14 @@ package com.knecon.fforesight.service.layoutparser.processor.python_api.model.image; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class ImageMetadata { private Classification classification; diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/ImageServiceResponse.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/ImageServiceResponse.java index 273dc35..0a7f176 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/ImageServiceResponse.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/ImageServiceResponse.java @@ -6,9 +6,15 @@ import java.util.List; import com.fasterxml.jackson.annotation.JsonAlias; import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class ImageServiceResponse { private String dossierId; diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/ImageSize.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/ImageSize.java index 42b5da3..8ed076b 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/ImageSize.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/ImageSize.java @@ -1,8 +1,14 @@ package com.knecon.fforesight.service.layoutparser.processor.python_api.model.image; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class ImageSize { private float quotient; diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Position.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Position.java index d3f694d..a49255c 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Position.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Position.java @@ -1,8 +1,14 @@ package com.knecon.fforesight.service.layoutparser.processor.python_api.model.image; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class Position { private float x1; diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Probability.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Probability.java index ce4940c..cd8e19a 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Probability.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/image/Probability.java @@ -1,8 +1,14 @@ package com.knecon.fforesight.service.layoutparser.processor.python_api.model.image; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class Probability { private boolean unconfident; diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/PageInfo.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/PageInfo.java index d132029..6f851b6 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/PageInfo.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/PageInfo.java @@ -1,8 +1,14 @@ package com.knecon.fforesight.service.layoutparser.processor.python_api.model.table; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class PageInfo { private int number; diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/PdfTableCell.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/PdfTableCell.java index 800a25d..a233ed6 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/PdfTableCell.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/PdfTableCell.java @@ -3,12 +3,12 @@ package com.knecon.fforesight.service.layoutparser.processor.python_api.model.ta import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; -import lombok.RequiredArgsConstructor; +import lombok.NoArgsConstructor; @Data @Builder +@NoArgsConstructor @AllArgsConstructor -@RequiredArgsConstructor public class PdfTableCell { private float x0; diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/TableCells.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/TableCells.java index 45c46f1..861b7e7 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/TableCells.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/TableCells.java @@ -1,10 +1,14 @@ package com.knecon.fforesight.service.layoutparser.processor.python_api.model.table; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data @Builder +@NoArgsConstructor +@AllArgsConstructor public class TableCells { private float x0; diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/TableData.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/TableData.java index af52a5a..be1d492 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/TableData.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/TableData.java @@ -3,9 +3,15 @@ package com.knecon.fforesight.service.layoutparser.processor.python_api.model.ta import java.util.ArrayList; import java.util.List; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class TableData { private PageInfo pageInfo; diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/TableServiceResponse.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/TableServiceResponse.java index dc7e28e..fbfea32 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/TableServiceResponse.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/TableServiceResponse.java @@ -3,9 +3,15 @@ package com.knecon.fforesight.service.layoutparser.processor.python_api.model.ta import java.util.ArrayList; import java.util.List; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class TableServiceResponse { private String dossierId; diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/mapper/PropertiesMapper.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/mapper/PropertiesMapper.java index 09ccf25..77922f0 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/mapper/PropertiesMapper.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/mapper/PropertiesMapper.java @@ -1,36 +1,23 @@ package com.knecon.fforesight.service.layoutparser.processor.services.mapper; import java.awt.geom.Rectangle2D; -import java.util.Arrays; import java.util.HashMap; -import java.util.List; import java.util.Map; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructure; import com.knecon.fforesight.service.layoutparser.processor.model.graph.nodes.Image; import com.knecon.fforesight.service.layoutparser.processor.model.graph.nodes.ImageType; -import com.knecon.fforesight.service.layoutparser.processor.model.graph.nodes.TableCell; import com.knecon.fforesight.service.layoutparser.processor.model.graph.nodes.Table; -import com.knecon.fforesight.service.layoutparser.processor.utils.RectangleTransformations; +import com.knecon.fforesight.service.layoutparser.processor.model.graph.nodes.TableCell; public class PropertiesMapper { - public static final String TRANSPARENT = "transparent"; - public static final String IMAGE_TYPE = "imageType"; - public static final String POSITION = "position"; - public static final String ROW = "row"; - public static final String COL = "col"; - public static final String HEADER = "header"; - public static final String B_BOX = "bBox"; - public static final String NUMBER_OF_ROWS = "numberOfRows"; - public static final String NUMBER_OF_COLS = "numberOfCols"; - - public static Map buildImageProperties(Image image) { Map properties = new HashMap<>(); - properties.put(IMAGE_TYPE, image.getImageType().toString()); - properties.put(TRANSPARENT, String.valueOf(image.isTransparent())); - properties.put(POSITION, RectangleTransformations.toString(image.getPosition())); + properties.put(DocumentStructure.ImageProperties.IMAGE_TYPE, image.getImageType().toString()); + properties.put(DocumentStructure.ImageProperties.TRANSPARENT, String.valueOf(image.isTransparent())); + properties.put(DocumentStructure.ImageProperties.POSITION, toString(image.getPosition())); return properties; } @@ -38,15 +25,15 @@ public class PropertiesMapper { public static Map buildTableCellProperties(TableCell tableCell) { Map properties = new HashMap<>(); - properties.put(ROW, String.valueOf(tableCell.getRow())); - properties.put(COL, String.valueOf(tableCell.getCol())); - properties.put(HEADER, String.valueOf(tableCell.isHeader())); + properties.put(DocumentStructure.TableCellProperties.ROW, String.valueOf(tableCell.getRow())); + properties.put(DocumentStructure.TableCellProperties.COL, String.valueOf(tableCell.getCol())); + properties.put(DocumentStructure.TableCellProperties.HEADER, String.valueOf(tableCell.isHeader())); if (tableCell.getPages().size() > 1 || tableCell.getBBox().keySet().size() > 1) { throw new IllegalArgumentException("TableCell can only occur on a single page!"); } - String bBoxString = RectangleTransformations.toString(tableCell.getBBox().get(tableCell.getPages().stream().findFirst().get())); - properties.put(B_BOX, bBoxString); + String bBoxString = toString(tableCell.getBBox().get(tableCell.getPages().stream().findFirst().get())); + properties.put(DocumentStructure.TableCellProperties.B_BOX, bBoxString); return properties; } @@ -55,33 +42,33 @@ public class PropertiesMapper { public static Map buildTableProperties(Table table) { Map properties = new HashMap<>(); - properties.put(NUMBER_OF_ROWS, String.valueOf(table.getNumberOfRows())); - properties.put(NUMBER_OF_COLS, String.valueOf(table.getNumberOfCols())); + properties.put(DocumentStructure.TableProperties.NUMBER_OF_ROWS, String.valueOf(table.getNumberOfRows())); + properties.put(DocumentStructure.TableProperties.NUMBER_OF_COLS, String.valueOf(table.getNumberOfCols())); return properties; } public static void parseImageProperties(Map properties, Image.ImageBuilder builder) { - builder.imageType(parseImageType(properties.get(IMAGE_TYPE))); - builder.transparent(Boolean.parseBoolean(properties.get(TRANSPARENT))); - builder.position(parseRectangle2D(properties.get(POSITION))); + builder.imageType(parseImageType(properties.get(DocumentStructure.ImageProperties.IMAGE_TYPE))); + builder.transparent(Boolean.parseBoolean(properties.get(DocumentStructure.ImageProperties.TRANSPARENT))); + builder.position(DocumentStructure.parseRectangle2D(properties.get(DocumentStructure.ImageProperties.POSITION))); } public static void parseTableCellProperties(Map properties, TableCell.TableCellBuilder builder) { - builder.row(Integer.parseInt(properties.get(ROW))); - builder.col(Integer.parseInt(properties.get(COL))); - builder.header(Boolean.parseBoolean(properties.get(HEADER))); - builder.bBox(parseRectangle2D(properties.get(B_BOX))); + builder.row(Integer.parseInt(properties.get(DocumentStructure.TableCellProperties.ROW))); + builder.col(Integer.parseInt(properties.get(DocumentStructure.TableCellProperties.COL))); + builder.header(Boolean.parseBoolean(properties.get(DocumentStructure.TableCellProperties.HEADER))); + builder.bBox(DocumentStructure.parseRectangle2D(properties.get(DocumentStructure.TableCellProperties.B_BOX))); } public static void parseTableProperties(Map properties, Table.TableBuilder builder) { - builder.numberOfRows(Integer.parseInt(properties.get(NUMBER_OF_ROWS))); - builder.numberOfCols(Integer.parseInt(properties.get(NUMBER_OF_COLS))); + builder.numberOfRows(Integer.parseInt(properties.get(DocumentStructure.TableProperties.NUMBER_OF_ROWS))); + builder.numberOfCols(Integer.parseInt(properties.get(DocumentStructure.TableProperties.NUMBER_OF_COLS))); } @@ -99,14 +86,14 @@ public class PropertiesMapper { public static String toString(Rectangle2D rectangle2D) { - return String.format("%f,%f,%f,%f", rectangle2D.getX(), rectangle2D.getY(), rectangle2D.getWidth(), rectangle2D.getHeight()); - } - - - public static Rectangle2D parseRectangle2D(String bBox) { - - List floats = Arrays.stream(bBox.split(",")).map(Float::parseFloat).toList(); - return new Rectangle2D.Float(floats.get(0), floats.get(1), floats.get(2), floats.get(3)); + return String.format("%f%s%f%s%f%s%f", + rectangle2D.getX(), + DocumentStructure.RECTANGLE_DELIMITER, + rectangle2D.getY(), + DocumentStructure.RECTANGLE_DELIMITER, + rectangle2D.getWidth(), + DocumentStructure.RECTANGLE_DELIMITER, + rectangle2D.getHeight()); } }