From 6ac804e994301eea0274796b291720b192df5c3c Mon Sep 17 00:00:00 2001 From: Abdur Rahman <90972063+Abdurrahman-shaikh@users.noreply.github.com> Date: Sun, 23 Feb 2025 04:38:07 +0530 Subject: [PATCH] Feature/convert to grayscale (#3003) # Description of Changes Please provide a summary of the changes, including: - What was changed -Grayscale Image Compression: Modified the compressImagesInPDF method to optionally convert images to grayscale during compression. This is achieved by checking if the grayScale flag is true (or if the image is already in grayscale) and then processing the image accordingly. UI Update: Updated the compress-pdf.html file by adding a checkbox for grayscale compression. Additionally, a new translation key compress.grayscale.label with the text "Apply Grayscale for Compression" has been added across all supported languages. - Why the change was made -Enhanced Compression Options: This feature provides users with an option to compress images in PDFs more effectively by reducing the color complexity, which can lead to smaller file sizes. Improved Flexibility: It allows users to decide whether they want to maintain the original color images or opt for a grayscale version. - Any challenges encountered - The translation for compress.grayscale.label was generated using an automated translator, so it might not be completely accurate and could require further review. Closes #2603 --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md) (if applicable) - [x] I have performed a self-review of my own code - [x] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [x] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing) for more details. --- .../api/misc/CompressController.java | 29 ++++++++++++++----- .../model/api/misc/OptimizePdfRequest.java | 9 ++++++ src/main/resources/messages_ar_AR.properties | 1 + src/main/resources/messages_az_AZ.properties | 1 + src/main/resources/messages_bg_BG.properties | 1 + src/main/resources/messages_ca_CA.properties | 1 + src/main/resources/messages_cs_CZ.properties | 1 + src/main/resources/messages_da_DK.properties | 1 + src/main/resources/messages_de_DE.properties | 1 + src/main/resources/messages_el_GR.properties | 1 + src/main/resources/messages_en_GB.properties | 1 + src/main/resources/messages_en_US.properties | 1 + src/main/resources/messages_es_ES.properties | 1 + src/main/resources/messages_eu_ES.properties | 1 + src/main/resources/messages_fa_IR.properties | 1 + src/main/resources/messages_fr_FR.properties | 1 + src/main/resources/messages_ga_IE.properties | 1 + src/main/resources/messages_hi_IN.properties | 1 + src/main/resources/messages_hr_HR.properties | 1 + src/main/resources/messages_hu_HU.properties | 1 + src/main/resources/messages_id_ID.properties | 1 + src/main/resources/messages_it_IT.properties | 1 + src/main/resources/messages_ja_JP.properties | 1 + src/main/resources/messages_ko_KR.properties | 1 + src/main/resources/messages_nl_NL.properties | 1 + src/main/resources/messages_no_NB.properties | 1 + src/main/resources/messages_pl_PL.properties | 1 + src/main/resources/messages_pt_BR.properties | 1 + src/main/resources/messages_pt_PT.properties | 1 + src/main/resources/messages_ro_RO.properties | 1 + src/main/resources/messages_ru_RU.properties | 1 + src/main/resources/messages_sk_SK.properties | 1 + src/main/resources/messages_sl_SI.properties | 1 + .../resources/messages_sr_LATN_RS.properties | 1 + src/main/resources/messages_sv_SE.properties | 1 + src/main/resources/messages_th_TH.properties | 1 + src/main/resources/messages_tr_TR.properties | 1 + src/main/resources/messages_uk_UA.properties | 1 + src/main/resources/messages_vi_VN.properties | 1 + src/main/resources/messages_zh_BO.properties | 1 + src/main/resources/messages_zh_CN.properties | 1 + src/main/resources/messages_zh_TW.properties | 1 + .../templates/misc/compress-pdf.html | 7 +++++ 43 files changed, 78 insertions(+), 7 deletions(-) diff --git a/src/main/java/stirling/software/SPDF/controller/api/misc/CompressController.java b/src/main/java/stirling/software/SPDF/controller/api/misc/CompressController.java index beff8261b..328c8beb5 100644 --- a/src/main/java/stirling/software/SPDF/controller/api/misc/CompressController.java +++ b/src/main/java/stirling/software/SPDF/controller/api/misc/CompressController.java @@ -31,6 +31,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; + import stirling.software.SPDF.model.api.misc.OptimizePdfRequest; import stirling.software.SPDF.service.CustomPDDocumentFactory; import stirling.software.SPDF.utils.GeneralUtils; @@ -51,7 +52,7 @@ public class CompressController { this.pdfDocumentFactory = pdfDocumentFactory; } - private void compressImagesInPDF(Path pdfFile, double initialScaleFactor) throws Exception { + private void compressImagesInPDF(Path pdfFile, double initialScaleFactor, boolean grayScale) throws Exception { byte[] fileBytes = Files.readAllBytes(pdfFile); try (PDDocument doc = Loader.loadPDF(fileBytes)) { double scaleFactor = initialScaleFactor; @@ -76,11 +77,23 @@ public class CompressController { bufferedImage.getScaledInstance( newWidth, newHeight, Image.SCALE_SMOOTH); - BufferedImage scaledBufferedImage = - new BufferedImage( - newWidth, newHeight, BufferedImage.TYPE_INT_RGB); - scaledBufferedImage.getGraphics().drawImage(scaledImage, 0, 0, null); - + BufferedImage scaledBufferedImage; + if (grayScale + || bufferedImage.getType() == BufferedImage.TYPE_BYTE_GRAY) { + scaledBufferedImage = + new BufferedImage( + newWidth, newHeight, BufferedImage.TYPE_BYTE_GRAY); + scaledBufferedImage + .getGraphics() + .drawImage(scaledImage, 0, 0, null); + } else { + scaledBufferedImage = + new BufferedImage( + newWidth, newHeight, BufferedImage.TYPE_INT_RGB); + scaledBufferedImage + .getGraphics() + .drawImage(scaledImage, 0, 0, null); + } ByteArrayOutputStream compressedImageStream = new ByteArrayOutputStream(); ImageIO.write(scaledBufferedImage, "jpeg", compressedImageStream); @@ -139,6 +152,7 @@ public class CompressController { } boolean sizeMet = false; + boolean grayscaleEnabled = Boolean.TRUE.equals(request.getGrayscale()); while (!sizeMet && optimizeLevel <= 9) { // Apply additional image compression for levels 6-9 @@ -152,7 +166,7 @@ public class CompressController { case 9 -> 0.5; // 60% of original size default -> 1.0; }; - compressImagesInPDF(tempInputFile, scaleFactor); + compressImagesInPDF(tempInputFile, scaleFactor, grayscaleEnabled); } // Run QPDF optimization @@ -169,6 +183,7 @@ public class CompressController { command.add("--compression-level=" + optimizeLevel); command.add("--compress-streams=y"); command.add("--object-streams=generate"); + command.add("--no-warn"); command.add(tempInputFile.toString()); command.add(tempOutputFile.toString()); diff --git a/src/main/java/stirling/software/SPDF/model/api/misc/OptimizePdfRequest.java b/src/main/java/stirling/software/SPDF/model/api/misc/OptimizePdfRequest.java index 5ddfba577..48c95086d 100644 --- a/src/main/java/stirling/software/SPDF/model/api/misc/OptimizePdfRequest.java +++ b/src/main/java/stirling/software/SPDF/model/api/misc/OptimizePdfRequest.java @@ -29,4 +29,13 @@ public class OptimizePdfRequest extends PDFFile { "Whether to normalize the PDF content for better compatibility. Default is false.", defaultValue = "false") private Boolean normalize = false; + + @Schema( + description = "Whether to convert the PDF to grayscale. Default is false.", + defaultValue = "false") + private Boolean grayscale = false; + + public Boolean getGrayscale() { + return grayscale; + } } diff --git a/src/main/resources/messages_ar_AR.properties b/src/main/resources/messages_ar_AR.properties index 9b116fdfd..52f5dad11 100644 --- a/src/main/resources/messages_ar_AR.properties +++ b/src/main/resources/messages_ar_AR.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=تطبيق التدرج الرمادي للضغط diff --git a/src/main/resources/messages_az_AZ.properties b/src/main/resources/messages_az_AZ.properties index 1854f8825..9ceb9b386 100644 --- a/src/main/resources/messages_az_AZ.properties +++ b/src/main/resources/messages_az_AZ.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Sıxma üçün Boz Rəng Tətbiq Edin diff --git a/src/main/resources/messages_bg_BG.properties b/src/main/resources/messages_bg_BG.properties index 5f7702b65..df835f4fb 100644 --- a/src/main/resources/messages_bg_BG.properties +++ b/src/main/resources/messages_bg_BG.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Версия validateSignature.cert.keyUsage=Предназначение на ключа за използване validateSignature.cert.selfSigned=Самостоятелно подписан validateSignature.cert.bits=битове +compress.grayscale.label=Приложи сива скала за компресиране diff --git a/src/main/resources/messages_ca_CA.properties b/src/main/resources/messages_ca_CA.properties index 3a3661427..ed00145f0 100644 --- a/src/main/resources/messages_ca_CA.properties +++ b/src/main/resources/messages_ca_CA.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Aplicar escala de grisos per a la compressió diff --git a/src/main/resources/messages_cs_CZ.properties b/src/main/resources/messages_cs_CZ.properties index c77901d01..d3eb1701e 100644 --- a/src/main/resources/messages_cs_CZ.properties +++ b/src/main/resources/messages_cs_CZ.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Verze validateSignature.cert.keyUsage=Použití klíče validateSignature.cert.selfSigned=Podepsaný sám sebou validateSignature.cert.bits=bitů +compress.grayscale.label=Použít stupnici šedi pro kompresi diff --git a/src/main/resources/messages_da_DK.properties b/src/main/resources/messages_da_DK.properties index 7db1bd532..795d0b62e 100644 --- a/src/main/resources/messages_da_DK.properties +++ b/src/main/resources/messages_da_DK.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Anvend gråskala til komprimering diff --git a/src/main/resources/messages_de_DE.properties b/src/main/resources/messages_de_DE.properties index ef442185a..6dfac6225 100644 --- a/src/main/resources/messages_de_DE.properties +++ b/src/main/resources/messages_de_DE.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Schlüsselverwendung validateSignature.cert.selfSigned=Selbstsigniert validateSignature.cert.bits=bits +compress.grayscale.label=Graustufen für Komprimierung anwenden diff --git a/src/main/resources/messages_el_GR.properties b/src/main/resources/messages_el_GR.properties index 554ff22e8..0bc7ad5be 100644 --- a/src/main/resources/messages_el_GR.properties +++ b/src/main/resources/messages_el_GR.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Έκδοση validateSignature.cert.keyUsage=Χρήση κλειδιού validateSignature.cert.selfSigned=Αυτο-υπογεγραμμένο validateSignature.cert.bits=bits +compress.grayscale.label=Εφαρμογή κλίμακας του γκρι για συμπίεση diff --git a/src/main/resources/messages_en_GB.properties b/src/main/resources/messages_en_GB.properties index a77d36714..9c2d0b55a 100644 --- a/src/main/resources/messages_en_GB.properties +++ b/src/main/resources/messages_en_GB.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Apply Grayscale for Compression diff --git a/src/main/resources/messages_en_US.properties b/src/main/resources/messages_en_US.properties index b1bfeaab4..cde27df13 100644 --- a/src/main/resources/messages_en_US.properties +++ b/src/main/resources/messages_en_US.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Apply Grayscale for Compression diff --git a/src/main/resources/messages_es_ES.properties b/src/main/resources/messages_es_ES.properties index 0124b9e4c..ec70810df 100644 --- a/src/main/resources/messages_es_ES.properties +++ b/src/main/resources/messages_es_ES.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Aplicar escala de grises para compresión diff --git a/src/main/resources/messages_eu_ES.properties b/src/main/resources/messages_eu_ES.properties index 2a62b8fa3..53fcf4282 100644 --- a/src/main/resources/messages_eu_ES.properties +++ b/src/main/resources/messages_eu_ES.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Aplikatu grisezko eskala konpresiorako diff --git a/src/main/resources/messages_fa_IR.properties b/src/main/resources/messages_fa_IR.properties index ffac791c8..0b327f5c8 100644 --- a/src/main/resources/messages_fa_IR.properties +++ b/src/main/resources/messages_fa_IR.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=نسخه validateSignature.cert.keyUsage=کاربرد کلید validateSignature.cert.selfSigned=با امضای خود validateSignature.cert.bits=بیتها +compress.grayscale.label=اعمال مقیاس خاکستری برای فشردهسازی diff --git a/src/main/resources/messages_fr_FR.properties b/src/main/resources/messages_fr_FR.properties index 08a669f56..4af67d133 100644 --- a/src/main/resources/messages_fr_FR.properties +++ b/src/main/resources/messages_fr_FR.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Usage de la clé validateSignature.cert.selfSigned=Auto-signé validateSignature.cert.bits=bits +compress.grayscale.label=Appliquer l'échelle de gris pour la compression diff --git a/src/main/resources/messages_ga_IE.properties b/src/main/resources/messages_ga_IE.properties index 34b571c5f..bbf1131de 100644 --- a/src/main/resources/messages_ga_IE.properties +++ b/src/main/resources/messages_ga_IE.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Leagan validateSignature.cert.keyUsage=Úsáid Eochrach validateSignature.cert.selfSigned=Féin-Sínithe validateSignature.cert.bits=giotáin +compress.grayscale.label=Cuir Scála Liath i bhFeidhm le Comhbhrú diff --git a/src/main/resources/messages_hi_IN.properties b/src/main/resources/messages_hi_IN.properties index 472b71c64..3a5fb5b8a 100644 --- a/src/main/resources/messages_hi_IN.properties +++ b/src/main/resources/messages_hi_IN.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=संस्करण validateSignature.cert.keyUsage=कुंजी उपयोग validateSignature.cert.selfSigned=स्व-हस्ताक्षरित validateSignature.cert.bits=बिट्स +compress.grayscale.label=संपीड़न के लिए ग्रेस्केल लागू करें diff --git a/src/main/resources/messages_hr_HR.properties b/src/main/resources/messages_hr_HR.properties index e25d901a5..f56e326e9 100644 --- a/src/main/resources/messages_hr_HR.properties +++ b/src/main/resources/messages_hr_HR.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Primijeni sivinu za kompresiju diff --git a/src/main/resources/messages_hu_HU.properties b/src/main/resources/messages_hu_HU.properties index e89e8cdad..0a6f21a06 100644 --- a/src/main/resources/messages_hu_HU.properties +++ b/src/main/resources/messages_hu_HU.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Verzió validateSignature.cert.keyUsage=Kulcshasználat validateSignature.cert.selfSigned=Önaláírt validateSignature.cert.bits=bit +compress.grayscale.label=Szürkeárnyalatok alkalmazása tömörítéshez diff --git a/src/main/resources/messages_id_ID.properties b/src/main/resources/messages_id_ID.properties index 4f2cc88cf..b869c9d34 100644 --- a/src/main/resources/messages_id_ID.properties +++ b/src/main/resources/messages_id_ID.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Terapkan Skala Abu-Abu untuk Kompresi diff --git a/src/main/resources/messages_it_IT.properties b/src/main/resources/messages_it_IT.properties index bbd88bd09..a0f924ee6 100644 --- a/src/main/resources/messages_it_IT.properties +++ b/src/main/resources/messages_it_IT.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Versione validateSignature.cert.keyUsage=Utilizzo della chiave validateSignature.cert.selfSigned=Autofirmato validateSignature.cert.bits=bit +compress.grayscale.label=Applica scala di grigio per la compressione diff --git a/src/main/resources/messages_ja_JP.properties b/src/main/resources/messages_ja_JP.properties index 1f0e4d710..0f7c85082 100644 --- a/src/main/resources/messages_ja_JP.properties +++ b/src/main/resources/messages_ja_JP.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=バージョン validateSignature.cert.keyUsage=キーの使用法 validateSignature.cert.selfSigned=自己署名 validateSignature.cert.bits=ビット +compress.grayscale.label=圧縮にグレースケールを適用する diff --git a/src/main/resources/messages_ko_KR.properties b/src/main/resources/messages_ko_KR.properties index c102b0fa6..21a20db07 100644 --- a/src/main/resources/messages_ko_KR.properties +++ b/src/main/resources/messages_ko_KR.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=버전 validateSignature.cert.keyUsage=키 용도 validateSignature.cert.selfSigned=자체 서명 validateSignature.cert.bits=비트 +compress.grayscale.label=압축을 위해 그레이스케일 적용 diff --git a/src/main/resources/messages_nl_NL.properties b/src/main/resources/messages_nl_NL.properties index 0820703fd..a3e754a13 100644 --- a/src/main/resources/messages_nl_NL.properties +++ b/src/main/resources/messages_nl_NL.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Grijsschaal toepassen voor compressie diff --git a/src/main/resources/messages_no_NB.properties b/src/main/resources/messages_no_NB.properties index 8b820a7b2..cfb8dbaea 100644 --- a/src/main/resources/messages_no_NB.properties +++ b/src/main/resources/messages_no_NB.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Bruk gråskala for komprimering diff --git a/src/main/resources/messages_pl_PL.properties b/src/main/resources/messages_pl_PL.properties index c7575ecc9..166fff51f 100644 --- a/src/main/resources/messages_pl_PL.properties +++ b/src/main/resources/messages_pl_PL.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Zastosuj skalę szarości do kompresji diff --git a/src/main/resources/messages_pt_BR.properties b/src/main/resources/messages_pt_BR.properties index 30a57ee56..73c1e6d8d 100644 --- a/src/main/resources/messages_pt_BR.properties +++ b/src/main/resources/messages_pt_BR.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Versão validateSignature.cert.keyUsage=Uso da chave validateSignature.cert.selfSigned=Autoassinados validateSignature.cert.bits=bits +compress.grayscale.label=Aplicar escala de cinza para compressão diff --git a/src/main/resources/messages_pt_PT.properties b/src/main/resources/messages_pt_PT.properties index 9c0ce181c..d26e33318 100644 --- a/src/main/resources/messages_pt_PT.properties +++ b/src/main/resources/messages_pt_PT.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Versão validateSignature.cert.keyUsage=Utilização da Chave validateSignature.cert.selfSigned=Auto-Assinado validateSignature.cert.bits=bits +compress.grayscale.label=Aplicar escala de cinzentos para compressão diff --git a/src/main/resources/messages_ro_RO.properties b/src/main/resources/messages_ro_RO.properties index b12368e74..6a861e116 100644 --- a/src/main/resources/messages_ro_RO.properties +++ b/src/main/resources/messages_ro_RO.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Aplicare scală de gri pentru compresie diff --git a/src/main/resources/messages_ru_RU.properties b/src/main/resources/messages_ru_RU.properties index 6e4d1b47c..f407f0ae2 100644 --- a/src/main/resources/messages_ru_RU.properties +++ b/src/main/resources/messages_ru_RU.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Версия validateSignature.cert.keyUsage=Использование ключа validateSignature.cert.selfSigned=Самоподписанный validateSignature.cert.bits=бит +compress.grayscale.label=Применить шкалу серого для сжатия diff --git a/src/main/resources/messages_sk_SK.properties b/src/main/resources/messages_sk_SK.properties index 3c192ce1f..5e4b53e9c 100644 --- a/src/main/resources/messages_sk_SK.properties +++ b/src/main/resources/messages_sk_SK.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Použiť odtiene šedej na kompresiu diff --git a/src/main/resources/messages_sl_SI.properties b/src/main/resources/messages_sl_SI.properties index aa18879cc..b07753d42 100644 --- a/src/main/resources/messages_sl_SI.properties +++ b/src/main/resources/messages_sl_SI.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Različica validateSignature.cert.keyUsage=Uporaba ključa validateSignature.cert.selfSigned=Samopodpisano validateSignature.cert.bits=bits +compress.grayscale.label=Uporabi sivinsko lestvico za stiskanje diff --git a/src/main/resources/messages_sr_LATN_RS.properties b/src/main/resources/messages_sr_LATN_RS.properties index 078c097d0..1edeb8620 100644 --- a/src/main/resources/messages_sr_LATN_RS.properties +++ b/src/main/resources/messages_sr_LATN_RS.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Primeni sivinu za kompresiju diff --git a/src/main/resources/messages_sv_SE.properties b/src/main/resources/messages_sv_SE.properties index 4c0c4113e..00aac4efc 100644 --- a/src/main/resources/messages_sv_SE.properties +++ b/src/main/resources/messages_sv_SE.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Tillämpa gråskala för komprimering diff --git a/src/main/resources/messages_th_TH.properties b/src/main/resources/messages_th_TH.properties index 96c68f1fb..8a9bac5bc 100644 --- a/src/main/resources/messages_th_TH.properties +++ b/src/main/resources/messages_th_TH.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=ใช้ระดับสีเทาสำหรับการบีบอัด diff --git a/src/main/resources/messages_tr_TR.properties b/src/main/resources/messages_tr_TR.properties index 3ecafba0b..35a6ad511 100644 --- a/src/main/resources/messages_tr_TR.properties +++ b/src/main/resources/messages_tr_TR.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Sıkıştırma için Gri Ton Uygula diff --git a/src/main/resources/messages_uk_UA.properties b/src/main/resources/messages_uk_UA.properties index edabc7c14..55deb6fdd 100644 --- a/src/main/resources/messages_uk_UA.properties +++ b/src/main/resources/messages_uk_UA.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Застосувати відтінки сірого для стиснення diff --git a/src/main/resources/messages_vi_VN.properties b/src/main/resources/messages_vi_VN.properties index e3b6d5b18..e5aab3f9f 100644 --- a/src/main/resources/messages_vi_VN.properties +++ b/src/main/resources/messages_vi_VN.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=Version validateSignature.cert.keyUsage=Key Usage validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.bits=bits +compress.grayscale.label=Áp dụng thang độ xám để nén diff --git a/src/main/resources/messages_zh_BO.properties b/src/main/resources/messages_zh_BO.properties index be8aae05b..ed1269b5a 100644 --- a/src/main/resources/messages_zh_BO.properties +++ b/src/main/resources/messages_zh_BO.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=པར་གཞི། validateSignature.cert.keyUsage=ལྡེ་མིག་བེད་སྤྱོད། validateSignature.cert.selfSigned=རང་མིང་རྟགས། validateSignature.cert.bits=གནས། +compress.grayscale.label=应用灰度进行压缩 diff --git a/src/main/resources/messages_zh_CN.properties b/src/main/resources/messages_zh_CN.properties index 7261a2432..86ae02cbb 100644 --- a/src/main/resources/messages_zh_CN.properties +++ b/src/main/resources/messages_zh_CN.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=版本 validateSignature.cert.keyUsage=密钥用途 validateSignature.cert.selfSigned=自签名 validateSignature.cert.bits=比特 +compress.grayscale.label=应用灰度进行压缩 diff --git a/src/main/resources/messages_zh_TW.properties b/src/main/resources/messages_zh_TW.properties index 17f993913..06b591048 100644 --- a/src/main/resources/messages_zh_TW.properties +++ b/src/main/resources/messages_zh_TW.properties @@ -1384,3 +1384,4 @@ validateSignature.cert.version=版本 validateSignature.cert.keyUsage=金鑰用途 validateSignature.cert.selfSigned=自我簽署 validateSignature.cert.bits=位元 +compress.grayscale.label=應用灰階進行壓縮 diff --git a/src/main/resources/templates/misc/compress-pdf.html b/src/main/resources/templates/misc/compress-pdf.html index 54d6e61cc..e76a4b1c9 100644 --- a/src/main/resources/templates/misc/compress-pdf.html +++ b/src/main/resources/templates/misc/compress-pdf.html @@ -39,6 +39,13 @@ + +