hotfix: Test for bdr
This commit is contained in:
parent
660abb318f
commit
74362f4233
@ -84,11 +84,11 @@ public class BodyTextFrameService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
float approxLineCount = PositionUtils.getApproxLineCount(textBlock);
|
float approxLineCount = PositionUtils.getApproxLineCount(textBlock);
|
||||||
if (approxLineCount < 2.9f) {
|
if (approxLineCount < 3.3f) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (documentFontSizeCounter.getMostPopular() != null && textBlock.getMostPopularWordFontSize() >= documentFontSizeCounter.getMostPopular()) {
|
if (documentFontSizeCounter.getMostPopular() != null ) {
|
||||||
|
|
||||||
expandRectangle(textBlock, page, expansionsRectangle);
|
expandRectangle(textBlock, page, expansionsRectangle);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -56,8 +56,7 @@ public class ClassificationService {
|
|||||||
textBlock.setClassification("Other");
|
textBlock.setClassification("Other");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (PositionUtils.isOverBodyTextFrame(bodyTextFrame, textBlock, page.getRotation()) && (document.getFontSizeCounter()
|
if (PositionUtils.isOverBodyTextFrame(bodyTextFrame, textBlock, page.getRotation()) ) {
|
||||||
.getMostPopular() == null || textBlock.getHighestFontSize() <= document.getFontSizeCounter().getMostPopular())) {
|
|
||||||
textBlock.setClassification("Header");
|
textBlock.setClassification("Header");
|
||||||
|
|
||||||
} else if (PositionUtils.isUnderBodyTextFrame(bodyTextFrame, textBlock, page.getRotation()) && (document.getFontSizeCounter()
|
} else if (PositionUtils.isUnderBodyTextFrame(bodyTextFrame, textBlock, page.getRotation()) && (document.getFontSizeCounter()
|
||||||
|
|||||||
@ -0,0 +1,13 @@
|
|||||||
|
package com.iqser.red.service.redaction.v1.server.controller;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class Document {
|
||||||
|
|
||||||
|
private List<Paragraph> paragraphs = new ArrayList<>();
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
package com.iqser.red.service.redaction.v1.server.controller;
|
||||||
|
|
||||||
|
import com.iqser.red.service.redaction.v1.model.Rectangle;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.classification.model.Orientation;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.parsing.model.TextDirection;
|
||||||
|
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Builder
|
||||||
|
@Data
|
||||||
|
public class Paragraph {
|
||||||
|
private int paragraphNum;
|
||||||
|
private String text;
|
||||||
|
private String textStyle;
|
||||||
|
private String classification;
|
||||||
|
private int page;
|
||||||
|
private Rectangle boundingBox;
|
||||||
|
private Orientation orientation;
|
||||||
|
private TextDirection textDirection;
|
||||||
|
}
|
||||||
@ -1,6 +1,7 @@
|
|||||||
package com.iqser.red.service.redaction.v1.server.controller;
|
package com.iqser.red.service.redaction.v1.server.controller;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import org.apache.pdfbox.pdmodel.PDDocument;
|
import org.apache.pdfbox.pdmodel.PDDocument;
|
||||||
@ -8,14 +9,18 @@ import org.springframework.web.bind.annotation.PathVariable;
|
|||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualRedactions;
|
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualRedactions;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType;
|
||||||
|
import com.iqser.red.service.redaction.v1.model.Point;
|
||||||
|
import com.iqser.red.service.redaction.v1.model.Rectangle;
|
||||||
import com.iqser.red.service.redaction.v1.model.RedactionLog;
|
import com.iqser.red.service.redaction.v1.model.RedactionLog;
|
||||||
import com.iqser.red.service.redaction.v1.model.RedactionRequest;
|
import com.iqser.red.service.redaction.v1.model.RedactionRequest;
|
||||||
import com.iqser.red.service.redaction.v1.model.RedactionResult;
|
import com.iqser.red.service.redaction.v1.model.RedactionResult;
|
||||||
import com.iqser.red.service.redaction.v1.resources.RedactionResource;
|
import com.iqser.red.service.redaction.v1.resources.RedactionResource;
|
||||||
import com.iqser.red.service.redaction.v1.server.classification.model.Document;
|
import com.iqser.red.service.redaction.v1.server.classification.model.Document;
|
||||||
import com.iqser.red.service.redaction.v1.server.classification.model.Page;
|
import com.iqser.red.service.redaction.v1.server.classification.model.Page;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.classification.model.TextBlock;
|
||||||
import com.iqser.red.service.redaction.v1.server.exception.RedactionException;
|
import com.iqser.red.service.redaction.v1.server.exception.RedactionException;
|
||||||
import com.iqser.red.service.redaction.v1.server.exception.RulesValidationException;
|
import com.iqser.red.service.redaction.v1.server.exception.RulesValidationException;
|
||||||
import com.iqser.red.service.redaction.v1.server.redaction.service.DroolsExecutionService;
|
import com.iqser.red.service.redaction.v1.server.redaction.service.DroolsExecutionService;
|
||||||
@ -41,6 +46,7 @@ public class RedactionController implements RedactionResource {
|
|||||||
private final RedactionStorageService redactionStorageService;
|
private final RedactionStorageService redactionStorageService;
|
||||||
private final RedactionLogMergeService redactionLogMergeService;
|
private final RedactionLogMergeService redactionLogMergeService;
|
||||||
private final ManualRedactionSurroundingTextService manualRedactionSurroundingTextService;
|
private final ManualRedactionSurroundingTextService manualRedactionSurroundingTextService;
|
||||||
|
private final ObjectMapper objectMapper;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -58,6 +64,34 @@ public class RedactionController implements RedactionResource {
|
|||||||
try (PDDocument pdDocument = PDDocument.load(storedObjectStream)) {
|
try (PDDocument pdDocument = PDDocument.load(storedObjectStream)) {
|
||||||
pdDocument.setAllSecurityToBeRemoved(true);
|
pdDocument.setAllSecurityToBeRemoved(true);
|
||||||
|
|
||||||
|
com.iqser.red.service.redaction.v1.server.controller.Document document = new com.iqser.red.service.redaction.v1.server.controller.Document();
|
||||||
|
|
||||||
|
classifiedDoc.getPages().forEach(page -> {
|
||||||
|
|
||||||
|
for (int i = 0; i < page.getTextBlocks().size(); i++) {
|
||||||
|
var t = page.getTextBlocks().get(i);
|
||||||
|
|
||||||
|
|
||||||
|
document.getParagraphs()
|
||||||
|
.add(Paragraph.builder()
|
||||||
|
.text(t.getText())
|
||||||
|
.boundingBox(new Rectangle(new Point(t.getMinX(), t.getMinY()), t.getWidth(), t.getHeight(), t.getPage()))
|
||||||
|
.textStyle(((TextBlock) t).getMostPopularWordStyle())
|
||||||
|
.paragraphNum(i)
|
||||||
|
.orientation(t.getOrientation())
|
||||||
|
.classification(t.getClassification())
|
||||||
|
.textDirection(((TextBlock) t).getSequences().get(0).getDir())
|
||||||
|
.page(t.getPage())
|
||||||
|
.build());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
try (FileOutputStream fileOutputStream = new FileOutputStream("/tmp/Document.json")) {
|
||||||
|
fileOutputStream.write(objectMapper.writeValueAsBytes(document));
|
||||||
|
}
|
||||||
|
|
||||||
pdfVisualisationService.visualizeClassifications(classifiedDoc, pdDocument);
|
pdfVisualisationService.visualizeClassifications(classifiedDoc, pdDocument);
|
||||||
|
|
||||||
return convert(pdDocument, classifiedDoc.getPages().size());
|
return convert(pdDocument, classifiedDoc.getPages().size());
|
||||||
|
|||||||
@ -131,8 +131,8 @@ public class PdfSegmentationService {
|
|||||||
document.setPages(pages);
|
document.setPages(pages);
|
||||||
|
|
||||||
classificationService.classifyDocument(document);
|
classificationService.classifyDocument(document);
|
||||||
sectionsBuilderService.buildSections(document);
|
// sectionsBuilderService.buildSections(document);
|
||||||
sectionsBuilderService.addImagesToSections(document);
|
// sectionsBuilderService.addImagesToSections(document);
|
||||||
|
|
||||||
IOUtils.close(pdDocument);
|
IOUtils.close(pdDocument);
|
||||||
|
|
||||||
|
|||||||
@ -1111,7 +1111,7 @@ public class RedactionIntegrationTest {
|
|||||||
|
|
||||||
System.out.println("classificationTest");
|
System.out.println("classificationTest");
|
||||||
|
|
||||||
AnalyzeRequest request = prepareStorage("files/new/RotateTestFile.pdf");
|
AnalyzeRequest request = prepareStorage("files/new/2001160.pdf");
|
||||||
|
|
||||||
RedactionRequest redactionRequest = RedactionRequest.builder()
|
RedactionRequest redactionRequest = RedactionRequest.builder()
|
||||||
.dossierId(request.getDossierId())
|
.dossierId(request.getDossierId())
|
||||||
|
|||||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user