From 2d68876be1a3f573cefedc82dd74af1c0c0bf018 Mon Sep 17 00:00:00 2001 From: ryantang Date: Thu, 27 Feb 2025 13:21:07 +0800 Subject: [PATCH] Added zip file feature to fork --- 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 | 2 + 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 + src/main/resources/static/js/fileInput.js | 127 ++++- .../resources/templates/auto-split-pdf.html | 2 +- .../templates/convert/img-to-pdf.html | 2 +- .../templates/convert/pdf-to-book.html | 81 ++-- .../templates/convert/pdf-to-csv.html | 86 ++-- .../templates/convert/pdf-to-html.html | 55 ++- .../templates/convert/pdf-to-img.html | 2 +- .../templates/convert/pdf-to-pdfa.html | 145 +++--- .../convert/pdf-to-presentation.html | 2 +- .../templates/convert/pdf-to-text.html | 68 +-- .../templates/convert/pdf-to-word.html | 2 +- .../templates/convert/pdf-to-xml.html | 55 ++- src/main/resources/templates/crop.html | 71 +-- .../resources/templates/extract-page.html | 2 +- .../resources/templates/fragments/common.html | 11 +- src/main/resources/templates/merge-pdfs.html | 2 +- .../resources/templates/misc/add-image.html | 4 +- .../templates/misc/add-page-numbers.html | 195 ++++---- .../templates/misc/adjust-contrast.html | 68 +-- .../resources/templates/misc/auto-crop.html | 55 ++- .../resources/templates/misc/auto-rename.html | 63 +-- .../templates/misc/change-metadata.html | 187 ++++---- .../resources/templates/misc/compare.html | 4 +- .../templates/misc/compress-pdf.html | 8 +- .../templates/misc/extract-images.html | 77 +-- .../resources/templates/misc/fake-scan.html | 49 +- .../resources/templates/misc/flatten.html | 64 +-- .../resources/templates/misc/ocr-pdf.html | 448 +++++++++--------- .../templates/misc/remove-annotations.html | 110 +++-- .../templates/misc/remove-blanks.html | 74 +-- src/main/resources/templates/misc/repair.html | 49 +- .../templates/misc/replace-color.html | 141 +++--- .../templates/misc/show-javascript.html | 111 +++-- src/main/resources/templates/misc/stamp.html | 291 ++++++------ .../templates/multi-page-layout.html | 78 +-- src/main/resources/templates/overlay-pdf.html | 199 ++++---- .../resources/templates/pdf-organizer.html | 2 +- .../templates/pdf-to-single-page.html | 50 +- .../resources/templates/remove-image-pdf.html | 51 +- .../resources/templates/remove-pages.html | 2 +- src/main/resources/templates/rotate-pdf.html | 2 +- src/main/resources/templates/scale-pages.html | 89 ++-- .../templates/security/add-password.html | 167 ++++--- .../templates/security/add-watermark.html | 323 +++++++------ .../templates/security/cert-sign.html | 213 +++++---- .../security/change-permissions.html | 134 +++--- .../templates/security/get-info-on-pdf.html | 261 +++++----- .../resources/templates/security/redact.html | 2 +- .../templates/security/remove-cert-sign.html | 61 +-- .../templates/security/remove-password.html | 71 +-- .../templates/security/remove-watermark.html | 70 +-- .../templates/security/sanitize-pdf.html | 100 ++-- .../security/validate-signature.html | 362 +++++++------- src/main/resources/templates/sign.html | 7 +- .../templates/split-by-size-or-count.html | 2 +- .../templates/split-pdf-by-chapters.html | 2 +- .../templates/split-pdf-by-sections.html | 161 ++++--- src/main/resources/templates/split-pdfs.html | 2 +- 98 files changed, 2799 insertions(+), 2364 deletions(-) diff --git a/src/main/resources/messages_ar_AR.properties b/src/main/resources/messages_ar_AR.properties index a95d56920..badda3a10 100644 --- a/src/main/resources/messages_ar_AR.properties +++ b/src/main/resources/messages_ar_AR.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=قم بسحب الملفات وإفلاتها fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=قم بسحب المفات وإفلاتها هنا +fileChooser.extractPDF=جاري الاستخراج... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_az_AZ.properties b/src/main/resources/messages_az_AZ.properties index f3d692a5c..44b319f31 100644 --- a/src/main/resources/messages_az_AZ.properties +++ b/src/main/resources/messages_az_AZ.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.extractPDF=Extracting... #release notes releases.footer=Buraxılışlar diff --git a/src/main/resources/messages_bg_BG.properties b/src/main/resources/messages_bg_BG.properties index 16f756a8b..e2b23fb88 100644 --- a/src/main/resources/messages_bg_BG.properties +++ b/src/main/resources/messages_bg_BG.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Влачете и пуснете fileChooser.dragAndDropPDF=Влачете и пуснете PDF файл fileChooser.dragAndDropImage=Влачете и пуснете изображение fileChooser.hoveredDragAndDrop=Влачете и пуснете файл(ове) тук +fileChooser.extractPDF=Извличане... #release notes releases.footer=Версии diff --git a/src/main/resources/messages_ca_CA.properties b/src/main/resources/messages_ca_CA.properties index 708126d05..13568f127 100644 --- a/src/main/resources/messages_ca_CA.properties +++ b/src/main/resources/messages_ca_CA.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.extractPDF=Extracting... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_cs_CZ.properties b/src/main/resources/messages_cs_CZ.properties index 27801cbf7..9edfda834 100644 --- a/src/main/resources/messages_cs_CZ.properties +++ b/src/main/resources/messages_cs_CZ.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Přetáhnout fileChooser.dragAndDropPDF=Přetáhnout PDF soubor fileChooser.dragAndDropImage=Přetáhnout obrázek fileChooser.hoveredDragAndDrop=Přetáhněte soubor(y) sem +fileChooser.extractPDF=Extrahování... #release notes releases.footer=Vydání diff --git a/src/main/resources/messages_da_DK.properties b/src/main/resources/messages_da_DK.properties index b3019041b..2e650159e 100644 --- a/src/main/resources/messages_da_DK.properties +++ b/src/main/resources/messages_da_DK.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.extractPDF=Extracting... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_de_DE.properties b/src/main/resources/messages_de_DE.properties index 113ec027e..13bdbafee 100644 --- a/src/main/resources/messages_de_DE.properties +++ b/src/main/resources/messages_de_DE.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF-Datei fileChooser.dragAndDropImage=Drag & Drop Bilddatei fileChooser.hoveredDragAndDrop=Datei(en) hierhin Ziehen & Fallenlassen +fileChooser.extractPDF=Extrahiere... #release notes releases.footer=Veröffentlichungen diff --git a/src/main/resources/messages_el_GR.properties b/src/main/resources/messages_el_GR.properties index 90d63a8f3..06171df61 100644 --- a/src/main/resources/messages_el_GR.properties +++ b/src/main/resources/messages_el_GR.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Σύρετε & αφήστε fileChooser.dragAndDropPDF=Σύρετε & αφήστε αρχείο PDF fileChooser.dragAndDropImage=Σύρετε & αφήστε αρχείο εικόνας fileChooser.hoveredDragAndDrop=Σύρετε & αφήστε αρχείο(α) εδώ +fileChooser.extractPDF=Εξαγωγή... #release notes releases.footer=Εκδόσεις diff --git a/src/main/resources/messages_en_GB.properties b/src/main/resources/messages_en_GB.properties index bd5345635..1bf886164 100644 --- a/src/main/resources/messages_en_GB.properties +++ b/src/main/resources/messages_en_GB.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.extractPDF=Extracting... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_en_US.properties b/src/main/resources/messages_en_US.properties index aaa9f9682..3c2922a1e 100644 --- a/src/main/resources/messages_en_US.properties +++ b/src/main/resources/messages_en_US.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.extractPDF=Extracting... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_es_ES.properties b/src/main/resources/messages_es_ES.properties index d16e417a8..b85f709e4 100644 --- a/src/main/resources/messages_es_ES.properties +++ b/src/main/resources/messages_es_ES.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Arrastrar & Soltar fileChooser.dragAndDropPDF=Arrastrar & Soltar archivo PDF fileChooser.dragAndDropImage=Arrastrar & Soltar archivo de Imagen fileChooser.hoveredDragAndDrop=Arrastrar & Soltar archivos(s) aquí +fileChooser.extractPDF=Extrayendo... #release notes releases.footer=Versiones diff --git a/src/main/resources/messages_eu_ES.properties b/src/main/resources/messages_eu_ES.properties index e7397d25d..dcb06a296 100644 --- a/src/main/resources/messages_eu_ES.properties +++ b/src/main/resources/messages_eu_ES.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.extractPDF=Extracting... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_fa_IR.properties b/src/main/resources/messages_fa_IR.properties index 13c7be2d4..bd211e0fd 100644 --- a/src/main/resources/messages_fa_IR.properties +++ b/src/main/resources/messages_fa_IR.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=بکشید و رها کنید fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=فایل(های) خود را اینجا بکشید و رها کنید +fileChooser.extractPDF=در حال استخراج... #release notes releases.footer=نسخه‌ها diff --git a/src/main/resources/messages_fr_FR.properties b/src/main/resources/messages_fr_FR.properties index d82065a11..387becf42 100644 --- a/src/main/resources/messages_fr_FR.properties +++ b/src/main/resources/messages_fr_FR.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Glisser & Déposer fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Glisser & Déposer le(s) fichier(s) ici +fileChooser.extractPDF=Extraction en cours... #release notes releases.footer=Versions diff --git a/src/main/resources/messages_ga_IE.properties b/src/main/resources/messages_ga_IE.properties index 154abd49b..2e20c0c88 100644 --- a/src/main/resources/messages_ga_IE.properties +++ b/src/main/resources/messages_ga_IE.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Tarraing & Scaoil fileChooser.dragAndDropPDF=Tarraing & Scaoil comhad PDF fileChooser.dragAndDropImage=Tarraing & Scaoil comhad Íomhá fileChooser.hoveredDragAndDrop=Tarraing agus scaoil comhad(í) anseo +fileChooser.extractPDF=Ag Aistriú... #release notes releases.footer=Eisiúintí diff --git a/src/main/resources/messages_hi_IN.properties b/src/main/resources/messages_hi_IN.properties index 0ddabb7ac..2da76f85e 100644 --- a/src/main/resources/messages_hi_IN.properties +++ b/src/main/resources/messages_hi_IN.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=खींचें और छोड़ें fileChooser.dragAndDropPDF=PDF फ़ाइल खींचें और छोड़ें fileChooser.dragAndDropImage=छवि फ़ाइल खींचें और छोड़ें fileChooser.hoveredDragAndDrop=फ़ाइल(ें) यहाँ खींचें और छोड़ें +fileChooser.extractPDF=निकालना... #release notes releases.footer=रिलीज़ diff --git a/src/main/resources/messages_hr_HR.properties b/src/main/resources/messages_hr_HR.properties index 3a2482600..db6e4b3b5 100644 --- a/src/main/resources/messages_hr_HR.properties +++ b/src/main/resources/messages_hr_HR.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.extractPDF=Extracting... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_hu_HU.properties b/src/main/resources/messages_hu_HU.properties index 3ef1d3e4e..309fe4603 100644 --- a/src/main/resources/messages_hu_HU.properties +++ b/src/main/resources/messages_hu_HU.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Húzza ide fileChooser.dragAndDropPDF=Húzza ide a PDF fájlt fileChooser.dragAndDropImage=Húzza ide a képfájlt fileChooser.hoveredDragAndDrop=Húzza ide a fájl(oka)t +fileChooser.extractPDF=Kinyerés... #release notes releases.footer=Kiadási jegyzék diff --git a/src/main/resources/messages_id_ID.properties b/src/main/resources/messages_id_ID.properties index 021c5ec2b..4543f766e 100644 --- a/src/main/resources/messages_id_ID.properties +++ b/src/main/resources/messages_id_ID.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.extractPDF=Extracting... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_it_IT.properties b/src/main/resources/messages_it_IT.properties index 2dab8f05b..c160011eb 100644 --- a/src/main/resources/messages_it_IT.properties +++ b/src/main/resources/messages_it_IT.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Trascina & Rilascia fileChooser.dragAndDropPDF=Trascina & rilascia il file PDF fileChooser.dragAndDropImage=Trascina & rilascia il file immagine fileChooser.hoveredDragAndDrop=Trascina & rilascia i file qui +fileChooser.extractPDF=Estraendo... #release notes releases.footer=Rilasci diff --git a/src/main/resources/messages_ja_JP.properties b/src/main/resources/messages_ja_JP.properties index e6810b2ca..cc7b8fc63 100644 --- a/src/main/resources/messages_ja_JP.properties +++ b/src/main/resources/messages_ja_JP.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=ドラッグ&ドロップ fileChooser.dragAndDropPDF=PDFファイルをドラッグ&ドロップ fileChooser.dragAndDropImage=画像ファイルをドラッグ&ドロップ fileChooser.hoveredDragAndDrop=ファイルをここにドラッグ&ドロップ +fileChooser.extractPDF=抽出中... #release notes releases.footer=リリース diff --git a/src/main/resources/messages_ko_KR.properties b/src/main/resources/messages_ko_KR.properties index 6049937fb..a0158acdf 100644 --- a/src/main/resources/messages_ko_KR.properties +++ b/src/main/resources/messages_ko_KR.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=드래그 앤 드롭 fileChooser.dragAndDropPDF=PDF 파일을 드래그 앤 드롭 fileChooser.dragAndDropImage=이미지 파일을 드래그 앤 드롭 fileChooser.hoveredDragAndDrop=여기에 파일을 드래그 앤 드롭하세요 +fileChooser.extractPDF=추출 중... #release notes releases.footer=릴리스 diff --git a/src/main/resources/messages_nl_NL.properties b/src/main/resources/messages_nl_NL.properties index 2bc49d17c..313be3149 100644 --- a/src/main/resources/messages_nl_NL.properties +++ b/src/main/resources/messages_nl_NL.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.hoveredDragAndDrop=Extracting... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_no_NB.properties b/src/main/resources/messages_no_NB.properties index 474013c61..b2f97dc63 100644 --- a/src/main/resources/messages_no_NB.properties +++ b/src/main/resources/messages_no_NB.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.hoveredDragAndDrop=Extracting... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_pl_PL.properties b/src/main/resources/messages_pl_PL.properties index 7f3936d5e..63be78198 100644 --- a/src/main/resources/messages_pl_PL.properties +++ b/src/main/resources/messages_pl_PL.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.hoveredDragAndDrop=Extracting... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_pt_BR.properties b/src/main/resources/messages_pt_BR.properties index 28a5b6f12..bd36faf3f 100644 --- a/src/main/resources/messages_pt_BR.properties +++ b/src/main/resources/messages_pt_BR.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Arraste & Solte fileChooser.dragAndDropPDF=Arraste & Solte PDF(s) fileChooser.dragAndDropImage=Arraste & Solte Imagem(ns) fileChooser.hoveredDragAndDrop=Arraste & Solte arquivo(s) aqui +fileChooser.extractPDF=Extraindo... #release notes releases.footer=Versões diff --git a/src/main/resources/messages_pt_PT.properties b/src/main/resources/messages_pt_PT.properties index 9e11618e4..4c19587fa 100644 --- a/src/main/resources/messages_pt_PT.properties +++ b/src/main/resources/messages_pt_PT.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Arrastar e Largar fileChooser.dragAndDropPDF=Arrastar e Largar ficheiro PDF fileChooser.dragAndDropImage=Arrastar e Largar ficheiro de Imagem fileChooser.hoveredDragAndDrop=Arrastar e Largar ficheiro(s) aqui +fileChooser.extractPDF=Extraindo... #release notes releases.footer=Lançamentos diff --git a/src/main/resources/messages_ro_RO.properties b/src/main/resources/messages_ro_RO.properties index 306dc1763..66934c838 100644 --- a/src/main/resources/messages_ro_RO.properties +++ b/src/main/resources/messages_ro_RO.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.extractPDF=Extracting... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_ru_RU.properties b/src/main/resources/messages_ru_RU.properties index 84c069b14..c2544f7df 100644 --- a/src/main/resources/messages_ru_RU.properties +++ b/src/main/resources/messages_ru_RU.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Перетащите fileChooser.dragAndDropPDF=Перетащите PDF-файл fileChooser.dragAndDropImage=Перетащите файл изображения fileChooser.hoveredDragAndDrop=Перетащите файл(ы) сюда +fileChooser.extractPDF=Извлечение... #release notes releases.footer=Релизы diff --git a/src/main/resources/messages_sk_SK.properties b/src/main/resources/messages_sk_SK.properties index 9d867096b..ef70c1a8f 100644 --- a/src/main/resources/messages_sk_SK.properties +++ b/src/main/resources/messages_sk_SK.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.extractPDF=Extracting... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_sl_SI.properties b/src/main/resources/messages_sl_SI.properties index 30ebe7c59..870494f9e 100644 --- a/src/main/resources/messages_sl_SI.properties +++ b/src/main/resources/messages_sl_SI.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Povleci in spusti fileChooser.dragAndDropPDF=Povleci in spusti datoteko PDF fileChooser.dragAndDropImage=Povleci in spusti slikovno datoteko fileChooser.hoveredDragAndDrop=Povleci in spusti datoteko(e) sem +fileChooser.extractPDF=Izvlečenje... #release notes releases.footer=Izdaje diff --git a/src/main/resources/messages_sr_LATN_RS.properties b/src/main/resources/messages_sr_LATN_RS.properties index 03fc41572..39804a691 100644 --- a/src/main/resources/messages_sr_LATN_RS.properties +++ b/src/main/resources/messages_sr_LATN_RS.properties @@ -1343,6 +1343,8 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.extractPDF=Extracting... + #release notes releases.footer=Releases diff --git a/src/main/resources/messages_sv_SE.properties b/src/main/resources/messages_sv_SE.properties index e590aa02f..4d27f1439 100644 --- a/src/main/resources/messages_sv_SE.properties +++ b/src/main/resources/messages_sv_SE.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Dra & Släpp fileChooser.dragAndDropPDF=Dra & Släpp PDF fil fileChooser.dragAndDropImage=Dra & Släpp bildfil fileChooser.hoveredDragAndDrop=Dra & Släpp fil(er) här +fileChooser.extractPDF=Extraherar... #release notes releases.footer=Utgåvor diff --git a/src/main/resources/messages_th_TH.properties b/src/main/resources/messages_th_TH.properties index 5df9c2b2f..6394c2b28 100644 --- a/src/main/resources/messages_th_TH.properties +++ b/src/main/resources/messages_th_TH.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.extractPDF=Extracting... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_tr_TR.properties b/src/main/resources/messages_tr_TR.properties index e01b78cb3..013b527d2 100644 --- a/src/main/resources/messages_tr_TR.properties +++ b/src/main/resources/messages_tr_TR.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.extractPDF=Extracting... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_uk_UA.properties b/src/main/resources/messages_uk_UA.properties index 5abae509d..273f176e3 100644 --- a/src/main/resources/messages_uk_UA.properties +++ b/src/main/resources/messages_uk_UA.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.extractPDF=Extracting... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_vi_VN.properties b/src/main/resources/messages_vi_VN.properties index 66accd73a..4767a92d6 100644 --- a/src/main/resources/messages_vi_VN.properties +++ b/src/main/resources/messages_vi_VN.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here +fileChooser.extractPDF=Extracting... #release notes releases.footer=Releases diff --git a/src/main/resources/messages_zh_BO.properties b/src/main/resources/messages_zh_BO.properties index 8fda36d39..df060b880 100644 --- a/src/main/resources/messages_zh_BO.properties +++ b/src/main/resources/messages_zh_BO.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=འཐེན་ནས་འཇོག་པ། fileChooser.dragAndDropPDF=PDF ཡིག་ཆ་འཐེན་ནས་འཇོག་པ། fileChooser.dragAndDropImage=པར་རིས་ཡིག་ཆ་འཐེན་ནས་འཇོག་པ། fileChooser.hoveredDragAndDrop=ཡིག་ཆ་འདིར་འཐེན་ནས་འཇོག་པ། +fileChooser.extractPDF=འབྱུང་བ། #release notes releases.footer=པར་གཞི། diff --git a/src/main/resources/messages_zh_CN.properties b/src/main/resources/messages_zh_CN.properties index 8bdeb4152..984e50f45 100644 --- a/src/main/resources/messages_zh_CN.properties +++ b/src/main/resources/messages_zh_CN.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=拖放文件 fileChooser.dragAndDropPDF=拖放PDF文件 fileChooser.dragAndDropImage=拖放图片文件 fileChooser.hoveredDragAndDrop=拖放文件到此处 +fileChooser.extractPDF=处理中... #release notes releases.footer=版本 diff --git a/src/main/resources/messages_zh_TW.properties b/src/main/resources/messages_zh_TW.properties index 68e8b8116..dfb7fa85c 100644 --- a/src/main/resources/messages_zh_TW.properties +++ b/src/main/resources/messages_zh_TW.properties @@ -1343,6 +1343,7 @@ fileChooser.dragAndDrop=拖放檔案 fileChooser.dragAndDropPDF=拖放 PDF 檔案 fileChooser.dragAndDropImage=拖放圖片檔案 fileChooser.hoveredDragAndDrop=將檔案拖放至此 +fileChooser.extractPDF=處理中... #release notes releases.footer=版本資訊 diff --git a/src/main/resources/static/js/fileInput.js b/src/main/resources/static/js/fileInput.js index b2316f4ff..d8fab96ce 100644 --- a/src/main/resources/static/js/fileInput.js +++ b/src/main/resources/static/js/fileInput.js @@ -1,7 +1,8 @@ import FileIconFactory from './file-icon-factory.js'; import FileUtils from './file-utils.js'; import UUID from './uuid.js'; -import {DecryptFile} from './DecryptFiles.js'; +import { DecryptFile } from './DecryptFiles.js'; + let isScriptExecuted = false; if (!isScriptExecuted) { isScriptExecuted = true; @@ -11,6 +12,24 @@ if (!isScriptExecuted) { } let hasDroppedImage = false; +const zipTypes = [ + 'application/zip', + 'multipart/x-zip', + 'application/zip-compressed', + 'application/x-zip-compressed', +]; + +const mimeTypes = { + "png": "image/png", + "jpg": "image/jpeg", + "jpeg": "image/jpeg", + "gif": "image/gif", + "bmp": "image/bmp", + "svg": "image/svg+xml", + "pdf": "application/pdf", + "zip": "application/zip", +}; + function setupFileInput(chooser) { const elementId = chooser.getAttribute('data-bs-element-id'); const filesSelected = chooser.getAttribute('data-bs-files-selected'); @@ -55,6 +74,7 @@ function setupFileInput(chooser) { overlay = false; } + const dropListener = function (e) { e.preventDefault(); // Drag and Drop shall only affect the target file chooser @@ -83,7 +103,7 @@ function setupFileInput(chooser) { dragCounter = 0; - fileInput.dispatchEvent(new CustomEvent('change', {bubbles: true, detail: {source: 'drag-drop'}})); + fileInput.dispatchEvent(new CustomEvent('change', { bubbles: true, detail: { source: 'drag-drop' } })); }; function pushFileListTo(fileList, container) { @@ -114,12 +134,34 @@ function setupFileInput(chooser) { } else { allFiles = Array.from(isDragAndDrop ? allFiles : [element.files[0]]); } + + // iterate through entries to check for zip files, if there is encryption needed it will passed to next function + async function checkZipFile() { + const originalText = inputContainer.querySelector('#fileInputText').innerHTML; + + inputContainer.querySelector('#fileInputText').innerHTML = window.fileInput.extractPDF; + + const promises = allFiles.map(async (file, index) => { + if (zipTypes.includes(file.type)) { + await extractZipFiles(file, element.accept); + allFiles.splice(index, 1); + } + }); + + await Promise.all(promises); + + inputContainer.querySelector('#fileInputText').innerHTML = originalText; + } + + await checkZipFile(); + allFiles = await Promise.all( allFiles.map(async (file) => { let decryptedFile = file; + try { const decryptFile = new DecryptFile(); - const {isEncrypted, requiresPassword} = await decryptFile.checkFileEncrypted(file); + const { isEncrypted, requiresPassword } = await decryptFile.checkFileEncrypted(file); if (file.type === 'application/pdf' && isEncrypted) { decryptedFile = await decryptFile.decryptFile(file, requiresPassword); if (!decryptedFile) throw new Error('File decryption failed.'); @@ -139,7 +181,7 @@ function setupFileInput(chooser) { } handleFileInputChange(this); - this.dispatchEvent(new CustomEvent('file-input-change', {bubbles: true, detail: {elementId, allFiles}})); + this.dispatchEvent(new CustomEvent('file-input-change', { bubbles: true, detail: { elementId, allFiles } })); }); function toDataTransfer(files) { @@ -147,17 +189,76 @@ function setupFileInput(chooser) { files.forEach((file) => dataTransfer.items.add(file)); return dataTransfer; } + + async function extractZipFiles(zipFile, acceptedFileType) { + const jszip = new JSZip(); + + return jszip.loadAsync(zipFile).then(function (zip) { + + const extractionPromises = []; + var promise; + + zip.forEach(function (relativePath, zipEntry) { + if (zipEntry.name.endsWith('.zip')) { + console.log("Found nested ZIP file: " + zipEntry.name); + + promise = zipEntry.async('blob').then(function (content) { + return extractZipFiles(content, acceptedFileType); + }); + + } else { + promise = zipEntry.async('blob').then(function (content) { + + // Assuming that folders has size of zero + if (content.size > 0) { + + const extension = zipEntry.name.split('.').pop().toLowerCase(); + const mimeType = mimeTypes[extension] + + // check for file extension + if (mimeType && (mimeType.startsWith(acceptedFileType.split('/')[0]) || acceptedFileType === mimeType)) { + var file = new File([content], zipEntry.name, { + type: mimeType, + }); + + file.uniqueId = UUID.uuidv4(); + allFiles.push(file); + } else { + console.log(`File ${zipEntry.name} skipped. MIME type (${mimeType}) does not match accepted type (${acceptedFileType})`); + } + } + }); + + } + extractionPromises.push(promise); + }); + + return Promise.all(extractionPromises); + + }).catch(function (err) { + console.error("Error loading the ZIP file:", err); + throw err; + }); + } + function handleFileInputChange(inputElement) { + const files = allFiles; + showOrHideSelectedFilesContainer(files); - const filesInfo = files.map((f) => ({ - name: f.name, - size: f.size, - uniqueId: f.uniqueId, - type: f.type, - url: URL.createObjectURL(f), - })); + const filesInfo = files.map((f) => { + + const url = URL.createObjectURL(f); + + return { + name: f.name, + size: f.size, + uniqueId: f.uniqueId, + type: f.type, + url: url, + }; + }); const selectedFilesContainer = $(inputContainer).siblings('.selected-files'); selectedFilesContainer.empty(); @@ -171,6 +272,8 @@ function setupFileInput(chooser) { let fileIconContainer = document.createElement('div'); const isDragAndDropEnabled = window.location.pathname.includes('add-image') || window.location.pathname.includes('sign'); + + // add image thumbnail to it if (info.type.startsWith('image/')) { let imgPreview = document.createElement('img'); imgPreview.src = info.url; @@ -283,7 +386,7 @@ function setupFileInput(chooser) { showOrHideSelectedFilesContainer(allFiles); - inputElement.dispatchEvent(new CustomEvent('file-input-change', {bubbles: true})); + inputElement.dispatchEvent(new CustomEvent('file-input-change', { bubbles: true })); } function removeFileById(fileId, inputElement) { diff --git a/src/main/resources/templates/auto-split-pdf.html b/src/main/resources/templates/auto-split-pdf.html index 25584918c..c4d18b6db 100644 --- a/src/main/resources/templates/auto-split-pdf.html +++ b/src/main/resources/templates/auto-split-pdf.html @@ -26,7 +26,7 @@

+ th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='application/pdf , application/zip' )}">
diff --git a/src/main/resources/templates/convert/img-to-pdf.html b/src/main/resources/templates/convert/img-to-pdf.html index 6c37e6473..7c50d88fe 100644 --- a/src/main/resources/templates/convert/img-to-pdf.html +++ b/src/main/resources/templates/convert/img-to-pdf.html @@ -22,7 +22,7 @@
+ th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='image/*, application/zip', inputText=#{imgPrompt})}">
diff --git a/src/main/resources/templates/convert/pdf-to-book.html b/src/main/resources/templates/convert/pdf-to-book.html index ef5f10630..06f67e4e4 100644 --- a/src/main/resources/templates/convert/pdf-to-book.html +++ b/src/main/resources/templates/convert/pdf-to-book.html @@ -1,45 +1,50 @@ - - - - + - - -
-
- -

-
-
-
-

- -
-
- - -
- - -

-
+ + + + + + +
+
+ +

+
+
+
+

+
+
+
+
+ + +
+ +
+

-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/convert/pdf-to-csv.html b/src/main/resources/templates/convert/pdf-to-csv.html index 3272766a1..b677971df 100644 --- a/src/main/resources/templates/convert/pdf-to-csv.html +++ b/src/main/resources/templates/convert/pdf-to-csv.html @@ -1,46 +1,58 @@ - - + + + - + - -
-
- -

-
-
-
-
- csv - -
-
- -
- -
- - -
-
- - -
- -
- - + +
+
+ +

+
+
+
+
+ csv +
+
+ +
+
+ +
+ + +
+
+ + +
+ +
+ +
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/convert/pdf-to-html.html b/src/main/resources/templates/convert/pdf-to-html.html index 833940c0f..418fa1d7f 100644 --- a/src/main/resources/templates/convert/pdf-to-html.html +++ b/src/main/resources/templates/convert/pdf-to-html.html @@ -1,33 +1,38 @@ - - - - + - - -
-
- -

-
-
-
-
- html - -
-
-
-
- -
-

+ + + + + + +
+
+ +

+
+
+
+
+ html +
+
+
+
+
+ +
+

-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/convert/pdf-to-img.html b/src/main/resources/templates/convert/pdf-to-img.html index b4f2b0657..12b26f0e6 100644 --- a/src/main/resources/templates/convert/pdf-to-img.html +++ b/src/main/resources/templates/convert/pdf-to-img.html @@ -24,7 +24,7 @@

+ th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='application/pdf , application/zip' )}">
diff --git a/src/main/resources/templates/convert/pdf-to-pdfa.html b/src/main/resources/templates/convert/pdf-to-pdfa.html index 33c07acb9..c1206465a 100644 --- a/src/main/resources/templates/convert/pdf-to-pdfa.html +++ b/src/main/resources/templates/convert/pdf-to-pdfa.html @@ -1,78 +1,83 @@ - - + + + - + - - -
-
- -

-
-
-
-
- picture_as_pdf - -
-

- -
-
- - -
-
- - - - -

+ + +
+
+ +

+
+
+
+
+ picture_as_pdf +
+

+
+
+
+
+ + +
+
+ +
+ + +

-
- - + +
+ + + \ No newline at end of file diff --git a/src/main/resources/templates/convert/pdf-to-presentation.html b/src/main/resources/templates/convert/pdf-to-presentation.html index 56f22db56..1a1405fd5 100644 --- a/src/main/resources/templates/convert/pdf-to-presentation.html +++ b/src/main/resources/templates/convert/pdf-to-presentation.html @@ -23,7 +23,7 @@
+ th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='application/pdf , application/zip' )}">
diff --git a/src/main/resources/templates/convert/pdf-to-text.html b/src/main/resources/templates/convert/pdf-to-text.html index a98f06f0f..fcd8bf754 100644 --- a/src/main/resources/templates/convert/pdf-to-text.html +++ b/src/main/resources/templates/convert/pdf-to-text.html @@ -1,39 +1,45 @@ - - - - + - - -
-
- -

-
-
-
-
- text_fields - -
- -
-
- - -
- - -

+ + + + + + +
+
+ +

+
+
+
+
+ text_fields +
+
+
+
+
+ + +
+ +
+

-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/convert/pdf-to-word.html b/src/main/resources/templates/convert/pdf-to-word.html index 0b500cbb6..c51235530 100644 --- a/src/main/resources/templates/convert/pdf-to-word.html +++ b/src/main/resources/templates/convert/pdf-to-word.html @@ -21,7 +21,7 @@
+ th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='application/pdf , application/zip' )}">
diff --git a/src/main/resources/templates/convert/pdf-to-xml.html b/src/main/resources/templates/convert/pdf-to-xml.html index 25358a681..af1160f68 100644 --- a/src/main/resources/templates/convert/pdf-to-xml.html +++ b/src/main/resources/templates/convert/pdf-to-xml.html @@ -1,33 +1,38 @@ - - - - + - - -
-
- -

-
-
-
-
- code - -
- -
-
- - -

+ + + + + + +
+
+ +

+
+
+
+
+ code +
+
+
+
+
+ +
+

-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/crop.html b/src/main/resources/templates/crop.html index 0617bf9b6..34ad535d8 100644 --- a/src/main/resources/templates/crop.html +++ b/src/main/resources/templates/crop.html @@ -1,41 +1,46 @@ - - - - + - -
-
- -

-
-
-
-
- crop - -
-
-
- - - - - -
-
- - -
+ + + + +
+
+ +

+
+
+
+
+ crop +
+
+
+
+ + + + + +
+
+ + +
+
- -
+ +
-
- - + +
+ + + \ No newline at end of file diff --git a/src/main/resources/templates/extract-page.html b/src/main/resources/templates/extract-page.html index c01d2c7eb..280a9d691 100644 --- a/src/main/resources/templates/extract-page.html +++ b/src/main/resources/templates/extract-page.html @@ -22,7 +22,7 @@
+ th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='application/pdf , application/zip' )}">
diff --git a/src/main/resources/templates/fragments/common.html b/src/main/resources/templates/fragments/common.html index f8e241149..d568968f8 100644 --- a/src/main/resources/templates/fragments/common.html +++ b/src/main/resources/templates/fragments/common.html @@ -219,7 +219,8 @@ }; window.fileInput = { dragAndDropPDF: '[[#{fileChooser.dragAndDropPDF}]]', - dragAndDropImage: '[[#{fileChooser.dragAndDropImage}]]' + dragAndDropImage: '[[#{fileChooser.dragAndDropImage}]]', + extractPDF: '[[#{fileChooser.extractPDF}]]' };
@@ -230,9 +231,11 @@ th:attr="multiple=${!disableMultipleFiles}" th:required="${notRequired} ? null : 'required'"> Browse -
-
-
+
+
+
+
+
diff --git a/src/main/resources/templates/merge-pdfs.html b/src/main/resources/templates/merge-pdfs.html index f6ace6d74..64958f496 100644 --- a/src/main/resources/templates/merge-pdfs.html +++ b/src/main/resources/templates/merge-pdfs.html @@ -24,7 +24,7 @@
+ th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=true, accept='application/pdf , application/zip')}">
diff --git a/src/main/resources/templates/misc/add-image.html b/src/main/resources/templates/misc/add-image.html index b93747447..f4595f6fd 100644 --- a/src/main/resources/templates/misc/add-image.html +++ b/src/main/resources/templates/misc/add-image.html @@ -23,13 +23,13 @@
+ th:replace="~{fragments/common :: fileSelector(name='pdf-upload', disableMultipleFiles=true, multipleInputsForSingleRequest=false, accept='application/pdf , application/zip')}">
+ th:replace="~{fragments/common :: fileSelector(name='image-upload', disableMultipleFiles=false, multipleInputsForSingleRequest=true, accept='image/*, application/zip', inputText=#{imgPrompt})}">
diff --git a/src/main/resources/templates/misc/add-page-numbers.html b/src/main/resources/templates/misc/add-page-numbers.html index 186253b69..daf3c5625 100644 --- a/src/main/resources/templates/misc/add-page-numbers.html +++ b/src/main/resources/templates/misc/add-page-numbers.html @@ -1,7 +1,10 @@ - + + - + + - + - -
-
- -

-
-
-
- + + + + + + + +
+
+ +

+
+
+
+
@@ -42,24 +47,27 @@
-
+
+

- +
- - - -
+ + +
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/misc/auto-crop.html b/src/main/resources/templates/misc/auto-crop.html index 99b3c3485..06504f800 100644 --- a/src/main/resources/templates/misc/auto-crop.html +++ b/src/main/resources/templates/misc/auto-crop.html @@ -1,33 +1,38 @@ - - - - + - - -
-
- -

-
-
-
-
- crop - -
-
-
-
- -
-

+ + + + + + +
+
+ +

+
+
+
+
+ crop +
+
+
+
+
+ +
+

-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/misc/auto-rename.html b/src/main/resources/templates/misc/auto-rename.html index 884b68985..a6fd7bedd 100644 --- a/src/main/resources/templates/misc/auto-rename.html +++ b/src/main/resources/templates/misc/auto-rename.html @@ -1,35 +1,42 @@ - - - - - - -
-
- -

-
-
-
-
- - - - - - -
-
-
-
- -
+ + + + + + + + + +
+
+ +

+
+
+
+
+ + + + + +
+
+
+
+
+ +
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/misc/change-metadata.html b/src/main/resources/templates/misc/change-metadata.html index 524fde9c8..4d69a8774 100644 --- a/src/main/resources/templates/misc/change-metadata.html +++ b/src/main/resources/templates/misc/change-metadata.html @@ -1,98 +1,107 @@ - - - - + - -
-
- -

-
-
-
-
- assignment - -
-
-
-

-
- - -
-
- - -
-
- - -
+ + + + -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- -
-
- - - -
+ +
+
+ +

+
+
+
+
+ assignment +
+
+
+
+

+
+ + +
+
+ + +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ + + +
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/misc/compare.html b/src/main/resources/templates/misc/compare.html index 27a7ed9ed..61dbed1e3 100644 --- a/src/main/resources/templates/misc/compare.html +++ b/src/main/resources/templates/misc/compare.html @@ -60,10 +60,10 @@
+ th:replace="~{fragments/common :: fileSelector(name='fileInput', disableMultipleFiles=true, multipleInputsForSingleRequest=false, accept='application/pdf , application/zip', remoteCall='false')}">
+ th:replace="~{fragments/common :: fileSelector(name='fileInput2', disableMultipleFiles=true, multipleInputsForSingleRequest=false, accept='application/pdf , application/zip', remoteCall='false')}">
diff --git a/src/main/resources/templates/misc/compress-pdf.html b/src/main/resources/templates/misc/compress-pdf.html index e76a4b1c9..f9b370e22 100644 --- a/src/main/resources/templates/misc/compress-pdf.html +++ b/src/main/resources/templates/misc/compress-pdf.html @@ -21,7 +21,7 @@
+ th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='application/pdf , application/zip' )}">
@@ -43,9 +43,9 @@
-
+
@@ -65,4 +65,4 @@
- + \ No newline at end of file diff --git a/src/main/resources/templates/misc/extract-images.html b/src/main/resources/templates/misc/extract-images.html index d47a72d7c..5e48a9b45 100644 --- a/src/main/resources/templates/misc/extract-images.html +++ b/src/main/resources/templates/misc/extract-images.html @@ -1,43 +1,50 @@ - - - - + - - -
-
- -

-
-
-
-
- photo_library - -
- -
-
- - -
-
- - -
- - + + + + + + + +
+
+ +

+
+
+
+
+ photo_library +
+
+
+
+
+ + +
+
+ + +
+ +
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/misc/fake-scan.html b/src/main/resources/templates/misc/fake-scan.html index 08821f285..3679e125b 100644 --- a/src/main/resources/templates/misc/fake-scan.html +++ b/src/main/resources/templates/misc/fake-scan.html @@ -1,29 +1,34 @@ - - - - + - - -
-
- -

-
-
-
-

-
-
-
- -
-
+ + + + + + +
+
+ +

+
+
+
+

+
+
+
+
+ +
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/misc/flatten.html b/src/main/resources/templates/misc/flatten.html index 51f06737d..f721321e8 100644 --- a/src/main/resources/templates/misc/flatten.html +++ b/src/main/resources/templates/misc/flatten.html @@ -1,38 +1,44 @@ - - + + + - + - -
-
- -

-
-
+ +
+
+ +

+
+
-
-
- layers_clear - -
-
-
-
-
-
- - -
-
- -
+
+
+ layers_clear +
+
+
+
+
+
+
+ + +
+
+ +
-
- - + +
+ + + \ No newline at end of file diff --git a/src/main/resources/templates/misc/ocr-pdf.html b/src/main/resources/templates/misc/ocr-pdf.html index 9af532f48..f07826861 100644 --- a/src/main/resources/templates/misc/ocr-pdf.html +++ b/src/main/resources/templates/misc/ocr-pdf.html @@ -1,231 +1,239 @@ - - + + + - - + if (selected) { + for (let i = 0; i < checkboxes.length; i++) { + checkboxes[i].removeAttribute('required'); + } + } + else { + for (let i = 0; i < checkboxes.length; i++) { + checkboxes[i].setAttribute('required', 'true'); + } + } + } + + - - -
-
- -

-
-
-
-
- quick_reference_all - -
-
-
-
- -
-
-
- - -
-
-
-
-
- - -
-
- -
- - -
-
- -
- -

- https://docs.stirlingpdf.com/Advanced%20Configuration/OCR + + +
+
+ +

+
+
+
+
+ quick_reference_all +
+
+
+
+
+ +
+
+
+ + +
+
+
+
+
+ + +
+
+ +
+ + +
+
+ +
+ +

+ https://docs.stirlingpdf.com/Advanced%20Configuration/OCR
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/misc/remove-annotations.html b/src/main/resources/templates/misc/remove-annotations.html index d1c1f1d00..e03dab1a4 100644 --- a/src/main/resources/templates/misc/remove-annotations.html +++ b/src/main/resources/templates/misc/remove-annotations.html @@ -1,68 +1,76 @@ - - - - + - -
-
- -

-
-
-
-
- thread_unread - -
-
-
-
-
- -
+ + + + + + +
+
+ +

+
+
+
+
+ thread_unread +
+
+
+
+
+
+ +
-
- - + + - await downloadFilesWithCallback(processFile); - }); - - \ No newline at end of file diff --git a/src/main/resources/templates/misc/remove-blanks.html b/src/main/resources/templates/misc/remove-blanks.html index cf483e22b..d4316d94d 100644 --- a/src/main/resources/templates/misc/remove-blanks.html +++ b/src/main/resources/templates/misc/remove-blanks.html @@ -1,41 +1,49 @@ - - - - + - - -
-
- -

-
-
-
-
- scan_delete - -
-
-
-
- - - -
-
- - - -
- -
+ + + + + + + +
+
+ +

+
+
+
+
+ scan_delete +
+
+
+
+
+ + + +
+
+ + + +
+ +
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/misc/repair.html b/src/main/resources/templates/misc/repair.html index eb84a932f..08b707c0c 100644 --- a/src/main/resources/templates/misc/repair.html +++ b/src/main/resources/templates/misc/repair.html @@ -1,30 +1,35 @@ - - - - + - -
-
- -

-
-
-
-
- build - -
-
-
- -
+ + + + + +
+
+ +

+
+
+
+
+ build +
+
+
+
+ +
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/misc/replace-color.html b/src/main/resources/templates/misc/replace-color.html index 4defcff72..c57b9bb41 100644 --- a/src/main/resources/templates/misc/replace-color.html +++ b/src/main/resources/templates/misc/replace-color.html @@ -1,89 +1,98 @@ + xmlns:th="https://www.thymeleaf.org"> - + + - -
-
- -

-
-
-
-
- zoom_in_map - -
-
-
+ +
+
+ +

+
+
+
+
+ zoom_in_map +
-
-
-

- + +
-
-
+
- -
- + \ No newline at end of file diff --git a/src/main/resources/templates/misc/show-javascript.html b/src/main/resources/templates/misc/show-javascript.html index 70e067104..7852ff90a 100644 --- a/src/main/resources/templates/misc/show-javascript.html +++ b/src/main/resources/templates/misc/show-javascript.html @@ -1,56 +1,62 @@ - - + + + - - - - + + + + - -
-
- -

-
-
-
-
- javascript - + +
+
+ +

+
+
+
+
+ javascript + +
+
+
- -
-
- -
-
- -
- -
- - - +
+ + +
+ +
+
- - + -
+ }); +
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/misc/stamp.html b/src/main/resources/templates/misc/stamp.html index d25128303..b1934dca6 100644 --- a/src/main/resources/templates/misc/stamp.html +++ b/src/main/resources/templates/misc/stamp.html @@ -1,153 +1,161 @@ - - - - - + - - -
-
- -

-
-
-
-
- approval - + + + + + + + + +
+
+ +

+
+
+
+
+ approval + +
+
+
- -
-
-
- - +
+
+ + +
+ +
+ + +
+ +
+ +
+
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
-
- - + + +
+ + +
+ +
+ + +
+ + + +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + +
+ + +
+ +
+ + +
+ +
+ +
+
- -
- -
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
-
- - - -
- - -
- -
- - -
- - - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
- - -
- -
- - -
- -
- -
- -
- -
+ +
- - -
+ +
- -
- +
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/multi-page-layout.html b/src/main/resources/templates/multi-page-layout.html index e3c6cff52..af3c90e25 100644 --- a/src/main/resources/templates/multi-page-layout.html +++ b/src/main/resources/templates/multi-page-layout.html @@ -1,44 +1,50 @@ - - - - + - -
-
- -

-
-
-
-
- dashboard - -
-
-
-
- - -
-
- - -
- -
+ + + + + +
+
+ +

+
+
+
+
+ dashboard +
+
+
+
+
+ + +
+
+ + +
+ +
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/overlay-pdf.html b/src/main/resources/templates/overlay-pdf.html index e92e4cb08..87e849ab8 100644 --- a/src/main/resources/templates/overlay-pdf.html +++ b/src/main/resources/templates/overlay-pdf.html @@ -1,102 +1,115 @@ - - - - + - - -
-
- -

-
-
-
-
- layers - -
-
-
-
+ + + + - - -
- - - - - -
- + + +
+
+ +

+
+
+
+
+ layers +
+
+
+
+
+
+ + + +
+ + + + + +
+
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/pdf-organizer.html b/src/main/resources/templates/pdf-organizer.html index 746a6bafd..79a52e8e4 100644 --- a/src/main/resources/templates/pdf-organizer.html +++ b/src/main/resources/templates/pdf-organizer.html @@ -23,7 +23,7 @@
+ th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='application/pdf , application/zip' )}">
diff --git a/src/main/resources/templates/pdf-to-single-page.html b/src/main/resources/templates/pdf-to-single-page.html index 58b51a140..42b84dd4c 100644 --- a/src/main/resources/templates/pdf-to-single-page.html +++ b/src/main/resources/templates/pdf-to-single-page.html @@ -1,30 +1,36 @@ - - - - + - -
-
- -

-
-
-
-
- looks_one - -
- -
- - + + + + + + +
+
+ +

+
+
+
+
+ looks_one +
+
+
+
+ +
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/remove-image-pdf.html b/src/main/resources/templates/remove-image-pdf.html index 5b64081f1..8195377db 100644 --- a/src/main/resources/templates/remove-image-pdf.html +++ b/src/main/resources/templates/remove-image-pdf.html @@ -1,35 +1,42 @@ + xmlns:th="https://www.thymeleaf.org"> + - + + - -
-
- -

-
-
-
-
- remove_selection - -
-
-
+ +
+
+ +

+
+
+
+
+ remove_selection + +
+ +
+
-
- - +
+ + +
+
- -
- + + \ No newline at end of file diff --git a/src/main/resources/templates/remove-pages.html b/src/main/resources/templates/remove-pages.html index ea728d969..b8eda765b 100644 --- a/src/main/resources/templates/remove-pages.html +++ b/src/main/resources/templates/remove-pages.html @@ -23,7 +23,7 @@
+ th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='application/pdf , application/zip' )}">
diff --git a/src/main/resources/templates/rotate-pdf.html b/src/main/resources/templates/rotate-pdf.html index 3d54ce317..89e21eb2f 100644 --- a/src/main/resources/templates/rotate-pdf.html +++ b/src/main/resources/templates/rotate-pdf.html @@ -23,7 +23,7 @@
+ th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='application/pdf , application/zip' )}">
diff --git a/src/main/resources/templates/scale-pages.html b/src/main/resources/templates/scale-pages.html index e6f190323..43bcbd430 100644 --- a/src/main/resources/templates/scale-pages.html +++ b/src/main/resources/templates/scale-pages.html @@ -1,49 +1,56 @@ - - - - + - -
-
- -

-
-
-
-
- fullscreen - -
- -
-
- - -
-
- - -
- - + + + + + +
+
+ +

+
+
+
+
+ fullscreen +
+
+
+
+
+ + +
+
+ + +
+ +
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/security/add-password.html b/src/main/resources/templates/security/add-password.html index 1283a4268..65aa350d0 100644 --- a/src/main/resources/templates/security/add-password.html +++ b/src/main/resources/templates/security/add-password.html @@ -1,88 +1,97 @@ - - - - + - -
-
- -

-
-
-
-
- lock - -
-
-
- -
-
-
- - -
-
- - -
+ + + + -
- - -
-
- -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
-
- -
-
+ +
+
+ +

+
+
+
+
+ lock +
+
+
+ +
+
+
+
+ + +
+
+ + +
+ +
+ + +
+
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ +
+
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/security/add-watermark.html b/src/main/resources/templates/security/add-watermark.html index 950985b0a..756e33544 100644 --- a/src/main/resources/templates/security/add-watermark.html +++ b/src/main/resources/templates/security/add-watermark.html @@ -1,175 +1,182 @@ - - - - + - -
-
- -

-
-
-
-
- water_drop - + + + + + +
+
+ +

+
+
+
+
+ water_drop + +
+ +
+
+ +
+
- -
- -
-
+
+ + +
+
+ + +
+
+ + +
-
- - -
-
- - -
-
- - -
+ - +
+ + +
+
+ + + +
+ + }); -
- - -
-
- - -
-
- - -
-
- -
- -
- -
- - -
- - -
-
- -
-
- - -
+ +
+ + +
+
+ + +
+
+ + +
+
+ +
+ +
+ +
+ + +
+ + +
+
+ +
+ + +
-
- - + +
+ + + \ No newline at end of file diff --git a/src/main/resources/templates/security/cert-sign.html b/src/main/resources/templates/security/cert-sign.html index e69c4fa1a..d6dd87a04 100644 --- a/src/main/resources/templates/security/cert-sign.html +++ b/src/main/resources/templates/security/cert-sign.html @@ -1,116 +1,133 @@ - - - - + - -
-
- -

-
-
-
-
- workspace_premium - + + + + + +
+
+ +

+
+
+
+
+ workspace_premium + +
+
+
+ +
+
- + +
+ +
+
+ + +
+
-
- + - document.getElementById('showSignature').addEventListener('change', function() { - var signatureDetails = document.getElementById('signatureDetails'); - if (this.checked) { - signatureDetails.style.display = 'block'; - } else { - signatureDetails.style.display = 'none'; - } - }); - - \ No newline at end of file diff --git a/src/main/resources/templates/security/change-permissions.html b/src/main/resources/templates/security/change-permissions.html index 52d743913..cb819a41c 100644 --- a/src/main/resources/templates/security/change-permissions.html +++ b/src/main/resources/templates/security/change-permissions.html @@ -1,72 +1,78 @@ - - - - + - -
-
- -

-
-
-
-
- encrypted - -
-

-
-
- -
-
-
- -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
-
- -
-
+ + + + + + +
+
+ +

+
+
+
+
+ encrypted +
+

+
+
+ +
+
+
+
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ +
+
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/security/get-info-on-pdf.html b/src/main/resources/templates/security/get-info-on-pdf.html index 97ddf723a..9306356f5 100644 --- a/src/main/resources/templates/security/get-info-on-pdf.html +++ b/src/main/resources/templates/security/get-info-on-pdf.html @@ -1,157 +1,164 @@ - - + + + - + - -
-
- -

-
-
-
-
- info - + +
+
+ +

+
+
+
+
+ info + +
+
+
- -
- -
-
- -
- -
- - - + + +
+ +
+
- - + -
+ card.appendChild(content); + return card; + } + function createButtonElement(key, safeKey, depth) { + const buttonElem = document.createElement('button'); + buttonElem.className = 'btn btn-link'; + buttonElem.type = 'button'; + buttonElem.dataset.bsToggle = "collapse"; + buttonElem.dataset.bsTarget = `#${safeKey}-content-${depth}`; + buttonElem.setAttribute('aria-expanded', 'true'); + buttonElem.setAttribute('aria-controls', `${safeKey}-content-${depth}`); + buttonElem.textContent = key; + return buttonElem; + } + const collapsibleElems = document.querySelectorAll('[data-bs-toggle="collapse"]'); + collapsibleElems.forEach(elem => { + new bootstrap.Collapse(elem); + }); +
-
- - + +
+ + + \ No newline at end of file diff --git a/src/main/resources/templates/security/redact.html b/src/main/resources/templates/security/redact.html index cdea8015c..3732ae725 100644 --- a/src/main/resources/templates/security/redact.html +++ b/src/main/resources/templates/security/redact.html @@ -38,7 +38,7 @@
+ th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, disableMultipleFiles=true, accept='application/pdf , application/zip')}">
diff --git a/src/main/resources/templates/security/remove-cert-sign.html b/src/main/resources/templates/security/remove-cert-sign.html index ae0bc3cb4..99e1fbd9e 100644 --- a/src/main/resources/templates/security/remove-cert-sign.html +++ b/src/main/resources/templates/security/remove-cert-sign.html @@ -1,35 +1,42 @@ - - - - + - -
-
- -

-
-
-
-
- remove_moderator - -
- -
- -
-
-
- -
- + + + + + + +
+
+ +

+
+
+
+
+ remove_moderator +
+
+
+ +
+
+
+
+ +
+
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/security/remove-password.html b/src/main/resources/templates/security/remove-password.html index 96617cdd6..cf10d33a2 100644 --- a/src/main/resources/templates/security/remove-password.html +++ b/src/main/resources/templates/security/remove-password.html @@ -1,40 +1,47 @@ - - - - + - -
-
- -

-
-
-
-
- lock_open_right - -
-
-
- -
-
-
- - -
-
-
- -
-
+ + + + + + +
+
+ +

+
+
+
+
+ lock_open_right +
+
+
+ +
+
+
+
+ + +
+
+
+ +
+
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/security/remove-watermark.html b/src/main/resources/templates/security/remove-watermark.html index a13c41a15..305c670d0 100644 --- a/src/main/resources/templates/security/remove-watermark.html +++ b/src/main/resources/templates/security/remove-watermark.html @@ -1,39 +1,47 @@ - - - - + - -
-
- -

-
-
-
-
- water_drop - -
-
-
- -
-
-
- - -
-
- -
-
+ + + + + + +
+
+ +

+
+
+
+
+ water_drop +
+
+
+ +
+
+
+
+ + +
+
+ +
+
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/security/sanitize-pdf.html b/src/main/resources/templates/security/sanitize-pdf.html index c24b494b6..1bbab775d 100644 --- a/src/main/resources/templates/security/sanitize-pdf.html +++ b/src/main/resources/templates/security/sanitize-pdf.html @@ -1,55 +1,61 @@ - - - - + - -
-
- -

-
-
-
-
- sanitizer - -
-
-
-
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
- -
-
+ + + + + + +
+
+ +

+
+
+
+
+ sanitizer +
+
+
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/security/validate-signature.html b/src/main/resources/templates/security/validate-signature.html index af4e92132..bd7bdda78 100644 --- a/src/main/resources/templates/security/validate-signature.html +++ b/src/main/resources/templates/security/validate-signature.html @@ -1,188 +1,199 @@ - - - - - + + + + + + + +
-
- -

-
-
-
-
- verified - -
-
-
- -
+
+ +

+
+
+
+
+ verified + +
+ +
+ +
+
+
+
+ +
+
+
+
+ +
+ + + + +
-
- -
-
- -
- - - - -
-
-
- +
- - + + signatureDiv.innerHTML = content; + listDiv.appendChild(signatureDiv); + }); + } + + + \ No newline at end of file diff --git a/src/main/resources/templates/sign.html b/src/main/resources/templates/sign.html index 605737457..1589ce57a 100644 --- a/src/main/resources/templates/sign.html +++ b/src/main/resources/templates/sign.html @@ -15,8 +15,7 @@ #font-select option[value="[[${font.name}]]"] { font-family: "[[${font.name}]]", - cursive - !important; + cursive !important; } @@ -39,13 +38,13 @@
+ th:replace="~{fragments/common :: fileSelector(name='pdf-upload', multipleInputsForSingleRequest=false, disableMultipleFiles=true, accept='application/pdf , application/zip')}">
+ th:replace="~{fragments/common :: fileSelector(name='image-upload', disableMultipleFiles=false, multipleInputsForSingleRequest=true, accept='image/*, application/zip', inputText=#{imgPrompt})}">
diff --git a/src/main/resources/templates/split-by-size-or-count.html b/src/main/resources/templates/split-by-size-or-count.html index ce7cb2f0b..901cdd3c9 100644 --- a/src/main/resources/templates/split-by-size-or-count.html +++ b/src/main/resources/templates/split-by-size-or-count.html @@ -25,7 +25,7 @@
+ th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='application/pdf , application/zip' )}">
-
- - -
-
- - -
-
-
- -
- -
-
+ // Event listeners + document.getElementById('horizontalDivisions').addEventListener('input', updateVisualAid); + document.getElementById('verticalDivisions').addEventListener('input', updateVisualAid); + + // Initial draw + updateVisualAid(); + +
+ +
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/split-pdfs.html b/src/main/resources/templates/split-pdfs.html index 75dbb21cd..00fd19bc1 100644 --- a/src/main/resources/templates/split-pdfs.html +++ b/src/main/resources/templates/split-pdfs.html @@ -21,7 +21,7 @@
+ th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='application/pdf , application/zip' )}">