Merge branch 'RED-7080' into 'master'
RED-7080 - Add removeWatermark flag for dossier template Closes RED-7080 See merge request redactmanager/ocr-service!14
This commit is contained in:
commit
0ff07979ee
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<tennat-commons.version>0.10.0</tennat-commons.version>
|
<tennat-commons.version>0.10.0</tennat-commons.version>
|
||||||
<persistence-service.version>2.93.0</persistence-service.version>
|
<persistence-service.version>2.118.0</persistence-service.version>
|
||||||
<pdftron-logic-commons.version>2.10.0</pdftron-logic-commons.version>
|
<pdftron-logic-commons.version>2.10.0</pdftron-logic-commons.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,10 @@
|
|||||||
|
package com.iqser.red.service.ocr.v1.server.client;
|
||||||
|
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.internal.resources.DossierResource;
|
||||||
|
|
||||||
|
@FeignClient(name = "DossierResource", url = "${persistence-service.url}")
|
||||||
|
public interface DossierClient extends DossierResource {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
package com.iqser.red.service.ocr.v1.server.client;
|
||||||
|
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.internal.resources.DossierTemplateResource;
|
||||||
|
|
||||||
|
@FeignClient(name = "DossierTemplateResource", url = "${persistence-service.url}")
|
||||||
|
public interface DossierTemplateClient extends DossierTemplateResource {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
package com.iqser.red.service.ocr.v1.server.service;
|
||||||
|
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import com.iqser.red.service.ocr.v1.server.client.DossierClient;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier;
|
||||||
|
|
||||||
|
import feign.FeignException;
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.experimental.FieldDefaults;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
|
||||||
|
public class DossierService {
|
||||||
|
|
||||||
|
DossierClient dossierClient;
|
||||||
|
|
||||||
|
public Dossier getDossier(String dossierId) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
return dossierClient.getDossierById(dossierId, true, false);
|
||||||
|
} catch (FeignException e) {
|
||||||
|
if (e.status() == HttpStatus.NOT_FOUND.value()) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
package com.iqser.red.service.ocr.v1.server.service;
|
||||||
|
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import com.iqser.red.service.ocr.v1.server.client.DossierTemplateClient;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplate;
|
||||||
|
|
||||||
|
import feign.FeignException;
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.experimental.FieldDefaults;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
|
||||||
|
public class DossierTemplateService {
|
||||||
|
|
||||||
|
DossierTemplateClient dossierTemplateClient;
|
||||||
|
|
||||||
|
public DossierTemplate getDossierTemplate(String dossierTemplateId) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
return dossierTemplateClient.getDossierTemplateById(dossierTemplateId);
|
||||||
|
} catch (FeignException e) {
|
||||||
|
if (e.status() == HttpStatus.NOT_FOUND.value()) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -13,11 +13,14 @@ import java.util.Map;
|
|||||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
import com.iqser.red.pdftronlogic.commons.InvisibleElementRemovalService;
|
import com.iqser.red.pdftronlogic.commons.InvisibleElementRemovalService;
|
||||||
import com.iqser.red.service.ocr.v1.api.model.OCRStatusUpdateResponse;
|
import com.iqser.red.service.ocr.v1.api.model.OCRStatusUpdateResponse;
|
||||||
|
import com.iqser.red.service.ocr.v1.server.client.DossierClient;
|
||||||
|
import com.iqser.red.service.ocr.v1.server.client.DossierTemplateClient;
|
||||||
import com.iqser.red.service.ocr.v1.server.configuration.MessagingConfiguration;
|
import com.iqser.red.service.ocr.v1.server.configuration.MessagingConfiguration;
|
||||||
import com.iqser.red.service.ocr.v1.server.settings.OcrServiceSettings;
|
import com.iqser.red.service.ocr.v1.server.settings.OcrServiceSettings;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplate;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier;
|
||||||
import com.pdftron.common.PDFNetException;
|
import com.pdftron.common.PDFNetException;
|
||||||
import com.pdftron.pdf.OCRModule;
|
import com.pdftron.pdf.OCRModule;
|
||||||
import com.pdftron.pdf.OCROptions;
|
import com.pdftron.pdf.OCROptions;
|
||||||
@ -50,6 +53,10 @@ public class OCRService {
|
|||||||
|
|
||||||
private final ImagePositionRetrievalService imagePositionRetrievalService;
|
private final ImagePositionRetrievalService imagePositionRetrievalService;
|
||||||
|
|
||||||
|
private final DossierService dossierService;
|
||||||
|
|
||||||
|
private final DossierTemplateService dossierTemplateService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* First loads the PDF Document from storage.
|
* First loads the PDF Document from storage.
|
||||||
@ -71,7 +78,10 @@ public class OCRService {
|
|||||||
InputStream fileStream = fileStorageService.getOriginalFileAsStream(dossierId, fileId);
|
InputStream fileStream = fileStorageService.getOriginalFileAsStream(dossierId, fileId);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (settings.isRemoveWatermark()) {
|
Dossier dossier = dossierService.getDossier(dossierId);
|
||||||
|
DossierTemplate dossierTemplate = dossierTemplateService.getDossierTemplate(dossier.getDossierTemplateId());
|
||||||
|
|
||||||
|
if (dossierTemplate.isRemoveWatermark()) {
|
||||||
watermarkRemovalService.removeWatermarks(fileStream, transferOutputStream);
|
watermarkRemovalService.removeWatermarks(fileStream, transferOutputStream);
|
||||||
fileStream.close();
|
fileStream.close();
|
||||||
fileStream = new ByteArrayInputStream(transferOutputStream.toByteArray());
|
fileStream = new ByteArrayInputStream(transferOutputStream.toByteArray());
|
||||||
|
|||||||
@ -9,6 +9,5 @@ import lombok.Data;
|
|||||||
public class OcrServiceSettings {
|
public class OcrServiceSettings {
|
||||||
|
|
||||||
private int ocrDPI = 300;
|
private int ocrDPI = 300;
|
||||||
private boolean removeWatermark;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user