feat: add "Add Page Labels" tool to the application

- Introduced a new tool for adding page labels to PDF documents, allowing users to apply Roman numerals, prefixes, and custom numbering ranges.
- Created a new HTML page for the tool with a user-friendly interface for file upload and label rule configuration.
- Implemented logic for handling file uploads, processing PDF files, and applying page labels based on user-defined rules.
- Added necessary types and utility functions for managing page label styles and normalization of start values.
- Updated main application configuration to include the new tool in the navigation.
- Added tests for page label utilities to ensure correct functionality.
This commit is contained in:
alam00000
2026-03-16 14:34:27 +05:30
parent 31f43b557f
commit 477839f106
27 changed files with 2318 additions and 0 deletions

View File

@@ -86,6 +86,65 @@
"name": "Numeri di Pagina",
"subtitle": "Inserisci i numeri di pagina nel tuo documento."
},
"addPageLabels": {
"name": "Aggiungi etichette di pagina",
"subtitle": "Applica etichette di pagina PDF con numeri romani, prefissi e valori iniziali personalizzati.",
"uploadHint": "File PDF",
"howLabelsWorkTitle": "Come funzionano le etichette",
"howLabelsWorkStep1": "Lascia vuoto Intervallo pagine per etichettare tutte le pagine.",
"howLabelsWorkStep2": "Usa stili come i numeri romani per le pagine introduttive e la numerazione decimale per il corpo principale.",
"howLabelsWorkStep3": "Usa un prefisso con Valore iniziale 0 per creare etichette come A-0, A-1, A-2.",
"howLabelsWorkStep4": "Abilita la progressione quando una regola usa un intervallo discontinuo come 1-9,30-40 o le pagine dispari.",
"labelRulesTitle": "Regole etichette",
"addRule": "Aggiungi regola",
"removeExistingLabels": "Rimuovi le etichette di pagina esistenti prima di applicare queste regole",
"cpdfNote": "Questo strumento usa CoherentPDF nel tuo browser. Se CoherentPDF non è configurato, ti verrà chiesto di configurarlo nelle impostazioni WASM.",
"processButton": "Aggiungi etichette di pagina",
"howItWorksUploadTitle": "Carica file",
"howItWorksUploadDescription": "Scegli il PDF che vuoi rietichettare.",
"howItWorksDefineTitle": "Definisci le regole",
"howItWorksDefineDescription": "Imposta una o più regole per le etichette di pagina con intervalli di pagine, stili, prefissi e valori iniziali.",
"howItWorksDownloadTitle": "Scarica",
"howItWorksDownloadDescription": "Salva il PDF aggiornato con le sue nuove etichette di pagina.",
"relatedToolsTitle": "Strumenti PDF correlati",
"faqWhatIsQuestion": "Che cos'è un'etichetta di pagina?",
"faqWhatIsAnswer": "Un'etichetta di pagina è la numerazione mostrata dai lettori PDF nelle miniature, nella navigazione delle pagine e nelle finestre di stampa. Non stampa nuovo testo sulla pagina stessa.",
"faqMixQuestion": "Posso mescolare numeri romani e numeri normali?",
"faqMixAnswer": "Sì. Aggiungi più regole, ad esempio 1-4 con LowercaseRoman e 5-20 con DecimalArabic.",
"faqPrivacyQuestion": "I miei file restano privati?",
"faqPrivacyAnswer": "Sì. L'elaborazione avviene nel tuo browser usando CoherentPDF WASM. Il tuo PDF non lascia il tuo dispositivo.",
"invalidFileTitle": "File non valido",
"invalidFileMessage": "Carica un file PDF valido.",
"loadingPdf": "Caricamento PDF...",
"protectedPdfTitle": "PDF protetto",
"protectedPdfMessage": "Questo PDF è protetto da password. Usa prima lo strumento Decripta o Modifica permessi.",
"loadErrorMessage": "Impossibile caricare il file PDF. Il file potrebbe essere non valido, danneggiato o protetto da password.",
"fileMeta": "{{size}} • {{count}} pagine",
"ruleTitle": "Regola etichetta {{number}}",
"pageRangeLabel": "Intervallo pagine",
"pageRangePlaceholder": "Tutte le pagine, oppure ad es. 1-4, 7, dispari",
"labelStyleLabel": "Stile etichetta",
"labelPrefixLabel": "Prefisso etichetta",
"labelPrefixPlaceholder": "Prefisso facoltativo, ad es. A-",
"startValueLabel": "Valore iniziale",
"continueNumbering": "Continua la numerazione su intervalli discontinui",
"examplesNote": "Esempi: 1-4 per il frontespizio in numeri romani, 15-20 con prefisso A- e valore iniziale 0, oppure pagine dispari con progressione attiva.",
"uploadFirstMessage": "Carica prima un file PDF.",
"applyingLabels": "Applicazione etichette di pagina...",
"invalidRangeMessage": "La regola {{number}} ha un intervallo di pagine non valido: {{range}}",
"allPages": "tutte le pagine",
"emptyOutputMessage": "CoherentPDF ha prodotto un file vuoto.",
"successMessage": "Etichette di pagina aggiunte con successo!",
"processErrorMessage": "Impossibile aggiungere le etichette di pagina.",
"styleOptions": {
"DecimalArabic": "Numeri decimali",
"LowercaseRoman": "Numeri romani minuscoli",
"UppercaseRoman": "Numeri romani maiuscoli",
"LowercaseLetters": "Lettere minuscole",
"UppercaseLetters": "Lettere maiuscole",
"NoLabelPrefixOnly": "Solo prefisso senza numero"
}
},
"batesNumbering": {
"name": "Numerazione Bates",
"subtitle": "Aggiungi numeri Bates sequenziali su uno o più file PDF."