feat: enhance PDF comparison with new change types and zoom functionality

- Added support for 'moved' and 'style-changed' change types in PDF comparison.
- Implemented category filters for changes, allowing users to filter by text, images, headers, annotations, formatting, and background.
- Introduced zoom functionality with buttons for zooming in, out, and resetting to default.
- Updated UI to reflect new change types and categories, including visual indicators for moved and style-changed items.
- Enhanced summary display to include counts for moved and style-changed changes.
- Refactored rendering logic to accommodate zoom levels and improve performance.
- Added tests for new change detection features and category assignments.
This commit is contained in:
alam00000
2026-03-10 13:47:46 +05:30
parent 89d7cd8e3d
commit 5232102ac0
31 changed files with 2503 additions and 183 deletions

View File

@@ -292,7 +292,47 @@
},
"comparePdfs": {
"name": "Sammenlign PDFer",
"subtitle": "Sammenlign to PDFer side om side."
"subtitle": "Sammenlign to PDFer side om side.",
"firstPdf": "Første PDF",
"secondPdf": "Anden PDF",
"clickOrDrop": "Klik eller slip",
"page": "Side",
"overlay": "Overlejring",
"sideBySide": "Side om side",
"flicker": "Blink",
"syncScroll": "Synkroniser rulning",
"export": "Eksportér",
"exportAsPdf": "Eksportér som PDF",
"splitView": "Opdelt visning",
"alternating": "Skiftevis",
"leftDocument": "Venstre dokument",
"rightDocument": "Højre dokument",
"original": "Original",
"modified": "Ændret",
"searchChanges": "Søg ændringer...",
"deleted": "Slettet",
"added": "Tilføjet",
"prevPage": "Forrige side",
"nextPage": "Næste side",
"prevChange": "Forrige ændring",
"nextChange": "Næste ændring",
"uploadTwoPdfs": "Upload to PDFer for at se forskellene.",
"noDifferences": "Ingen forskelle fundet på denne side.",
"noMatchingChanges": "Ingen ændringer matcher det aktuelle filter.",
"pageNotExist": "Side {{page}} findes ikke i denne PDF.",
"noPairedPage": "Ingen parret side for denne side.",
"buildingModel": "Opbygger sideparringsmodel...",
"indexingPdf": "Indekserer PDF {{num}}, side {{page}} af {{total}}...",
"loadingComparison": "Indlæser sammenligning {{current}} af {{total}}...",
"runningOcr": "Kører OCR på side {{page}}...",
"preparingExport": "Forbereder PDF-eksport...",
"renderingPage": "Renderer side {{current}} af {{total}}...",
"exportError": "Eksportfejl",
"exportFailed": "Kunne ikke eksportere sammenlignings-PDF.",
"loadingFile": "Indlæser {{name}}...",
"invalidFile": "Ugyldig fil",
"invalidFileMsg": "Vælg venligst en gyldig PDF-fil.",
"loadError": "Kunne ikke indlæse PDF. Den kan være beskadiget eller beskyttet med adgangskode."
},
"posterizePdf": {
"name": "Posterisér PDF",