Script Python: Convertir los archivos png de un directorio en un único archivo pdf.
El siguiente script en python realiza las siguientes tareas:- Obtener una lista de los ficheros .png del directorio donde se ejecuta el script.
- Convertir cada fichero .png de la lista obtenida, en pdf usando el comando convert
- Convierte todos los pdf en un único fichero pdf usando el comando pdftk
Nota:
Los nombres de los pdf que se crean son extraídos de los nombres de los fichero png.
Y deben de estar instalado los programas ImageMagick y pdftk
El Script:
#!/usr/bin/env python
# -*- coding: utf-8
import os,sys
#Variable para la ruta al directorio
path = '.'
#Lista vacia para incluir los ficheros
lstFiles = []
#Lista con todos los ficheros del directorio:
lstDir = os.walk(path) #os.walk()Lista directorios y ficheros
#Crea una lista de los ficheros png que existen en el directorio y los incluye a la lista.
for root, dirs, files in lstDir:
for fichero in files:
(nombreFichero, extension) = os.path.splitext(fichero)
if(extension == ".png"):
lstFiles.append(nombreFichero+extension)
#print (nombreFichero+extension)
print(lstFiles)
print ('Listado Finalizado')
print "longitud de la lista = ", len(lstFiles)
nombrepdf=lstFiles[1]
nombrepdf=nombrepdf[0:7]
#2º Parte: convierte cada png de la lista en pdf
for i in lstFiles:
comando="convert "+i+" "+i[0:12]+".pdf"
salida=os.system(comando)
#3º convierto en un unico pdf, todos los pdf generados
salida=os.system("pdftk *.pdf cat output "+ nombrepdf+".pdf")
print ("Convertido todos los .png a un unico .pdf: "+ nombrepdf+".pdf")
#Nota: 26/04/2018
#He añadido un par de lineas más para eliminar los ficheros auxiliares .pdf que crea el script. Asi solo quedaria un unico pdf unificado.
#borrado de pdf auxiliares...
for i in lstFiles:
comando=i[0:12]+".pdf"
salida=os.remove(comando)
ref:
http://www.mclibre.org/consultar/python/lecciones/python-listas.html
http://python-para-impacientes.blogspot.com.es/2014/02/ejecutar-un-comando-externo.html
https://nideaderedes.urlansoft.com/2013/12/19/existe-substring-substr-o-algo-similar-en-python/