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": "Seitenzahlen",
"subtitle": "Seitenzahlen in Ihr Dokument einfügen."
},
"addPageLabels": {
"name": "Seitenbeschriftungen hinzufügen",
"subtitle": "PDF-Seitenbeschriftungen mit römischen Zahlen, Präfixen und benutzerdefinierten Startwerten anwenden.",
"uploadHint": "PDF-Datei",
"howLabelsWorkTitle": "So funktionieren Seitenbeschriftungen",
"howLabelsWorkStep1": "Lassen Sie den Seitenbereich leer, um alle Seiten zu beschriften.",
"howLabelsWorkStep2": "Verwenden Sie Stile wie römische Zahlen für Vorspannseiten und Dezimalzahlen für den Hauptteil.",
"howLabelsWorkStep3": "Verwenden Sie ein Präfix mit dem Startwert 0, um Beschriftungen wie A-0, A-1, A-2 zu erzeugen.",
"howLabelsWorkStep4": "Aktivieren Sie die fortlaufende Nummerierung, wenn eine Regel einen nicht zusammenhängenden Bereich wie 1-9,30-40 oder ungerade Seiten verwendet.",
"labelRulesTitle": "Beschriftungsregeln",
"addRule": "Regel hinzufügen",
"removeExistingLabels": "Vor dem Anwenden dieser Regeln vorhandene Seitenbeschriftungen entfernen",
"cpdfNote": "Dieses Werkzeug verwendet CoherentPDF in Ihrem Browser. Wenn CoherentPDF nicht konfiguriert ist, werden Sie aufgefordert, es in den WASM-Einstellungen einzurichten.",
"processButton": "Seitenbeschriftungen hinzufügen",
"howItWorksUploadTitle": "Datei hochladen",
"howItWorksUploadDescription": "Wählen Sie die PDF-Datei aus, die Sie neu beschriften möchten.",
"howItWorksDefineTitle": "Regeln festlegen",
"howItWorksDefineDescription": "Legen Sie eine oder mehrere Regeln für Seitenbeschriftungen mit Seitenbereichen, Stilen, Präfixen und Startwerten fest.",
"howItWorksDownloadTitle": "Herunterladen",
"howItWorksDownloadDescription": "Speichern Sie die aktualisierte PDF mit ihren neuen Seitenbeschriftungen.",
"relatedToolsTitle": "Verwandte PDF-Werkzeuge",
"faqWhatIsQuestion": "Was ist eine Seitenbeschriftung?",
"faqWhatIsAnswer": "Eine Seitenbeschriftung ist die Nummerierung, die PDF-Reader in Miniaturansichten, der Seitennavigation und Druckdialogen anzeigen. Sie druckt keinen neuen Text auf die Seite selbst.",
"faqMixQuestion": "Kann ich römische Ziffern und normale Zahlen mischen?",
"faqMixAnswer": "Ja. Fügen Sie mehrere Regeln hinzu, zum Beispiel 1-4 mit LowercaseRoman und 5-20 mit DecimalArabic.",
"faqPrivacyQuestion": "Bleiben meine Dateien privat?",
"faqPrivacyAnswer": "Ja. Die Verarbeitung erfolgt in Ihrem Browser mit CoherentPDF WASM. Ihre PDF verlässt Ihr Gerät nicht.",
"invalidFileTitle": "Ungültige Datei",
"invalidFileMessage": "Bitte laden Sie eine gültige PDF-Datei hoch.",
"loadingPdf": "PDF wird geladen...",
"protectedPdfTitle": "Geschützte PDF",
"protectedPdfMessage": "Diese PDF ist passwortgeschützt. Bitte verwenden Sie zuerst das Werkzeug Entschlüsseln oder Berechtigungen ändern.",
"loadErrorMessage": "Die PDF-Datei konnte nicht geladen werden. Die Datei ist möglicherweise ungültig, beschädigt oder passwortgeschützt.",
"fileMeta": "{{size}} • {{count}} Seiten",
"ruleTitle": "Beschriftungsregel {{number}}",
"pageRangeLabel": "Seitenbereich",
"pageRangePlaceholder": "Alle Seiten oder z. B. 1-4, 7, ungerade",
"labelStyleLabel": "Beschriftungsstil",
"labelPrefixLabel": "Beschriftungspräfix",
"labelPrefixPlaceholder": "Optionales Präfix, z. B. A-",
"startValueLabel": "Startwert",
"continueNumbering": "Nummerierung über nicht zusammenhängende Bereiche hinweg fortsetzen",
"examplesNote": "Beispiele: 1-4 für römisch nummerierte Vorspannseiten, 15-20 mit Präfix A- und Startwert 0 oder ungerade Seiten mit aktivierter Fortsetzung.",
"uploadFirstMessage": "Bitte laden Sie zuerst eine PDF-Datei hoch.",
"applyingLabels": "Seitenbeschriftungen werden angewendet...",
"invalidRangeMessage": "Regel {{number}} hat einen ungültigen Seitenbereich: {{range}}",
"allPages": "alle Seiten",
"emptyOutputMessage": "CoherentPDF hat eine leere Datei erzeugt.",
"successMessage": "Seitenbeschriftungen wurden erfolgreich hinzugefügt!",
"processErrorMessage": "Seitenbeschriftungen konnten nicht hinzugefügt werden.",
"styleOptions": {
"DecimalArabic": "Dezimalzahlen",
"LowercaseRoman": "Kleine römische Zahlen",
"UppercaseRoman": "Große römische Zahlen",
"LowercaseLetters": "Kleinbuchstaben",
"UppercaseLetters": "Großbuchstaben",
"NoLabelPrefixOnly": "Nur Präfix ohne Nummer"
}
},
"batesNumbering": {
"name": "Bates-Nummerierung",
"subtitle": "Fortlaufende Bates-Nummern über eine oder mehrere PDF-Dateien hinzufügen."