diff --git a/bamboo-specs/src/main/java/buildjob/PlanSpec.java b/bamboo-specs/src/main/java/buildjob/PlanSpec.java index 9531f57..a283ad8 100644 --- a/bamboo-specs/src/main/java/buildjob/PlanSpec.java +++ b/bamboo-specs/src/main/java/buildjob/PlanSpec.java @@ -1,10 +1,9 @@ package buildjob; import static com.atlassian.bamboo.specs.builders.task.TestParserTask.createJUnitParserTask; - +import com.atlassian.bamboo.specs.api.builders.docker.DockerConfiguration; import com.atlassian.bamboo.specs.api.BambooSpec; import com.atlassian.bamboo.specs.api.builders.BambooKey; -import com.atlassian.bamboo.specs.api.builders.docker.DockerConfiguration; import com.atlassian.bamboo.specs.api.builders.permission.PermissionType; import com.atlassian.bamboo.specs.api.builders.permission.Permissions; import com.atlassian.bamboo.specs.api.builders.permission.PlanPermissions; @@ -89,10 +88,6 @@ public class PlanSpec { .location(Location.FILE) .fileFromPath("bamboo-specs/src/main/resources/scripts/build-java.sh") .argument(SERVICE_NAME), - createJUnitParserTask() - .description("Resultparser") - .resultDirectories("**/test-reports/*.xml, **/target/surefire-reports/*.xml, **/target/failsafe-reports/*.xml") - .enabled(true), new ScriptTask() .description("Sonar") .location(Location.FILE) diff --git a/pom.xml b/pom.xml index 73c1ece..b8c0784 100644 --- a/pom.xml +++ b/pom.xml @@ -31,23 +31,6 @@ guava - - org.springframework.boot - spring-boot-starter - provided - - - - org.springframework.boot - spring-boot-starter-web - provided - - - - org.springframework.boot - spring-boot-configuration-processor - provided - com.pdftron PDFNet diff --git a/src/main/java/com/iqser/red/pdftronlogic/commons/InvisibleElementRemovalService.java b/src/main/java/com/iqser/red/pdftronlogic/commons/InvisibleElementRemovalService.java index d0345ad..872b387 100644 --- a/src/main/java/com/iqser/red/pdftronlogic/commons/InvisibleElementRemovalService.java +++ b/src/main/java/com/iqser/red/pdftronlogic/commons/InvisibleElementRemovalService.java @@ -12,8 +12,6 @@ import java.util.List; import java.util.Set; import java.util.TreeSet; -import org.springframework.stereotype.Service; - import com.google.common.primitives.Bytes; import com.google.common.primitives.Doubles; import com.pdftron.common.Matrix2D; @@ -38,7 +36,6 @@ import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @Slf4j -@Service public class InvisibleElementRemovalService { static public final double TOLERANCE = 1e-3; @@ -65,6 +62,34 @@ public class InvisibleElementRemovalService { PDFDoc pdfDoc = new PDFDoc(pdfFile); + execute(pdfDoc, delta); + + try { + pdfDoc.save(out, SDFDoc.SaveMode.LINEARIZED, null); + } catch (Exception e) { + log.error("File could not be saved after invisible element removal"); + throw new RuntimeException(e); + } finally { + pdfDoc.close(); + } + + } + + + /** + * This method is similar to {@link #removeInvisibleElements(InputStream, OutputStream, boolean)}, just with a PDFDoc. + */ + @SneakyThrows + public void removeInvisibleElements(PDFDoc pdfDoc, boolean delta) { + + execute(pdfDoc, delta); + } + + + @SneakyThrows + private void execute(PDFDoc pdfDoc, boolean delta) { + + log.info("Start removing invisible Elements"); ElementWriter writer = new ElementWriter(); ElementReader reader = new ElementReader(); Set visitedXObjIds = new TreeSet<>(); @@ -75,7 +100,6 @@ public class InvisibleElementRemovalService { visitedXObjIds.add(page.getSDFObj().getObjNum()); - InvisibleElementRemovalContext context = InvisibleElementRemovalContext.builder() .reader(reader) .clippingPathStack(new ClippingPathStack(page.getMediaBox())) @@ -90,18 +114,12 @@ public class InvisibleElementRemovalService { context.visitedXObjIds().clear(); removeOverlappedElements(page, writer, context); - } - try { - pdfDoc.save(out, SDFDoc.SaveMode.LINEARIZED, null); - } catch (Exception e) { - log.error("File could not be saved after invisible element removal"); - throw new RuntimeException(e); } - writer.destroy(); reader.destroy(); - pdfDoc.close(); + + log.info("Finished removing invisible Elements"); } diff --git a/src/main/java/com/iqser/red/pdftronlogic/commons/PdfTextExtraction.java b/src/main/java/com/iqser/red/pdftronlogic/commons/PdfTextExtraction.java new file mode 100644 index 0000000..bb6a762 --- /dev/null +++ b/src/main/java/com/iqser/red/pdftronlogic/commons/PdfTextExtraction.java @@ -0,0 +1,44 @@ +package com.iqser.red.pdftronlogic.commons; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; + +import com.pdftron.common.PDFNetException; +import com.pdftron.pdf.PDFDoc; +import com.pdftron.pdf.Page; +import com.pdftron.pdf.PageIterator; +import com.pdftron.pdf.TextExtractor; + +import lombok.experimental.UtilityClass; + +@UtilityClass +public class PdfTextExtraction { + + private static String execute(PDFDoc pdfDoc) throws IOException, PDFNetException{ + TextExtractor extractor = new TextExtractor(); + List texts = new ArrayList<>(); + + PageIterator iterator = pdfDoc.getPageIterator(); + while (iterator.hasNext()) { + Page page = iterator.next(); + extractor.begin(page); + texts.add(extractor.getAsText()); + } + + extractor.destroy(); + pdfDoc.close(); + return String.join("\n", texts); + } + + public static String extractAllTextFromDocument(InputStream fileStream) throws IOException, PDFNetException { + PDFDoc pdfDoc = new PDFDoc(fileStream); + return execute(pdfDoc); + } + + public static String extractAllTextFromDocument(PDFDoc pdfDoc) throws IOException, PDFNetException { + return execute(pdfDoc); + } + +}