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": "Jämför PDF:er",
"subtitle": "Jämför två PDF:er bredvid varandra."
"subtitle": "Jämför två PDF:er bredvid varandra.",
"firstPdf": "Första PDF",
"secondPdf": "Andra PDF",
"clickOrDrop": "Klicka eller släpp",
"page": "Sida",
"overlay": "Överlägg",
"sideBySide": "Sida vid sida",
"flicker": "Flimmer",
"syncScroll": "Synkronisera rullning",
"export": "Exportera",
"exportAsPdf": "Exportera som PDF",
"splitView": "Delad vy",
"alternating": "Växlande",
"leftDocument": "Vänster dokument",
"rightDocument": "Höger dokument",
"original": "Original",
"modified": "Ändrad",
"searchChanges": "Sök ändringar...",
"deleted": "Borttagen",
"added": "Tillagd",
"prevPage": "Föregående sida",
"nextPage": "Nästa sida",
"prevChange": "Föregående ändring",
"nextChange": "Nästa ändring",
"uploadTwoPdfs": "Ladda upp två PDF:er för att se skillnaderna.",
"noDifferences": "Inga skillnader upptäcktes på denna sida.",
"noMatchingChanges": "Inga ändringar matchar det aktuella filtret.",
"pageNotExist": "Sidan {{page}} finns inte i denna PDF.",
"noPairedPage": "Ingen matchad sida för denna sida.",
"buildingModel": "Bygger sidparningsmodell...",
"indexingPdf": "Indexerar PDF {{num}}, sida {{page}} av {{total}}...",
"loadingComparison": "Läser in jämförelse {{current}} av {{total}}...",
"runningOcr": "Kör OCR på sida {{page}}...",
"preparingExport": "Förbereder PDF-export...",
"renderingPage": "Renderar sida {{current}} av {{total}}...",
"exportError": "Exportfel",
"exportFailed": "Kunde inte exportera jämförelse-PDF.",
"loadingFile": "Läser in {{name}}...",
"invalidFile": "Ogiltig fil",
"invalidFileMsg": "Välj en giltig PDF-fil.",
"loadError": "Kunde inte läsa in PDF. Den kan vara skadad eller lösenordsskyddad."
},
"posterizePdf": {
"name": "Postera PDF",