Script bash avanzato per la conversione automatica di file CBZ/CBR in formato PDF con interfaccia grafica Zenity.
DOWNLOAD
- Conversione automatica: Trasforma tutti i file CBZ/CBR in PDF mantenendo la qualità delle immagini
- Interfaccia grafica: Utilizza Zenity per una selezione intuitiva delle directory e feedback visivo
- Elaborazione parallela: Sfrutta GNU Parallel per processare più file contemporaneamente (fino all'80% dei core disponibili)
- Barra di progresso: Visualizzazione in tempo reale dello stato di conversione
- Validazione estensioni: Controlla e corregge automaticamente le estensioni errate basandosi sui magic bytes
- Test di integrità: Verifica l'integrità dei file CBZ prima dell'estrazione
- Supporto multi-formato RAR: Tenta l'estrazione con rar, unar, unrar e 7z in sequenza
- Riparazione automatica: Utilizza
rar rper tentare di riparare archivi CBR corrotti - Skip intelligente: Salta automaticamente i file già convertiti
- Logging selettivo: Registra solo gli errori critici per facilitare il debugging
- Pulizia automatica: Rimuove file temporanei e metadati macOS
sudo apt install imagemagick img2pdf pdftk unzip zenity coreutils parallelinstallare Winrar per Linux https://www.win-rar.com/rar-linux-mac.html
wget https://www.win-rar.com/fileadmin/winrar-versions/rarlinux-x64-712.tar.gz
tar -xvf rarlinux-x64-712.tar.gz
cd rar/
sudo cp rar unrar /usr/local/bin
# Opzione 1: rar (consigliato per riparazione)
sudo apt install rar
# Opzione 2: unar
sudo apt install unar
# Opzione 3: unrar
sudo apt install unrar
# Opzione 4: p7zip
sudo apt install p7zip-full- Rendi eseguibile lo script:
chmod +x advanced-comics-converter.sh- Esegui lo script:
./advanced-comics-converter.sh-
Seleziona la directory contenente i file CBZ/CBR dalla finestra di dialogo
-
Attendi il completamento della conversione visualizzando la barra di progresso
- I file PDF vengono creati nella stessa directory dei file originali
- Nome file:
[nome_originale].pdf - Log errori:
comics_converter_errors.lognella directory corrente
oppure il pacchetto deb
sudo dpkg -i advanced-comics-converter_2.0.0_all.deb
- Selezione directory: Interfaccia Zenity per la scelta della cartella
- Verifica dipendenze: Controllo automatico di tutti gli strumenti richiesti
- Scansione file: Ricerca ricorsiva di tutti i file .cbz e .cbr
- Validazione estensioni: Controllo dei magic bytes e correzione se necessario
- Filtro skip: Esclusione dei file già convertiti (PDF esistente)
- Estrazione parallela: Elaborazione simultanea con GNU Parallel
- Conversione immagini: Normalizzazione in formato JPG
- Creazione PDF: Generazione di PDF individuali per pagina
- Merge finale: Unione di tutte le pagine in un unico PDF
- Pulizia: Rimozione di file temporanei e directory di lavoro
- ZIP (CBZ):
50 4B 03 04,50 4B 05 06,50 4B 07 08 - RAR4 (CBR):
52 61 72 21 - RAR5 (CBR):
06 00 00 00 52 61 72 21 1A 07 01 00
Lo script tenta l'estrazione in questo ordine:
- rar con riparazione (
rar r -y) - consigliato - unar - estrazione e spostamento immagini
- unrar - estrazione diretta
- 7z - fallback finale
Il file comics_converter_errors.log contiene:
- Timestamp di esecuzione
- Directory selezionata
- Errori di estrazione
- Errori di conversione
- Errori di merge PDF
- Statistiche finali
Esempio di log:
====================================================================
Log Errori - Mar 10 Dic 2024 15:30:45 CET
====================================================================
Directory selezionata: /home/user/fumetti
ERROR: ZIP extraction failed for /home/user/fumetti/corrupted.cbz
SUCCESS: /home/user/fumetti/spiderman_001.cbz converted 24 pages
====================================================================
Summary:
Converted files: 15
Skipped files: 3
Failed files: 1
====================================================================
./advanced-comics-converter.sh
# Seleziona la directory principale della collezione
# Lo script processerà ricorsivamente tutte le sottodirectoryLo script skippa automaticamente i file già convertiti. Per riconvertire:
- Elimina i PDF falliti
- Riesegui lo script sulla stessa directory
Lo script tenta automaticamente la riparazione dei CBR con rar r. Se fallisce:
- Controlla il log per identificare il file
- Prova manualmente:
rar r -y file.cbr - Riconverti il file riparato
- Formati supportati: Solo CBZ (ZIP) e CBR (RAR/RAR5)
- Immagini: Conversione forzata a JPG per compatibilità
- Memoria: L'elaborazione parallela richiede RAM proporzionale al numero di core
- Spazio disco: Richiede spazio temporaneo pari a ~2x la dimensione del file più grande
Installa le dipendenze mancanti:
sudo apt install [comando-mancante]Installa almeno uno strumento RAR:
sudo apt install rarVerifica i permessi della directory:
chmod +rx /path/to/directory- Verifica quale strumento RAR è installato
- Testa manualmente l'estrazione:
rar t file.cbr # test integrità
unar -t file.cbr # test con unarVerifica che X11 sia disponibile:
echo $DISPLAYRiduci il parallelismo modificando lo script:
parallel -j 50% # invece di 80%Linea 338:
printf "%s\n" "${FILES_TO_PROCESS[@]}" | parallel -j 80% 'Cambia 80% con:
50%per sistemi con poca RAM100%per sistemi potenti4per un numero fisso di job
Linea 180:
convert "$img" -quality 85 "$TEMPNAME" 2>/dev/nullAggiungi -quality [1-100] per controllare la compressione
Rimuovi tutti i 2>/dev/null e >/dev/null 2>&1 per vedere l'output completo
Script rilasciato come software libero. Utilizzabile, modificabile e distribuibile liberamente.
Franco Conidi aka Edmond - SysLinuxOS System Integrator, Network Engineer, IT Consultant Blogger Linux Developer https://francoconidi.it https://syslinuxos.com
Versione attuale: 2.0.0 (vedi CHANGELOG.md per dettagli)
Note: Questo script è ottimizzato per sistemi Linux/Unix. Per Windows, considera l'uso di WSL (Windows Subsystem for Linux).
Advanced bash script for automatic conversion of CBZ/CBR files to PDF format with Zenity graphical interface.
DOWNLOAD
- Automatic conversion: Transforms all CBZ/CBR files to PDF while maintaining image quality
- Graphical interface: Uses Zenity for intuitive directory selection and visual feedback
- Parallel processing: Leverages GNU Parallel to process multiple files simultaneously (up to 80% of available cores)
- Progress bar: Real-time visualization of conversion status
- Extension validation: Automatically checks and corrects wrong extensions based on magic bytes
- Integrity testing: Verifies CBZ file integrity before extraction
- Multi-format RAR support: Attempts extraction with rar, unar, unrar, and 7z sequentially
- Automatic repair: Uses
rar rto attempt repairing corrupted CBR archives - Smart skip: Automatically skips already converted files
- Selective logging: Records only critical errors for easier debugging
- Automatic cleanup: Removes temporary files and macOS metadata
sudo apt install imagemagick img2pdf pdftk unzip zenity coreutils parallelInstall Winrar for Linux https://www.win-rar.com/rar-linux-mac.html
wget https://www.win-rar.com/fileadmin/winrar-versions/rarlinux-x64-712.tar.gz
tar -xvf rarlinux-x64-712.tar.gz
cd rar/
sudo cp rar unrar /usr/local/bin
# Option 1: rar (recommended for repair)
sudo apt install rar
# Option 2: unar
sudo apt install unar
# Option 3: unrar
sudo apt install unrar
# Option 4: p7zip
sudo apt install p7zip-full- Make the script executable:
chmod +x advanced-comics-converter.sh- Run the script:
./advanced-comics-converter.sh-
Select the directory containing CBZ/CBR files from the dialog window
-
Wait for conversion to complete while viewing the progress bar
Or using deb package
sudo dpkg -i advanced-comics-converter_2.0.0_all.deb
- PDF files are created in the same directory as the original files
- File name:
[original_name].pdf - Error log:
comics_converter_errors.login the current directory
- Directory selection: Zenity interface for folder selection
- Dependencies check: Automatic verification of all required tools
- File scanning: Recursive search for all .cbz and .cbr files
- Extension validation: Magic bytes checking and correction if necessary
- Skip filter: Exclusion of already converted files (existing PDF)
- Parallel extraction: Simultaneous processing with GNU Parallel
- Image conversion: Normalization to JPG format
- PDF creation: Generation of individual PDFs per page
- Final merge: Merging all pages into a single PDF
- Cleanup: Removal of temporary files and working directories
- ZIP (CBZ):
50 4B 03 04,50 4B 05 06,50 4B 07 08 - RAR4 (CBR):
52 61 72 21 - RAR5 (CBR):
06 00 00 00 52 61 72 21 1A 07 01 00
The script attempts extraction in this order:
- rar with repair (
rar r -y) - recommended - unar - extraction and image moving
- unrar - direct extraction
- 7z - final fallback
The comics_converter_errors.log file contains:
- Execution timestamp
- Selected directory
- Extraction errors
- Conversion errors
- PDF merge errors
- Final statistics
Example log:
====================================================================
Log Errori - Tue Dec 10 15:30:45 CET 2024
====================================================================
Directory selezionata: /home/user/comics
ERROR: ZIP extraction failed for /home/user/comics/corrupted.cbz
SUCCESS: /home/user/comics/spiderman_001.cbz converted 24 pages
====================================================================
Summary:
Converted files: 15
Skipped files: 3
Failed files: 1
====================================================================
./advanced-comics-converter.sh
# Select the main collection directory
# The script will recursively process all subdirectoriesThe script automatically skips already converted files. To reconvert:
- Delete failed PDFs
- Re-run the script on the same directory
The script automatically attempts CBR repair with rar r. If it fails:
- Check the log to identify the file
- Try manually:
rar r -y file.cbr - Reconvert the repaired file
- Supported formats: Only CBZ (ZIP) and CBR (RAR/RAR5)
- Images: Forced conversion to JPG for compatibility
- Memory: Parallel processing requires RAM proportional to the number of cores
- Disk space: Requires temporary space equal to ~2x the size of the largest file
Install missing dependencies:
sudo apt install [missing-command]Install at least one RAR tool:
sudo apt install rarCheck directory permissions:
chmod +rx /path/to/directory- Check which RAR tool is installed
- Test extraction manually:
rar t file.cbr # integrity test
unar -t file.cbr # test with unarVerify X11 is available:
echo $DISPLAYReduce parallelism by modifying the script:
parallel -j 50% # instead of 80%Line 338:
printf "%s\n" "${FILES_TO_PROCESS[@]}" | parallel -j 80% 'Change 80% to:
50%for systems with low RAM100%for powerful systems4for a fixed number of jobs
Line 180:
convert "$img" -quality 85 "$TEMPNAME" 2>/dev/nullAdd -quality [1-100] to control compression
Remove all 2>/dev/null and >/dev/null 2>&1 to see complete output
Script released as free software. Freely usable, modifiable, and distributable.
Franco Conidi aka Edmond - SysLinuxOS System Integrator, Network Engineer, IT Consultant Blogger Linux Developer https://francoconidi.it https://syslinuxos.com
Current version: 2.0.0 (see CHANGELOG.md for details)
Note: This script is optimized for Linux/Unix systems.
