RED-9998: App version history (for conditional re-analyzing the layout of a file)

This commit is contained in:
maverickstuder 2024-12-09 12:32:37 +01:00
parent 8f3f8845a1
commit 8844febf71
4 changed files with 33 additions and 31 deletions

View File

@ -17,6 +17,4 @@ public class LayoutParserSettings {
boolean debug; boolean debug;
LayoutParsingType layoutParsingTypeOverride; LayoutParsingType layoutParsingTypeOverride;
String pdftronLicense;
String layoutParserVersion;
} }

View File

@ -20,6 +20,7 @@ import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.documentinterchange.markedcontent.PDMarkedContent; import org.apache.pdfbox.pdmodel.documentinterchange.markedcontent.PDMarkedContent;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.iqser.red.service.redaction.v1.server.mapper.DocumentDataMapper; import com.iqser.red.service.redaction.v1.server.mapper.DocumentDataMapper;
@ -87,29 +88,32 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) @FieldDefaults(level = AccessLevel.PRIVATE)
public class LayoutParsingPipeline { public class LayoutParsingPipeline {
ImageServiceResponseAdapter imageServiceResponseAdapter; final ImageServiceResponseAdapter imageServiceResponseAdapter;
CvTableParsingAdapter cvTableParsingAdapter; final CvTableParsingAdapter cvTableParsingAdapter;
LayoutParsingStorageService layoutParsingStorageService; final LayoutParsingStorageService layoutParsingStorageService;
SectionsBuilderService sectionsBuilderService; final SectionsBuilderService sectionsBuilderService;
SimplifiedSectionTextService simplifiedSectionTextService; final SimplifiedSectionTextService simplifiedSectionTextService;
RulingCleaningService rulingCleaningService; final RulingCleaningService rulingCleaningService;
TableExtractionService tableExtractionService; final TableExtractionService tableExtractionService;
DocuMineBlockificationService docuMineBlockificationService; final DocuMineBlockificationService docuMineBlockificationService;
RedactManagerBlockificationService redactManagerBlockificationService; final RedactManagerBlockificationService redactManagerBlockificationService;
BlockificationPostprocessingService blockificationPostprocessingService; final BlockificationPostprocessingService blockificationPostprocessingService;
DocstrumBlockificationService docstrumBlockificationService; final DocstrumBlockificationService docstrumBlockificationService;
LayoutGridService layoutGridService; final LayoutGridService layoutGridService;
ObservationRegistry observationRegistry; final ObservationRegistry observationRegistry;
VisualLayoutParsingAdapter visualLayoutParsingAdapter; final VisualLayoutParsingAdapter visualLayoutParsingAdapter;
GraphicExtractorService graphicExtractorService; final GraphicExtractorService graphicExtractorService;
OutlineExtractorService outlineExtractorService; final OutlineExtractorService outlineExtractorService;
SectionTreeBuilderService sectionTreeBuilderService; final SectionTreeBuilderService sectionTreeBuilderService;
SectionTreeEnhancementService sectionTreeEnhancementService; final SectionTreeEnhancementService sectionTreeEnhancementService;
LayoutParserSettings settings; final LayoutParserSettings settings;
ClassificationService classificationService; final ClassificationService classificationService;
@Value("${LAYOUT_PARSER_VERSION:}")
private String layoutParserVersion;
public LayoutParsingFinishedEvent parseLayoutAndSaveFilesToStorage(LayoutParsingRequest layoutParsingRequest) throws IOException { public LayoutParsingFinishedEvent parseLayoutAndSaveFilesToStorage(LayoutParsingRequest layoutParsingRequest) throws IOException {
@ -133,7 +137,6 @@ public class LayoutParsingPipeline {
LayoutParsingType layoutParsingType = settings.getLayoutParsingTypeOverride() == null // LayoutParsingType layoutParsingType = settings.getLayoutParsingTypeOverride() == null //
? layoutParsingRequest.layoutParsingType() : settings.getLayoutParsingTypeOverride(); ? layoutParsingRequest.layoutParsingType() : settings.getLayoutParsingTypeOverride();
String layoutParserVersion = settings.getLayoutParserVersion();
ClassificationDocument classificationDocument = parseLayout(layoutParsingType, ClassificationDocument classificationDocument = parseLayout(layoutParsingType,
originFile, originFile,

View File

@ -417,14 +417,15 @@ public class LayoutGrid extends LayoutGridLayerConfig {
public void addVersionAndLayoutParsingType(String version, String layoutParsingType, Page page) { public void addVersionAndLayoutParsingType(String version, String layoutParsingType, Page page) {
PageInformation pageInformation = PageInformation.fromPage(page); PageInformation pageInformation = PageInformation.fromPage(page);
Point2D point1 = new Point2D.Double(0, pageInformation.height() - 5); double startHeight = pageInformation.heightRot() - 5;
Point2D point2 = new Point2D.Double(0, pageInformation.height() - 5 - FONT_SIZE * 1.5); Point2D point1 = new Point2D.Double(0, startHeight);
Point2D point2 = new Point2D.Double(0, startHeight - FONT_SIZE * 1.5);
AffineTransform affineTransform = CoordinateTransforms.calculatePageCoordsToInitialUserSpaceCoords(pageInformation); AffineTransform affineTransform = CoordinateTransforms.calculatePageCoordsToInitialUserSpaceCoords(pageInformation);
Point2D transformed1 = affineTransform.transform(point1, point1); affineTransform.transform(point1, point1);
Point2D transformed2 = affineTransform.transform(point2, point2); affineTransform.transform(point2, point2);
getOrCreateVisualizationsOnPage(page.getNumber(), this.versionAndType).getPlacedTexts() getOrCreateVisualizationsOnPage(page.getNumber(), this.versionAndType).getPlacedTexts()
.addAll(List.of(PlacedText.textFacingUp(version, transformed1, FONT_SIZE, Color.BLACK, FONT), .addAll(List.of(PlacedText.textFacingUp(String.valueOf(version), point1, FONT_SIZE, Color.BLACK, FONT),
PlacedText.textFacingUp(layoutParsingType, transformed2, FONT_SIZE, Color.BLACK, FONT))); PlacedText.textFacingUp(String.valueOf(layoutParsingType), point2, FONT_SIZE, Color.BLACK, FONT)));
} }

View File

@ -44,7 +44,7 @@ class ViewerDocVersioningUtilityTest {
doc.save(out, SDFDoc.SaveMode.LINEARIZED, null); doc.save(out, SDFDoc.SaveMode.LINEARIZED, null);
} }
assert ViewerDocVersioningUtility.isCurrentVersion(tmpFile.toFile()); assert ViewerDocVersioningUtility.isCurrentVersion(tmpFile.toFile());
//assert tmpFile.toFile().delete(); assert tmpFile.toFile().delete();
} }
} }