From cd3cc632911df22cc4554abe805cc58166dc60e4 Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Tue, 26 Nov 2024 17:34:35 +0100 Subject: [PATCH 1/4] change loglevel --- .../service/imageprocessing/GhostScriptOutputHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-ocr-service/azure-ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/imageprocessing/GhostScriptOutputHandler.java b/azure-ocr-service/azure-ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/imageprocessing/GhostScriptOutputHandler.java index d0996de..e9cd2e8 100644 --- a/azure-ocr-service/azure-ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/imageprocessing/GhostScriptOutputHandler.java +++ b/azure-ocr-service/azure-ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/imageprocessing/GhostScriptOutputHandler.java @@ -80,7 +80,7 @@ public class GhostScriptOutputHandler extends Thread { if (type.equals(Type.ERROR)) { log.error("{}_{}>{}", processName, type.name(), line); } else { - log.debug("{}_{}>{}", processName, type.name(), line); + log.info("{}_{}>{}", processName, type.name(), line); addProcessedImageToQueue(line); } } -- 2.47.2 From 429e071408246a0927711f86e2a2ef95e671f924 Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Tue, 26 Nov 2024 19:45:43 +0100 Subject: [PATCH 2/4] change loglevel --- .../imageprocessing/GhostScriptService.java | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/azure-ocr-service/azure-ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/imageprocessing/GhostScriptService.java b/azure-ocr-service/azure-ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/imageprocessing/GhostScriptService.java index 25ee225..65b4669 100644 --- a/azure-ocr-service/azure-ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/imageprocessing/GhostScriptService.java +++ b/azure-ocr-service/azure-ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/imageprocessing/GhostScriptService.java @@ -6,6 +6,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.Semaphore; +import java.util.concurrent.TimeUnit; import java.util.function.Consumer; import org.springframework.stereotype.Service; @@ -15,14 +16,12 @@ import com.knecon.fforesight.service.ocr.processor.model.ImageFile; import com.knecon.fforesight.service.ocr.processor.model.PageBatch; import lombok.AccessLevel; -import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.experimental.FieldDefaults; import lombok.extern.slf4j.Slf4j; @Slf4j @Service -@RequiredArgsConstructor @FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) @SuppressWarnings("PMD") // can't figure out how to safely close the stdOut and stdError streams in line 72/74 public class GhostScriptService { @@ -34,6 +33,37 @@ public class GhostScriptService { private Semaphore concurrencySemaphore = new Semaphore(3); + public GhostScriptService(OcrServiceSettings ocrServiceSettings) { + + this.ocrServiceSettings = ocrServiceSettings; + assertGhostscriptIsInstalled(); + } + + + private void assertGhostscriptIsInstalled() { + + try { + Process p = Runtime.getRuntime().exec("gs -v"); + InputStream stdOut = p.getInputStream(); + InputStream errOut = p.getErrorStream(); + assert p.waitFor(1, TimeUnit.SECONDS); + log.info("Ghostscript is installed."); + String out = new String(stdOut.readAllBytes()); + String error = new String(errOut.readAllBytes()); + for (String line : out.split("\n")) { + log.info(line); + } + if (!error.isBlank()) { + log.error(error); + } + } catch (Exception e) { + log.error("Ghostscript is not installed!"); + log.error(e.getMessage(), e); + throw new RuntimeException(e); + } + } + + @SneakyThrows public void startBatchRender(PageBatch batch, ImageProcessingSupervisor supervisor, Consumer successHandler, Consumer errorHandler) { -- 2.47.2 From 8aa4540d8973458d023ed8897b69089c7961c0ef Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Wed, 27 Nov 2024 10:43:27 +0100 Subject: [PATCH 3/4] upgrade ghostscript version --- .../azure-ocr-service-server/src/main/resources/Aptfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-ocr-service/azure-ocr-service-server/src/main/resources/Aptfile b/azure-ocr-service/azure-ocr-service-server/src/main/resources/Aptfile index 6ee2eb0..a611fbc 100644 --- a/azure-ocr-service/azure-ocr-service-server/src/main/resources/Aptfile +++ b/azure-ocr-service/azure-ocr-service-server/src/main/resources/Aptfile @@ -1,5 +1,5 @@ # you can list packages -ghostscript=9.55.0~dfsg1-0ubuntu5.9 +ghostscript=9.55.0~dfsg1-0ubuntu5.10 pkg-config zip unzip -- 2.47.2 From 342a64bc6dc2c6b223a69cbd472afdba4cac79c5 Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Wed, 27 Nov 2024 10:49:22 +0100 Subject: [PATCH 4/4] upgrade ghostscript version --- .../service/imageprocessing/GhostScriptOutputHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-ocr-service/azure-ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/imageprocessing/GhostScriptOutputHandler.java b/azure-ocr-service/azure-ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/imageprocessing/GhostScriptOutputHandler.java index e9cd2e8..d0996de 100644 --- a/azure-ocr-service/azure-ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/imageprocessing/GhostScriptOutputHandler.java +++ b/azure-ocr-service/azure-ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/imageprocessing/GhostScriptOutputHandler.java @@ -80,7 +80,7 @@ public class GhostScriptOutputHandler extends Thread { if (type.equals(Type.ERROR)) { log.error("{}_{}>{}", processName, type.name(), line); } else { - log.info("{}_{}>{}", processName, type.name(), line); + log.debug("{}_{}>{}", processName, type.name(), line); addProcessedImageToQueue(line); } } -- 2.47.2