L'ultima volta che ho usato convert
per tale compito ho specificato esplicitamente la dimensione della destinazione tramite il ridimensionamento:
$ i=150; convert a.png b.png -compress jpeg -quality 70 \
-density ${i}x${i} -units PixelsPerInch \
-resize $((i*827/100))x$((i*1169/100)) \
-repage $((i*827/100))x$((i*1169/100)) multipage.pdf
Il convert
comando non utilizza sempre DPI come unità predefinita di densità / formato pagina, quindi specifichiamo esplicitamente DPI con l' -units
opzione (altrimenti potresti ottenere risultati diversi con versioni / combinazioni di formati di input differenti). La nuova dimensione (specificata tramite -resize
) è la dimensione di una pagina DIN A4 in pixel. L'argomento ridimensionamento specifica la dimensione massima della pagina. La risoluzione e la qualità da scegliere dipendono esattamente dal caso d'uso: ho selezionato 150 DPI e una qualità media per risparmiare un po 'di spazio mentre non sembra male quando stampato su carta.
Si noti che convert
per impostazione predefinita non cambia le proporzioni con l'operazione di ridimensionamento:
Il ridimensionamento adatta l'immagine alla dimensione richiesta. NON riempie, la dimensione della scatola richiesta.
( Manuale ImageMagick )
A seconda della versione di ImageMagick e dei formati di input coinvolti, potrebbe essere opportuno omettere l' -repage
opzione. Ma a volte è necessario e senza quell'opzione l'intestazione PDF potrebbe contenere dimensioni troppo piccole. In ogni caso, -repage
non dovrebbe far male.
I calcoli usano l'aritmetica dei numeri interi poiché bash
supporta solo quello. Con zsh
le espressioni può essere semplificato - cioè sostituito con $((i*8.27))x$((i*11.69))
.
Immagini di Lineart
Se i file PNG sono immagini a due livelli (in bianco e nero aka lineart), lo img2pdf
strumento produce risultati superiori su ImageMagick convert
. Ciò significa che img2pdf
è più veloce e produce PDF più piccoli.
Esempio:
$ img2pdf -o multipage.pdf a.png b.png
o:
$ img2pdf --pagesize A4 -o multipage.pdf a.png b.png
-repage a4
ottengo uninvalid argument for option '-repage': a4