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);
+ }
+
+}