Manipulación de PDFs e imagenes en linea de comandos

De Recursos Educativos
Ir a la navegación Ir a la búsqueda

Crear un jpg con la primera pagina:

gs -q -sDEVICE=jpeg -dBATCH -dNOPAUSE -dFirstPage=1 -dLastPage=1 -r300 -sOutputFile=test.jpg test.pdf

Extraer una imagen, de la primera pagina, (por ejemplo la portada):

pdfimages -f 1 -l 1 -j fichero.pdf pgs

Secuencia de comandos para partiendo de un libro que estaba escaneado, con una imagen por página, pero con 2 paginas reales por imagen y muchos bordes blancos, hacer un PDF mejor, con una página real por pagina PDF y sin bordes blancos:

# Extraer todas las imágenes
pdfimages -j fichero.pdf pgs
# rotarlas 90 a la izq
for f in ???.jpg ; do echo "$f" ; convert "$f" -rotate 270 "${f%.jpg}_r.jpg" ; done
# Cortar las imágenes por la mitad, supongamos que la imagen es de 1200x500
for f in pgs-???.ppm ; do convert "$f"  -crop 600x500! "${f.%.ppm}.%d.ppm"; done
# Cortarlas en 2 veces
for f in ???_r.jpg ; do echo $f ; convert "$f" -crop 1330x2340+0+200\! "${f%.jpg}_r_c1.jpg"; convert "$f" -crop 1330x2340+1330+200\! "${f%.jpg}_r_c2.jpg" ; done
# Quitar los bordes blancos
for f in pgs-???.pbm.[01].jpg ; do  convert "$f"  +repage -fuzz "99%" -trim "$f.trim.jpg"; done
# Recrear el PDF a partir de las imágenes nuevas:
convert pgs-???.ppm.?.ppm fichero.pdf

Crear un PDF a partir de imágenes convirtiendo el tamaño (como mucho de X de alto o de Y de ancho, respetando el aspecto)

convert * -resize XxY fichero.pdf

Ponerle metadata (XMP) para que el e-reader lo muestre:

# extraer metadata a fichero
pdftk f1.pdf dump_data output metadata.txt
# Editar metadata.txt a gusto del consumidor (se pueden añadir campos nuevos)
pdftk f1.pdf update_info metadata.txt output f2.pdf

Un método mejor que no requiere archivo intermedio y edición manual:

exiftool -Title="This is my title" -Author="Cobarde Anonimo" my.pdf