Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # -*- coding: iso-8859-1 -*-
- ''' comprimepdf.py script para recorrer recursivamente
- un arbol de directorios y comprimir todos los archivos pdf
- en una carpeta Comprimidos creada en cada uno de los directorios
- que contengan estos archivos. CON ERRORES'''
- import os
- import sys
- import ghostscript
- from stat import *
- def RecorreDirectorios(DirSuperior, callback):
- ''' Recorre los directorios de manera recursiva,
- ejecutando el codigo de la funcion callback por cada archivo encontrado '''
- for Archivo in os.listdir(DirSuperior):
- ruta = os.path.join(DirSuperior, Archivo)
- tipo = os.stat(ruta)[ST_MODE]
- if S_ISDIR(tipo):
- # Es un directorio, valida si contiene PDF
- RecorreDirectorios(ruta, callback)
- elif S_ISREG(tipo):
- # Es un archivo, valida si es PDF
- if Archivo.endswith(".pdf") or Archivo.endswith(".PDF"):
- # Es PDF, llama a la rutina callback
- callback(ruta,Archivo,DirSuperior)
- else:
- # tipo desconocido, muestra un msg
- print 'No se reconce el tipo: %s' % ruta
- def Comprime(ruta, Archivo, DirSuperior):
- '''evalΓΊa si existe la carpera Comprimidos
- y guarda el PDF ya compreso en dicha carpeta'''
- # Establece la ruta de la carpeta Comprimidos
- rutaComprimidos='%s/Comprimidos' % DirSuperior
- if "./" in rutaComprimidos:
- # Elimina los ./ al inicio de rutaComprimidos
- rutaComprimidos = rutaComprimidos.replace("./","")
- print "Nueva RutaComprimidos: %s" % rutaComprimidos
- if not os.path.isdir(rutaComprimidos):
- # No existe la carpeta Comprimidos. Crear
- print "mkdir %s" % rutaComprimidos
- os.mkdir(rutaComprimidos)
- # genera la ruta del archivo fuente, como parametro para gs
- if DirSuperior ==".":
- # Cuando el archivo estΓ‘ en el directorio raiz (relativo al .py)
- # establece el origen como el mismo nombre
- fuente = '"%s"' % Archivo
- else:
- # Crea la ruta, sin los ./ que tenga DirSuperior
- fuente = '%s/"%s"' % (DirSuperior.replace("./",""), Archivo)
- print "fuente con espacios %s" % fuente
- fuente = fuente.replace(" ", "\ ")
- destino = '%s/"%s"' % (rutaComprimidos, Archivo)
- print "Destino con espacios: %s" % destino
- destino = destino.replace(" ", "\ ")
- #fuente = '"%s"' % fuente
- #destino = '"%s"' % destino
- print "Archivo fuente %s" % fuente
- print "Archivo Destino: %s" % destino
- # Llama a GS para comprimir el PDF en rutaComprimidos
- print 'Comprimir ' , fuente , ' en ' , destino
- #gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH -sOutputFile=destino.pdf fuente.pdf
- args = [
- "ps2pdf",
- "-sDEVICE=pdfwrite",
- "-dCompatibilityLevel=1.4",
- "-dPDFSETTINGS=/screen",
- "-dNOPAUSE",
- "-dBATCH",
- "-sOutputFile=%s %s" % (destino, fuente)
- ]
- print args
- ghostscript.Ghostscript(*args)
- if __name__ == '__main__':
- RecorreDirectorios('.', Comprime)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement