diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextPositionSequence.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextPositionSequence.java index 704b383b..43501949 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextPositionSequence.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextPositionSequence.java @@ -320,6 +320,14 @@ public class TextPositionSequence implements CharSequence { posYEnd = textPositions.get(textPositions.size() - 1) .getYDirAdj() - height + 2; + } else if (textPositions.get(0).getRotation() == 0 && textPositions.get(0).getDir() == 180f) { + posXInit = textPositions.get(0).getPageWidth() - getX1() + 1; + posXEnd = textPositions.get(0).getPageWidth() - getX2() + textPositions.get(0).getWidthDirAdj() - textPositions.get(textPositions.size() - 1) + .getWidthDirAdj() - 3; + posYInit = textPositions.get(0).getYDirAdj() - height + 2; + posYEnd = textPositions.get(textPositions.size() - 1) + .getYDirAdj() - height + 2; + } else { posXEnd = textPositions.get(textPositions.size() - 1) .getXDirAdj() + textPositions.get(textPositions.size() - 1).getWidthDirAdj() + 1; diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java index a8810169..eb5a0691 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java @@ -807,6 +807,31 @@ public class RedactionIntegrationTest { } + @Test + public void testRotations() throws IOException { + + System.out.println("testTableRedaction"); + long start = System.currentTimeMillis(); + + AnalyzeRequest request = prepareStorage("files/new/RotateTestfile.pdf"); + analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId())); + AnalyzeResult result = analyzeService.analyze(request); + + AnnotateResponse annotateResponse = annotationService.annotate(AnnotateRequest.builder() + .dossierId(TEST_DOSSIER_ID) + .fileId(TEST_FILE_ID) + .build()); + + try (FileOutputStream fileOutputStream = new FileOutputStream(OsUtils.getTemporaryDirectory() + "/Annotated.pdf")) { + fileOutputStream.write(annotateResponse.getDocument()); + } + long end = System.currentTimeMillis(); + + System.out.println("duration: " + (end - start)); + System.out.println("numberOfPages: " + result.getNumberOfPages()); + } + + @Test public void testFindDictionaryEntryInResizedEntryPosition() throws IOException { diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/dictionaries/PII.txt b/redaction-service-v1/redaction-service-server-v1/src/test/resources/dictionaries/PII.txt index 30af203a..e278ccaf 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/dictionaries/PII.txt +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/dictionaries/PII.txt @@ -11,3 +11,5 @@ Sude Halide Nurullah Xinyi Y. Tao Dorn Prasher +RuleAnnotation270GradP +RuleAnnotation270GradLS \ No newline at end of file diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/new/RotateTestfile.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/new/RotateTestfile.pdf new file mode 100644 index 00000000..1848dc38 Binary files /dev/null and b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/new/RotateTestfile.pdf differ