From 30c56a0ec91955421a85dcff2af2b1a055538cf1 Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Mon, 1 May 2023 18:50:20 +0100 Subject: [PATCH] lang --- build.gradle | 2 +- .../controller/api/other/OCRController.java | 12 ++- src/main/resources/messages_ar_AR.properties | 96 +++++++++++-------- src/main/resources/messages_de_DE.properties | 14 +++ src/main/resources/messages_en_GB.properties | 16 +++- src/main/resources/messages_es_ES.properties | 13 +++ src/main/resources/messages_fr_FR.properties | 14 +++ .../resources/templates/fragments/navbar.html | 6 +- src/main/resources/templates/home.html | 2 +- .../templates/other/extract-image-scans.html | 31 +++--- .../resources/templates/other/ocr-pdf.html | 9 +- 11 files changed, 148 insertions(+), 67 deletions(-) diff --git a/build.gradle b/build.gradle index a4c1b79f..76296dbc 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { } group = 'stirling.software' -version = '0.6.0' +version = '0.7.0' sourceCompatibility = '17' repositories { diff --git a/src/main/java/stirling/software/SPDF/controller/api/other/OCRController.java b/src/main/java/stirling/software/SPDF/controller/api/other/OCRController.java index 0c614657..3aa1bb37 100644 --- a/src/main/java/stirling/software/SPDF/controller/api/other/OCRController.java +++ b/src/main/java/stirling/software/SPDF/controller/api/other/OCRController.java @@ -46,14 +46,19 @@ public class OCRController { public ResponseEntity processPdfWithOCR(@RequestPart(required = true, value = "fileInput") MultipartFile inputFile, @RequestParam("languages") List selectedLanguages, @RequestParam(name = "sidecar", required = false) Boolean sidecar, @RequestParam(name = "deskew", required = false) Boolean deskew, @RequestParam(name = "clean", required = false) Boolean clean, - @RequestParam(name = "clean-final", required = false) Boolean cleanFinal, @RequestParam(name = "ocrType", required = false) String ocrType) + @RequestParam(name = "clean-final", required = false) Boolean cleanFinal, @RequestParam(name = "ocrType", required = false) String ocrType, + @RequestParam(name = "ocrRenderType", required = false, defaultValue = "hocr") String ocrRenderType) throws IOException, InterruptedException { // --output-type pdfa if (selectedLanguages == null || selectedLanguages.isEmpty()) { throw new IOException("Please select at least one language."); } - + + if(!ocrRenderType.equals("hocr") && !ocrRenderType.equals("sandwich")) { + throw new IOException("ocrRenderType wrong"); + } + // Get available Tesseract languages List availableLanguages = getAvailableTesseractLanguages(); @@ -76,7 +81,8 @@ public class OCRController { // Run OCR Command String languageOption = String.join("+", selectedLanguages); - List command = new ArrayList<>(Arrays.asList("ocrmypdf", "--verbose", "2", "--output-type", "pdf", "--pdf-renderer" , "hocr")); + + List command = new ArrayList<>(Arrays.asList("ocrmypdf", "--verbose", "2", "--output-type", "pdf", "--pdf-renderer" , ocrRenderType)); if (sidecar != null && sidecar) { sidecarTextPath = Files.createTempFile("sidecar", ".txt"); diff --git a/src/main/resources/messages_ar_AR.properties b/src/main/resources/messages_ar_AR.properties index d2640f69..b922b114 100644 --- a/src/main/resources/messages_ar_AR.properties +++ b/src/main/resources/messages_ar_AR.properties @@ -31,10 +31,10 @@ navbar.convert=تحويل navbar.security=الأمان navbar.other=أخرى navbar.darkmode=الوضع الداكن -navbar.pageOps = عمليات الصفحة +navbar.pageOps=عمليات الصفحة -home.multiTool.title = أداة متعددة PDF -home.multiTool.desc = دمج الصفحات وتدويرها وإعادة ترتيبها وإزالتها +home.multiTool.title=أداة متعددة PDF +home.multiTool.desc=دمج الصفحات وتدويرها وإعادة ترتيبها وإزالتها home.merge.title=دمج ملفات home.merge.desc=دمج ملفات PDF متعددة في ملف واحد بسهولة. @@ -91,24 +91,40 @@ home.ocr.desc=\u064A\u0642\u0648\u0645 \u0628\u0631\u0646\u0627\u0645\u062C \u06 home.extractImages.title=\u0627\u0633\u062A\u062E\u0631\u0627\u062C \u0627\u0644\u0635\u0648\u0631 home.extractImages.desc=\u064A\u0633\u062A\u062E\u0631\u062C \u062C\u0645\u064A\u0639 \u0627\u0644\u0635\u0648\u0631 \u0645\u0646 \u0645\u0644\u0641 PDF \u0648\u064A\u062D\u0641\u0638\u0647\u0627 \u0641\u064A \u0627\u0644\u0631\u0645\u0632 \u0627\u0644\u0628\u0631\u064A\u062F\u064A -home.pdfToPDFA.title = \u062A\u062D\u0648\u064A\u0644 \u0645\u0644\u0641\u0627\u062A PDF \u0625\u0644\u0649 PDF / A -home.pdfToPDFA.desc = \u062A\u062D\u0648\u064A\u0644 PDF \u0625\u0644\u0649 PDF / A \u0644\u0644\u062A\u062E\u0632\u064A\u0646 \u0637\u0648\u064A\u0644 \u0627\u0644\u0645\u062F\u0649 +home.pdfToPDFA.title=\u062A\u062D\u0648\u064A\u0644 \u0645\u0644\u0641\u0627\u062A PDF \u0625\u0644\u0649 PDF / A +home.pdfToPDFA.desc=\u062A\u062D\u0648\u064A\u0644 PDF \u0625\u0644\u0649 PDF / A \u0644\u0644\u062A\u062E\u0632\u064A\u0646 \u0637\u0648\u064A\u0644 \u0627\u0644\u0645\u062F\u0649 -home.PDFToWord.title = تحويل PDF إلى Word -home.PDFToWord.desc = تحويل PDF إلى تنسيقات Word (DOC و DOCX و ODT) +home.PDFToWord.title=تحويل PDF إلى Word +home.PDFToWord.desc=تحويل PDF إلى تنسيقات Word (DOC و DOCX و ODT) -home.PDFToPresentation.title = PDF للعرض التقديمي -home.PDFToPresentation.desc = تحويل PDF إلى تنسيقات عرض تقديمي (PPT و PPTX و ODP) +home.PDFToPresentation.title=PDF للعرض التقديمي +home.PDFToPresentation.desc=تحويل PDF إلى تنسيقات عرض تقديمي (PPT و PPTX و ODP) -home.PDFToText.title = تحويل PDF إلى نص / RTF -home.PDFToText.desc = تحويل PDF إلى تنسيق نص أو RTF +home.PDFToText.title=تحويل PDF إلى نص / RTF +home.PDFToText.desc=تحويل PDF إلى تنسيق نص أو RTF -home.PDFToHTML.title = تحويل PDF إلى HTML -home.PDFToHTML.desc = تحويل PDF إلى تنسيق HTML +home.PDFToHTML.title=تحويل PDF إلى HTML +home.PDFToHTML.desc=تحويل PDF إلى تنسيق HTML + +home.PDFToXML.title=تحويل PDF إلى XML +home.PDFToXML.desc=تحويل PDF إلى تنسيق XML + + +home.ScannerImageSplit.title=كشف / انقسام الصور الممسوحة ضوئيًا +home.ScannerImageSplit.desc=تقسيم عدة صور من داخل صورة / ملف PDF + +ScannerImageSplit.selectText.1=عتبة الزاوية: +ScannerImageSplit.selectText.2=تعيين الحد الأدنى للزاوية المطلقة المطلوبة لتدوير الصورة (افتراضي: 10). +ScannerImageSplit.selectText.3=التسامح: +ScannerImageSplit.selectText.4=يحدد نطاق تباين اللون حول لون الخلفية المقدر (الافتراضي: 30). +ScannerImageSplit.selectText.5=أدنى مساحة: +ScannerImageSplit.selectText.6=تعيين الحد الأدنى لمنطقة الصورة (الافتراضي: 10000). +ScannerImageSplit.selectText.7=الحد الأدنى لمنطقة المحيط: +ScannerImageSplit.selectText.8=تعيين الحد الأدنى لمنطقة المحيط للصورة +ScannerImageSplit.selectText.9=حجم الحدود: +ScannerImageSplit.selectText.10=يضبط حجم الحدود المضافة والمزالة لمنع الحدود البيضاء في الإخراج (الافتراضي: 1). -home.PDFToXML.title = تحويل PDF إلى XML -home.PDFToXML.desc = تحويل PDF إلى تنسيق XML navbar.settings=\u0625\u0639\u062F\u0627\u062F\u0627\u062A settings.title=\u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A @@ -182,8 +198,8 @@ pdfOrganiser.header=منظم صفحات PDF pdfOrganiser.submit=إعادة ترتيب الصفحات #multiTool -multiTool.title = أداة متعددة PDF -multiTool.header = أداة متعددة PDF +multiTool.title=أداة متعددة PDF +multiTool.header=أداة متعددة PDF #pageRemover pageRemover.title=مزيل الصفحة @@ -329,32 +345,32 @@ pdfToPDFA.credit=\u062A\u0633\u062A\u062E\u062F\u0645 \u0647\u0630\u0647 \u0627\ pdfToPDFA.submit=\u062A\u062D\u0648\u064A\u0644 -PDFToWord.title = تحويل PDF إلى Word -PDFToWord.header = تحويل PDF إلى Word -PDFToWord.selectText.1 = تنسيق ملف الإخراج -PDFToWord.credit = تستخدم هذه الخدمة LibreOffice لتحويل الملفات. -PDFToWord.submit = تحويل +PDFToWord.title=تحويل PDF إلى Word +PDFToWord.header=تحويل PDF إلى Word +PDFToWord.selectText.1=تنسيق ملف الإخراج +PDFToWord.credit=تستخدم هذه الخدمة LibreOffice لتحويل الملفات. +PDFToWord.submit=تحويل -PDFToPresentation.title = PDF للعرض التقديمي -PDFToPresentation.header = PDF للعرض التقديمي -PDFToPresentation.selectText.1 = تنسيق ملف الإخراج -PDFToPresentation.credit = تستخدم هذه الخدمة LibreOffice لتحويل الملف. -PDFToPresentation.submit = تحويل +PDFToPresentation.title=PDF للعرض التقديمي +PDFToPresentation.header=PDF للعرض التقديمي +PDFToPresentation.selectText.1=تنسيق ملف الإخراج +PDFToPresentation.credit=تستخدم هذه الخدمة LibreOffice لتحويل الملف. +PDFToPresentation.submit=تحويل -PDFToText.title = تحويل PDF إلى نص / RTF -PDFToText.header = تحويل PDF إلى نص / RTF -PDFToText.selectText.1 = تنسيق ملف الإخراج -PDFToText.credit = تستخدم هذه الخدمة LibreOffice لتحويل الملفات. -PDFToText.submit = تحويل +PDFToText.title=تحويل PDF إلى نص / RTF +PDFToText.header=تحويل PDF إلى نص / RTF +PDFToText.selectText.1=تنسيق ملف الإخراج +PDFToText.credit=تستخدم هذه الخدمة LibreOffice لتحويل الملفات. +PDFToText.submit=تحويل -PDFToHTML.title = PDF إلى HTML -PDFToHTML.header = PDF إلى HTML -PDFToHTML.credit = تستخدم هذه الخدمة LibreOffice لتحويل الملفات. -PDFToHTML.submit = تحويل +PDFToHTML.title=PDF إلى HTML +PDFToHTML.header=PDF إلى HTML +PDFToHTML.credit=تستخدم هذه الخدمة LibreOffice لتحويل الملفات. +PDFToHTML.submit=تحويل -PDFToXML.title = تحويل PDF إلى XML -PDFToXML.header = تحويل PDF إلى XML -PDFToXML.credit = تستخدم هذه الخدمة LibreOffice لتحويل الملفات. -PDFToXML.submit = تحويل +PDFToXML.title=تحويل PDF إلى XML +PDFToXML.header=تحويل PDF إلى XML +PDFToXML.credit=تستخدم هذه الخدمة LibreOffice لتحويل الملفات. +PDFToXML.submit=تحويل diff --git a/src/main/resources/messages_de_DE.properties b/src/main/resources/messages_de_DE.properties index a7cd44bb..7cd261bc 100644 --- a/src/main/resources/messages_de_DE.properties +++ b/src/main/resources/messages_de_DE.properties @@ -104,6 +104,20 @@ home.PDFToHTML.desc=PDF in HTML-Format konvertieren home.PDFToXML.title=PDF in XML home.PDFToXML.desc=PDF in XML-Format konvertieren +home.ScannerImageSplit.title=Gescannte Fotos erkennen/aufteilen +home.ScannerImageSplit.desc=Teilt mehrere Fotos innerhalb eines Fotos/PDF + +ScannerImageSplit.selectText.1=Winkelschwelle: +ScannerImageSplit.selectText.2=Legt den minimalen absoluten Winkel fest, der erforderlich ist, damit das Bild gedreht werden kann (Standard: 10). +ScannerImageSplit.selectText.3=Toleranz: +ScannerImageSplit.selectText.4=Bestimmt den Bereich der Farbvariation um die geschätzte Hintergrundfarbe herum (Standard: 30). +ScannerImageSplit.selectText.5=Mindestbereich: +ScannerImageSplit.selectText.6=Legt den minimalen Bereichsschwellenwert für ein Foto fest (Standard: 10000). +ScannerImageSplit.selectText.7=Minimaler Konturbereich: +ScannerImageSplit.selectText.8=Legt den minimalen Konturbereichsschwellenwert für ein Foto fest +ScannerImageSplit.selectText.9=Randgröße: +ScannerImageSplit.selectText.10=Legt die Größe des hinzugefügten und entfernten Randes fest, um weiße Ränder in der Ausgabe zu verhindern (Standard: 1). + navbar.settings=Einstellungen settings.title=Einstellungen diff --git a/src/main/resources/messages_en_GB.properties b/src/main/resources/messages_en_GB.properties index ca470761..8230fe8b 100644 --- a/src/main/resources/messages_en_GB.properties +++ b/src/main/resources/messages_en_GB.properties @@ -105,10 +105,22 @@ home.PDFToHTML.desc=Convert PDF to HTML format home.PDFToXML.title=PDF to XML home.PDFToXML.desc=Convert PDF to XML format -home.ScannerSplit.title=Split Scanner photos -home.ScannerSplit.desc=Splits multiple photos from within a photo +home.ScannerImageSplit.title=Detect/Split Scanned photos +home.ScannerImageSplit.desc=Splits multiple photos from within a photo/PDF + +ScannerImageSplit.selectText.1=Angle Threshold: +ScannerImageSplit.selectText.2=Sets the minimum absolute angle required for the image to be rotated (default: 10). +ScannerImageSplit.selectText.3=Tolerance: +ScannerImageSplit.selectText.4=Determines the range of color variation around the estimated background color (default: 30). +ScannerImageSplit.selectText.5=Minimum Area: +ScannerImageSplit.selectText.6=Sets the minimum area threshold for a photo (default: 10000). +ScannerImageSplit.selectText.7=Minimum Contour Area: +ScannerImageSplit.selectText.8=Sets the minimum contour area threshold for a photo +ScannerImageSplit.selectText.9=Border Size: +ScannerImageSplit.selectText.10=Sets the size of the border added and removed to prevent white borders in the output (default: 1). + navbar.settings=Settings settings.title=Settings settings.update=Update available diff --git a/src/main/resources/messages_es_ES.properties b/src/main/resources/messages_es_ES.properties index 907eefbd..8957599b 100644 --- a/src/main/resources/messages_es_ES.properties +++ b/src/main/resources/messages_es_ES.properties @@ -104,6 +104,19 @@ home.PDFToHTML.desc=Convertir PDF a formato HTML home.PDFToXML.title=PDF a XML home.PDFToXML.desc=Convertir PDF a formato XML +home.ScannerImageSplit.title=Detectar/Dividir fotos escaneadas +home.ScannerImageSplit.desc=Dividir varias fotos dentro de una foto/PDF + +ScannerImageSplit.selectText.1=Umbral de ángulo: +ScannerImageSplit.selectText.2=Establece el ángulo absoluto mínimo requerido para rotar la imagen (predeterminado: 10). +ScannerImageSplit.selectText.3=Tolerancia: +ScannerImageSplit.selectText.4=Determina el rango de variación de color alrededor del color de fondo estimado (predeterminado: 30). +ScannerImageSplit.selectText.5=Área mínima: +ScannerImageSplit.selectText.6=Establece el umbral mínimo de área para una foto (predeterminado: 10000). +ScannerImageSplit.selectText.7=Área de contorno mínima: +ScannerImageSplit.selectText.8=Establece el umbral mínimo del área de contorno para una foto +ScannerImageSplit.selectText.9=Tamaño del borde: +ScannerImageSplit.selectText.10=Establece el tamaño del borde agregado y eliminado para evitar bordes blancos en la salida (predeterminado: 1). navbar.settings=Ajustes settings.title=Ajustes diff --git a/src/main/resources/messages_fr_FR.properties b/src/main/resources/messages_fr_FR.properties index ece14e52..45b45750 100644 --- a/src/main/resources/messages_fr_FR.properties +++ b/src/main/resources/messages_fr_FR.properties @@ -110,6 +110,20 @@ home.PDFToHTML.desc=Convertir le PDF au format HTML home.PDFToXML.title=PDF vers XML home.PDFToXML.desc=Convertir le PDF au format XML +home.ScannerImageSplit.title=Détecter/diviser les photos numérisées +home.ScannerImageSplit.desc=Divise plusieurs photos à partir d'une photo/PDF + +ScannerImageSplit.selectText.1=Seuil d'angle : +ScannerImageSplit.selectText.2=Définit l'angle absolu minimum requis pour la rotation de l'image (par défaut : 10). +ScannerImageSplit.selectText.3=Tolérance : +ScannerImageSplit.selectText.4=Détermine la plage de variation de couleur autour de la couleur d'arrière-plan estimée (par défaut : 30). +ScannerImageSplit.selectText.5=Zone minimale : +ScannerImageSplit.selectText.6=Définit le seuil de zone minimum pour une photo (par défaut : 10000). +ScannerImageSplit.selectText.7=Zone de contour minimale : +ScannerImageSplit.selectText.8=Définit le seuil de zone de contour minimum pour une photo +ScannerImageSplit.selectText.9=Taille de la bordure : +ScannerImageSplit.selectText.10=Définit la taille de la bordure ajoutée et supprimée pour éviter les bordures blanches dans la sortie (par défaut : 1). + navbar.settings=Paramètres settings.title=Paramètres settings.update=Mise à jour disponible diff --git a/src/main/resources/templates/fragments/navbar.html b/src/main/resources/templates/fragments/navbar.html index e6482497..d21868cf 100644 --- a/src/main/resources/templates/fragments/navbar.html +++ b/src/main/resources/templates/fragments/navbar.html @@ -281,11 +281,9 @@ function compareVersions(version1, version2) { icon - - icon + + icon - - diff --git a/src/main/resources/templates/home.html b/src/main/resources/templates/home.html index 84304142..19b8fb8e 100644 --- a/src/main/resources/templates/home.html +++ b/src/main/resources/templates/home.html @@ -107,7 +107,7 @@ filter: invert(0.2) sepia(2) saturate(50) hue-rotate(190deg);
-
+
diff --git a/src/main/resources/templates/other/extract-image-scans.html b/src/main/resources/templates/other/extract-image-scans.html index 61291cf8..cffddfc7 100644 --- a/src/main/resources/templates/other/extract-image-scans.html +++ b/src/main/resources/templates/other/extract-image-scans.html @@ -1,7 +1,7 @@ - + @@ -12,37 +12,38 @@
-

+

- + - Sets the minimum absolute angle required for the image to be rotated (default: 10). +
- + - Determines the range of color variation around the estimated background color (default: 30). +
- + - Sets the minimum area threshold for a photo (default: 10000). +
- + - Sets the minimum contour area threshold for a photo (default: 500). +
-
- - - Sets the size of the border added and removed to prevent white borders in the output (default: 0). +
+ + +
- + +
diff --git a/src/main/resources/templates/other/ocr-pdf.html b/src/main/resources/templates/other/ocr-pdf.html index b63089e1..aa22a332 100644 --- a/src/main/resources/templates/other/ocr-pdf.html +++ b/src/main/resources/templates/other/ocr-pdf.html @@ -21,7 +21,7 @@
- +
@@ -53,6 +53,13 @@
+
+ + +