RED-7080 - Add removeWatermark flag for dossier template
This commit is contained in:
parent
74f9f123f4
commit
0ad4682571
@ -14,7 +14,7 @@
|
||||
|
||||
<properties>
|
||||
<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>
|
||||
</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.stereotype.Service;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.iqser.red.pdftronlogic.commons.InvisibleElementRemovalService;
|
||||
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.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.pdf.OCRModule;
|
||||
import com.pdftron.pdf.OCROptions;
|
||||
@ -50,6 +53,10 @@ public class OCRService {
|
||||
|
||||
private final ImagePositionRetrievalService imagePositionRetrievalService;
|
||||
|
||||
private final DossierService dossierService;
|
||||
|
||||
private final DossierTemplateService dossierTemplateService;
|
||||
|
||||
|
||||
/**
|
||||
* First loads the PDF Document from storage.
|
||||
@ -71,7 +78,10 @@ public class OCRService {
|
||||
InputStream fileStream = fileStorageService.getOriginalFileAsStream(dossierId, fileId);
|
||||
|
||||
try {
|
||||
if (settings.isRemoveWatermark()) {
|
||||
Dossier dossier = dossierService.getDossier(dossierId);
|
||||
DossierTemplate dossierTemplate = dossierTemplateService.getDossierTemplate(dossier.getDossierTemplateId());
|
||||
|
||||
if (dossierTemplate.isRemoveWatermark()) {
|
||||
watermarkRemovalService.removeWatermarks(fileStream, transferOutputStream);
|
||||
fileStream.close();
|
||||
fileStream = new ByteArrayInputStream(transferOutputStream.toByteArray());
|
||||
|
||||
@ -9,6 +9,5 @@ import lombok.Data;
|
||||
public class OcrServiceSettings {
|
||||
|
||||
private int ocrDPI = 300;
|
||||
private boolean removeWatermark;
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user