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": "Bandingkan PDF",
"subtitle": "Bandingkan dua PDF berdampingan."
"subtitle": "Bandingkan dua PDF berdampingan.",
"firstPdf": "PDF pertama",
"secondPdf": "PDF kedua",
"clickOrDrop": "Klik atau letakkan",
"page": "Halaman",
"overlay": "Hamparan",
"sideBySide": "Berdampingan",
"flicker": "Kedip",
"syncScroll": "Sinkronkan gulir",
"export": "Ekspor",
"exportAsPdf": "Ekspor sebagai PDF",
"splitView": "Tampilan terbagi",
"alternating": "Bergantian",
"leftDocument": "Dokumen kiri",
"rightDocument": "Dokumen kanan",
"original": "Asli",
"modified": "Diubah",
"searchChanges": "Cari perubahan...",
"deleted": "Dihapus",
"added": "Ditambahkan",
"prevPage": "Halaman sebelumnya",
"nextPage": "Halaman berikutnya",
"prevChange": "Perubahan sebelumnya",
"nextChange": "Perubahan berikutnya",
"uploadTwoPdfs": "Unggah dua PDF untuk melihat perbedaannya.",
"noDifferences": "Tidak ada perbedaan yang terdeteksi pada halaman ini.",
"noMatchingChanges": "Tidak ada perubahan yang cocok dengan filter saat ini.",
"pageNotExist": "Halaman {{page}} tidak ada di PDF ini.",
"noPairedPage": "Tidak ada halaman pasangan untuk sisi ini.",
"buildingModel": "Membangun model pemasangan halaman...",
"indexingPdf": "Mengindeks PDF {{num}} halaman {{page}} dari {{total}}...",
"loadingComparison": "Memuat perbandingan {{current}} dari {{total}}...",
"runningOcr": "Menjalankan OCR pada halaman {{page}}...",
"preparingExport": "Menyiapkan ekspor PDF...",
"renderingPage": "Merender halaman {{current}} dari {{total}}...",
"exportError": "Kesalahan ekspor",
"exportFailed": "Tidak dapat mengekspor PDF perbandingan.",
"loadingFile": "Memuat {{name}}...",
"invalidFile": "File tidak valid",
"invalidFileMsg": "Silakan pilih file PDF yang valid.",
"loadError": "Tidak dapat memuat PDF. Mungkin rusak atau dilindungi kata sandi."
},
"posterizePdf": {
"name": "Posterisasi PDF",