feat: add TIFF conversion options and integrate wasm-vips for image processing

- Updated README.md to include new dependencies: wasm-vips, pixelmatch, diff, and microdiff.
- Added wasm-vips to package.json and package-lock.json for advanced TIFF encoding.
- Enhanced localization files with new options for DPI, compression, color mode, and multi-page TIFF saving.
- Implemented UI changes in pdf-to-tiff.html to allow users to select DPI, compression type, color mode, and multi-page options.
- Refactored pdf-to-tiff-page.ts to utilize wasm-vips for TIFF encoding, replacing previous UTIF implementation.
- Introduced TiffOptions interface in pdf-to-tiff-type.ts for better type management.
- Updated Vite configuration to exclude wasm-vips from dependency optimization.
This commit is contained in:
alam00000
2026-03-24 13:20:50 +05:30
parent b732ee7925
commit 3ca19af354
26 changed files with 507 additions and 101 deletions

View File

@@ -279,7 +279,15 @@
},
"pdfToTiff": {
"name": "PDF إلى TIFF",
"subtitle": "تحويل كل صفحة PDF إلى صورة TIFF."
"subtitle": "تحويل كل صفحة PDF إلى صورة TIFF.",
"dpi": "DPI (الدقة)",
"dpiExplanation": "DPI أعلى = جودة أفضل للطباعة، حجم ملف أكبر",
"compression": "الضغط",
"compressionExplanation": "LZW و Deflate بدون فقدان. CCITT Group 4 هو الأفضل للمستندات الممسوحة ضوئيًا بالأبيض والأسود.",
"colorMode": "وضع الألوان",
"multiPage": "حفظ كملف TIFF متعدد الصفحات (ملف واحد)",
"loadingVips": "جارٍ تحميل معالج الصور...",
"converting": "جارٍ التحويل إلى TIFF..."
},
"pdfToGreyscale": {
"name": "PDF إلى تدرج الرمادي",

View File

@@ -279,7 +279,15 @@
},
"pdfToTiff": {
"name": "PDF у TIFF",
"subtitle": "Канвертаваць кожную старонку PDF у відарыс TIFF."
"subtitle": "Канвертаваць кожную старонку PDF у відарыс TIFF.",
"dpi": "DPI (Разрашэнне)",
"dpiExplanation": "Вышэйшы DPI = лепшая якасць для друку, большы памер файла",
"compression": "Сціск",
"compressionExplanation": "LZW і Deflate — без страт. CCITT Group 4 лепш за ўсё падыходзіць для чорна-белых сканаваных дакументаў.",
"colorMode": "Каляровы рэжым",
"multiPage": "Захаваць як шматстаронкавы TIFF (адзін файл)",
"loadingVips": "Загрузка апрацоўшчыка відарысаў...",
"converting": "Канвертаванне ў TIFF..."
},
"pdfToGreyscale": {
"name": "PDF у градацыі шэрага",

View File

@@ -279,7 +279,15 @@
},
"pdfToTiff": {
"name": "PDF til TIFF",
"subtitle": "Konverter hver PDF-side til en TIFF-billedfil."
"subtitle": "Konverter hver PDF-side til en TIFF-billedfil.",
"dpi": "DPI (Opløsning)",
"dpiExplanation": "Højere DPI = bedre kvalitet til print, større filstørrelse",
"compression": "Komprimering",
"compressionExplanation": "LZW og Deflate er tabsfri. CCITT Group 4 er bedst til sort/hvide skannede dokumenter.",
"colorMode": "Farvetilstand",
"multiPage": "Gem som flersidet TIFF (én fil)",
"loadingVips": "Indlæser billedprocessor...",
"converting": "Konverterer til TIFF..."
},
"pdfToGreyscale": {
"name": "PDF til gråtoner",

View File

@@ -330,17 +330,14 @@
"pdfToTiff": {
"name": "PDF zu TIFF",
"subtitle": "Jede PDF-Seite in ein TIFF-Bild konvertieren.",
"alert": {
"invalidFile": "Ungültige Datei",
"invalidFileExplanation": "Bitte wähle eine PDF Datei aus.",
"noFile": "Keine Datei",
"noFileExplanation": "Bitte lade zuerst eine PDF-Datei hoch.",
"conversionSuccess": "PDF erfolgreich in TIFFs konvertiert!",
"conversionError": "Konvertierung in TIFF fehlgeschlagen. Die Datei könnte beschädigt sein."
},
"loader": {
"converting": "Wird in TIFF konvertiert..."
}
"dpi": "DPI (Auflösung)",
"dpiExplanation": "Höhere DPI = bessere Druckqualität, größere Dateigröße",
"compression": "Komprimierung",
"compressionExplanation": "LZW und Deflate sind verlustfrei. CCITT Group 4 eignet sich am besten für S/W-Scandokumente.",
"colorMode": "Farbmodus",
"multiPage": "Als mehrseitiges TIFF speichern (einzelne Datei)",
"loadingVips": "Bildprozessor wird geladen...",
"converting": "Wird in TIFF konvertiert..."
},
"pdfToGreyscale": {
"name": "PDF zu Graustufen",

View File

@@ -330,6 +330,14 @@
"pdfToTiff": {
"name": "PDF to TIFF",
"subtitle": "Convert each PDF page into a TIFF image.",
"dpi": "DPI (Resolution)",
"dpiExplanation": "Higher DPI = better quality for printing, larger file size",
"compression": "Compression",
"compressionExplanation": "LZW and Deflate are lossless. CCITT Group 4 is best for B&W scanned documents.",
"colorMode": "Color Mode",
"multiPage": "Save as multi-page TIFF (single file)",
"loadingVips": "Loading image processor...",
"converting": "Converting to TIFF...",
"alert": {
"invalidFile": "Invalid File",
"invalidFileExplanation": "Please upload a PDF file.",
@@ -337,9 +345,6 @@
"noFileExplanation": "Please upload a PDF file first.",
"conversionSuccess": "PDF converted to TIFFs successfully!",
"conversionError": "Failed to convert PDF to TIFF. The file might be corrupted."
},
"loader": {
"converting": "Converting to TIFF..."
}
},
"pdfToGreyscale": {

View File

@@ -279,7 +279,15 @@
},
"pdfToTiff": {
"name": "PDF a TIFF",
"subtitle": "Convierte cada página PDF en una imagen TIFF."
"subtitle": "Convierte cada página PDF en una imagen TIFF.",
"dpi": "PPP (Resolución)",
"dpiExplanation": "Mayor PPP = mejor calidad para impresión, mayor tamaño de archivo",
"compression": "Compresión",
"compressionExplanation": "LZW y Deflate son sin pérdida. CCITT Grupo 4 es ideal para documentos escaneados en B/N.",
"colorMode": "Modo de color",
"multiPage": "Guardar como TIFF multipágina (archivo único)",
"loadingVips": "Cargando procesador de imágenes...",
"converting": "Convirtiendo a TIFF..."
},
"pdfToGreyscale": {
"name": "PDF a Escala de Grises",

View File

@@ -279,7 +279,15 @@
},
"pdfToTiff": {
"name": "PDF vers TIFF",
"subtitle": "Convertir chaque page du PDF en image TIFF."
"subtitle": "Convertir chaque page du PDF en image TIFF.",
"dpi": "PPP (Résolution)",
"dpiExplanation": "PPP plus élevé = meilleure qualité pour l'impression, taille de fichier plus grande",
"compression": "Compression",
"compressionExplanation": "LZW et Deflate sont sans perte. CCITT Groupe 4 est idéal pour les documents numérisés en N/B.",
"colorMode": "Mode couleur",
"multiPage": "Enregistrer en TIFF multipage (fichier unique)",
"loadingVips": "Chargement du processeur d'images...",
"converting": "Conversion en TIFF..."
},
"pdfToGreyscale": {
"name": "PDF en niveaux de gris",

View File

@@ -279,7 +279,15 @@
},
"pdfToTiff": {
"name": "PDF ke TIFF",
"subtitle": "Konversi setiap halaman PDF menjadi gambar TIFF."
"subtitle": "Konversi setiap halaman PDF menjadi gambar TIFF.",
"dpi": "DPI (Resolusi)",
"dpiExplanation": "DPI lebih tinggi = kualitas lebih baik untuk cetak, ukuran file lebih besar",
"compression": "Kompresi",
"compressionExplanation": "LZW dan Deflate adalah lossless. CCITT Group 4 paling cocok untuk dokumen pindaian hitam putih.",
"colorMode": "Mode Warna",
"multiPage": "Simpan sebagai TIFF multi-halaman (satu file)",
"loadingVips": "Memuat prosesor gambar...",
"converting": "Mengonversi ke TIFF..."
},
"pdfToGreyscale": {
"name": "PDF ke Skala Abu-abu",

View File

@@ -279,7 +279,15 @@
},
"pdfToTiff": {
"name": "PDF in TIFF",
"subtitle": "Converti ogni pagina del PDF in un'immagine TIFF."
"subtitle": "Converti ogni pagina del PDF in un'immagine TIFF.",
"dpi": "DPI (Risoluzione)",
"dpiExplanation": "DPI più alto = qualità migliore per la stampa, dimensione file maggiore",
"compression": "Compressione",
"compressionExplanation": "LZW e Deflate sono senza perdita. CCITT Group 4 è ideale per documenti scansionati in bianco e nero.",
"colorMode": "Modalità colore",
"multiPage": "Salva come TIFF multipagina (file singolo)",
"loadingVips": "Caricamento processore immagini...",
"converting": "Conversione in TIFF..."
},
"pdfToGreyscale": {
"name": "PDF in Scala di Grigi",

View File

@@ -279,7 +279,15 @@
},
"pdfToTiff": {
"name": "PDF를 TIFF로",
"subtitle": "PDF의 각 페이지를 TIFF 이미지로 변환합니다."
"subtitle": "PDF의 각 페이지를 TIFF 이미지로 변환합니다.",
"dpi": "DPI (해상도)",
"dpiExplanation": "DPI가 높을수록 인쇄 품질이 좋아지지만 파일 크기가 커집니다",
"compression": "압축",
"compressionExplanation": "LZW와 Deflate는 무손실 압축입니다. CCITT Group 4는 흑백 스캔 문서에 가장 적합합니다.",
"colorMode": "색상 모드",
"multiPage": "다중 페이지 TIFF로 저장 (단일 파일)",
"loadingVips": "이미지 프로세서 로드 중...",
"converting": "TIFF로 변환 중..."
},
"pdfToGreyscale": {
"name": "PDF 흑백 변환",

View File

@@ -279,7 +279,15 @@
},
"pdfToTiff": {
"name": "PDF naar TIFF",
"subtitle": "Converteer elke PDF-pagina naar een TIFF-afbeelding."
"subtitle": "Converteer elke PDF-pagina naar een TIFF-afbeelding.",
"dpi": "DPI (Resolutie)",
"dpiExplanation": "Hogere DPI = betere kwaliteit voor afdrukken, groter bestand",
"compression": "Compressie",
"compressionExplanation": "LZW en Deflate zijn verliesvrij. CCITT Groep 4 is het beste voor zwart-wit gescande documenten.",
"colorMode": "Kleurmodus",
"multiPage": "Opslaan als meerpagina-TIFF (één bestand)",
"loadingVips": "Beeldprocessor laden...",
"converting": "Converteren naar TIFF..."
},
"pdfToGreyscale": {
"name": "PDF naar Grijswaarden",

View File

@@ -279,7 +279,15 @@
},
"pdfToTiff": {
"name": "PDF para TIFF",
"subtitle": "Converta cada página do PDF em uma imagem TIFF."
"subtitle": "Converta cada página do PDF em uma imagem TIFF.",
"dpi": "DPI (Resolução)",
"dpiExplanation": "Maior DPI = melhor qualidade para impressão, arquivo maior",
"compression": "Compressão",
"compressionExplanation": "LZW e Deflate são sem perdas. CCITT Grupo 4 é ideal para documentos digitalizados em preto e branco.",
"colorMode": "Modo de Cor",
"multiPage": "Salvar como TIFF de várias páginas (arquivo único)",
"loadingVips": "Carregando processador de imagem...",
"converting": "Convertendo para TIFF..."
},
"pdfToGreyscale": {
"name": "PDF para Tons de Cinza",

View File

@@ -273,7 +273,15 @@
},
"pdfToTiff": {
"name": "PDF в TIFF",
"subtitle": "Преобразовать каждую страницу PDF в изображение TIFF."
"subtitle": "Преобразовать каждую страницу PDF в изображение TIFF.",
"dpi": "DPI (Разрешение)",
"dpiExplanation": "Более высокий DPI = лучшее качество печати, больший размер файла",
"compression": "Сжатие",
"compressionExplanation": "LZW и Deflate — сжатие без потерь. CCITT Group 4 лучше всего подходит для чёрно-белых отсканированных документов.",
"colorMode": "Цветовой режим",
"multiPage": "Сохранить как многостраничный TIFF (один файл)",
"loadingVips": "Загрузка обработчика изображений...",
"converting": "Конвертация в TIFF..."
},
"pdfToGreyscale": {
"name": "Градации серого",

View File

@@ -279,7 +279,15 @@
},
"pdfToTiff": {
"name": "PDF till TIFF",
"subtitle": "Konvertera varje PDF-sida till en TIFF-bild."
"subtitle": "Konvertera varje PDF-sida till en TIFF-bild.",
"dpi": "DPI (Upplösning)",
"dpiExplanation": "Högre DPI = bättre kvalitet för utskrift, större filstorlek",
"compression": "Komprimering",
"compressionExplanation": "LZW och Deflate är förlustfria. CCITT Grupp 4 är bäst för svartvita skannade dokument.",
"colorMode": "Färgläge",
"multiPage": "Spara som flersidig TIFF (en fil)",
"loadingVips": "Laddar bildprocessor...",
"converting": "Konverterar till TIFF..."
},
"pdfToGreyscale": {
"name": "PDF till gråskala",

View File

@@ -279,7 +279,15 @@
},
"pdfToTiff": {
"name": "PDF'den TIFF'e",
"subtitle": "Her PDF sayfasını TIFF görseline dönüştürün."
"subtitle": "Her PDF sayfasını TIFF görseline dönüştürün.",
"dpi": "DPI (Çözünürlük)",
"dpiExplanation": "Daha yüksek DPI = baskı için daha iyi kalite, daha büyük dosya boyutu",
"compression": "Sıkıştırma",
"compressionExplanation": "LZW ve Deflate kayıpsızdır. CCITT Grup 4, siyah beyaz taranmış belgeler için en iyisidir.",
"colorMode": "Renk Modu",
"multiPage": "Çok sayfalı TIFF olarak kaydet (tek dosya)",
"loadingVips": "Görüntü işlemci yükleniyor...",
"converting": "TIFF'e dönüştürülüyor..."
},
"pdfToGreyscale": {
"name": "PDF'yi Gri Tonlamaya Çevir",

View File

@@ -279,7 +279,15 @@
},
"pdfToTiff": {
"name": "PDF sang TIFF",
"subtitle": "Chuyển đổi mỗi trang PDF thành hình ảnh TIFF."
"subtitle": "Chuyển đổi mỗi trang PDF thành hình ảnh TIFF.",
"dpi": "DPI (Độ phân giải)",
"dpiExplanation": "DPI cao hơn = chất lượng in tốt hơn, kích thước tệp lớn hơn",
"compression": "Nén",
"compressionExplanation": "LZW và Deflate là nén không mất dữ liệu. CCITT Nhóm 4 phù hợp nhất cho tài liệu quét đen trắng.",
"colorMode": "Chế độ màu",
"multiPage": "Lưu dưới dạng TIFF nhiều trang (một tệp)",
"loadingVips": "Đang tải bộ xử lý hình ảnh...",
"converting": "Đang chuyển đổi sang TIFF..."
},
"pdfToGreyscale": {
"name": "PDF sang thang xám",

View File

@@ -279,7 +279,15 @@
},
"pdfToTiff": {
"name": "PDF 轉 TIFF",
"subtitle": "將每個 PDF 頁面轉換為 TIFF 圖片。"
"subtitle": "將每個 PDF 頁面轉換為 TIFF 圖片。",
"dpi": "DPI (解析度)",
"dpiExplanation": "DPI 越高 = 列印品質越好,檔案越大",
"compression": "壓縮方式",
"compressionExplanation": "LZW 和 Deflate 為無損壓縮。CCITT Group 4 最適合黑白掃描文件。",
"colorMode": "色彩模式",
"multiPage": "儲存為多頁 TIFF (單一檔案)",
"loadingVips": "正在載入影像處理器...",
"converting": "正在轉換為 TIFF..."
},
"pdfToGreyscale": {
"name": "PDF 轉灰階",

View File

@@ -279,7 +279,15 @@
},
"pdfToTiff": {
"name": "PDF 转 TIFF",
"subtitle": "将每一页 PDF 转换为 TIFF 图片。"
"subtitle": "将每一页 PDF 转换为 TIFF 图片。",
"dpi": "DPI (分辨率)",
"dpiExplanation": "DPI 越高 = 打印质量越好,文件越大",
"compression": "压缩方式",
"compressionExplanation": "LZW 和 Deflate 为无损压缩。CCITT Group 4 最适合黑白扫描文档。",
"colorMode": "色彩模式",
"multiPage": "保存为多页 TIFF (单个文件)",
"loadingVips": "正在加载图像处理器...",
"converting": "正在转换为 TIFF..."
},
"pdfToGreyscale": {
"name": "PDF 转 灰度",