From 5e00420f4de2f0634c182c25342b2902c46b1387 Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Fri, 16 Aug 2024 21:06:14 +0200 Subject: [PATCH] RED-9746: Document hardly editable * fix pmd --- .../commons/GlyphExtractionTest.java | 59 ++++++++++--------- .../commons/VisualEqualityTest.java | 7 ++- 2 files changed, 34 insertions(+), 32 deletions(-) diff --git a/src/test/java/com/iqser/red/pdftronlogic/commons/GlyphExtractionTest.java b/src/test/java/com/iqser/red/pdftronlogic/commons/GlyphExtractionTest.java index e81c6ea..068d75f 100644 --- a/src/test/java/com/iqser/red/pdftronlogic/commons/GlyphExtractionTest.java +++ b/src/test/java/com/iqser/red/pdftronlogic/commons/GlyphExtractionTest.java @@ -40,47 +40,48 @@ public class GlyphExtractionTest { List> textsPerPage; List> imagesPerPage; - try (var in = this.getClass().getClassLoader().getResourceAsStream(file)) { + try (var in = Thread.currentThread().getContextClassLoader().getResourceAsStream(file)) { textsPerPage = PdfTextExtraction.extractAllGlyphsFromDocument(in, true); } - try (var in = this.getClass().getClassLoader().getResourceAsStream(file)) { + try (var in = Thread.currentThread().getContextClassLoader().getResourceAsStream(file)) { imagesPerPage = PdfImageExtraction.extractImages(in); } - try (var in = this.getClass().getClassLoader().getResourceAsStream(file);// + try (var in = Thread.currentThread().getContextClassLoader().getResourceAsStream(file);// var out = new FileOutputStream(Path.of("/tmp/").resolve(Path.of(file).getFileName() + "_GLYPHS.pdf").toFile())) { - PDFDoc pdfDoc = new PDFDoc(in); - for (int i = 0; i < pdfDoc.getPageCount(); i++) { - Page page = pdfDoc.getPage(i + 1); - List textFeaturesOnPage = textsPerPage.get(i); - List imageFeaturesOnPage = imagesPerPage.get(i); - try (ElementWriter writer = new ElementWriter(); ElementBuilder builder = new ElementBuilder()) { - writer.begin(page, ElementWriter.e_overlay, false); + try (PDFDoc pdfDoc = new PDFDoc(in)) { + for (int i = 0; i < pdfDoc.getPageCount(); i++) { + Page page = pdfDoc.getPage(i + 1); + List textFeaturesOnPage = textsPerPage.get(i); + List imageFeaturesOnPage = imagesPerPage.get(i); + try (ElementWriter writer = new ElementWriter(); ElementBuilder builder = new ElementBuilder()) { + writer.begin(page, ElementWriter.e_overlay, false); - for (ImageFeatures imageFeatures : imageFeaturesOnPage) { - if (imageFeatures.getBoundingBox().getHeight() * imageFeatures.getBoundingBox().getWidth() >= page.getPageHeight() * page.getPageWidth() * 0.8) { - continue; - } - drawRect(imageFeatures.getBoundingBox(), builder, writer, Color.CYAN, true); - } - for (TextFeatures textFeatures : textFeaturesOnPage) { - - drawRect(textFeatures.getBoundingBox(), builder, writer, Color.BLUE); - - for (GlyphInfo glyph : textFeatures.getGlyphs()) { - - if (glyph.getPathData().isPresent()) { - drawPathData(glyph.getPathData().get(), builder, writer, Color.BLACK); + for (ImageFeatures imageFeatures : imageFeaturesOnPage) { + if (imageFeatures.getBoundingBox().getHeight() * imageFeatures.getBoundingBox().getWidth() >= page.getPageHeight() * page.getPageWidth() * 0.8) { + continue; } - drawRect(ComparisonUtils.shrinkRectangle(glyph.getBbox()), builder, writer, Color.RED); - drawRect(glyph.getBbox(), builder, writer, Color.MAGENTA); - + drawRect(imageFeatures.getBoundingBox(), builder, writer, Color.CYAN, true); } + for (TextFeatures textFeatures : textFeaturesOnPage) { + + drawRect(textFeatures.getBoundingBox(), builder, writer, Color.BLUE); + + for (GlyphInfo glyph : textFeatures.getGlyphs()) { + + if (glyph.getPathData().isPresent()) { + drawPathData(glyph.getPathData().get(), builder, writer, Color.BLACK); + } + drawRect(ComparisonUtils.shrinkRectangle(glyph.getBbox()), builder, writer, Color.RED); + drawRect(glyph.getBbox(), builder, writer, Color.MAGENTA); + + } + } + writer.end(); } - writer.end(); } + pdfDoc.save(out, SDFDoc.SaveMode.LINEARIZED, null); } - pdfDoc.save(out, SDFDoc.SaveMode.LINEARIZED, null); } } diff --git a/src/test/java/com/iqser/red/pdftronlogic/commons/VisualEqualityTest.java b/src/test/java/com/iqser/red/pdftronlogic/commons/VisualEqualityTest.java index ef9819b..dfb53ec 100644 --- a/src/test/java/com/iqser/red/pdftronlogic/commons/VisualEqualityTest.java +++ b/src/test/java/com/iqser/red/pdftronlogic/commons/VisualEqualityTest.java @@ -113,8 +113,8 @@ public class VisualEqualityTest { Path processedFile = fileFolder.resolve("processed.pdf"); Path deltaFile = fileFolder.resolve("delta.pdf"); Path savedOriginFile = fileFolder.resolve("origin.pdf"); - try (var in = new FileInputStream(originFile.toFile()); var out = new FileOutputStream(savedOriginFile.toFile())) { - PDFDoc pdfDoc = new PDFDoc(in); + + try (var in = new FileInputStream(originFile.toFile()); PDFDoc pdfDoc = new PDFDoc(in); var out = new FileOutputStream(savedOriginFile.toFile())) { pdfDoc.save(out, SDFDoc.SaveMode.LINEARIZED, null); } @@ -226,7 +226,7 @@ public class VisualEqualityTest { return boxes; } - +/* private static Boxa pushRectsIntoBoxa(List rects) { Boxa boxa = new Boxa(); @@ -247,6 +247,7 @@ public class VisualEqualityTest { return boxa; } +*/ private record Context(Path outFolder, Map failedFiles) {