lunes, 1 de octubre de 2012

Script de Nautilus o Caja para quitar la contraseña de uno o varios PDF

Aviso: Este método no crackea la contraseña, debes conocerla ya. Pero es útil para dejar un PDF limpio de protecciones de manera rápida y cómoda, con apenas dos clicks encima del archivo. Si utilizas este script con un PDF sin contraseña, lo dejará igual, le digas la contraseña que le digas.

Lo primero: Nautilus es el explorador de archivos de Gnome y Caja es el explorador de archivos de Mate, un fork de Gnome 2 que utiliza, sobre todo, la distribución Linux Mint.

Los requisitos para poder utilizar este script son simplemente instalar

  • zenity (pequeño programa para generar ventanas con información/entrada de texto/etc. en GTK, suele venir preinstalado con Gnome o Mate)
  • qpdf (programa editor de PDF, es capaz de encriptar, desencriptar, y más cosas)

mediante la manera habitual de instalar paquetes de tu distribución (sudo apt-get install zenity qpdf por ejemplo, en Debian/Ubuntu/Linux Mint, etc).


Si utilizas Nautilus, debes guardar el script en la carpeta /home/tuusuario/.gnome2/nautilus-scripts y si utilizas Caja en la carpeta /home/tuusuario/.config/caja/scripts 

Este es el script que he hecho. Cambia la parte en rojo por $NAUTILUS_SCRIPT_SELECTED_URIS en caso de utilizar Nautilus en vez de Caja, el resto del script es exactamente igual.
#!/bin/bash
# Quitar la contraseña de un PDF si ya la conocemos

for archivo in $CAJA_SCRIPT_SELECTED_URIS; do
archivo=$(echo $archivo | cut -c 8-)
archivo=$(printf "${archivo//%/\\x}")
nombre=$(echo ${archivo##*/})
error=algo  # Vale, esto es poco ortodoxo, pero funciona
while [ "$error" != "" ]; do
if [ $(echo $archivo | tail -c 4) == "pdf" ]; then
input=$(zenity --text "Se eliminará la contraseña de $nombre\n\n¿Cuál es su contraseña actual?" --entry)
retval=$?
case $retval in
0)
error=`qpdf --password=$input --decrypt "$archivo" "$archivo.o" 2>&1 && mv -f "$archivo.o" "$archivo"`
echo $error
if [ "$error" != "" ] ; then zenity --text "Contraseña incorrecta." --info; fi
;;
1)
error=""
;;
esac;
else
zenity --text "El archivo $nombre no es un pdf." --info
error="";
fi
done
done

Lo copiamos y pegamos en un archivo llamado, por ejemplo, "Eliminar contraseña PDF" en el directorio de scripts que os he dicho antes y le damos permisos de ejecución. Se puede hacer dando a propiedades en el menú del botón derecho -> Permisos -> Permitir ejecutar el archivo como un programa, o bien abriendo una consola en dicha carpeta y escribiendo:
$ chmod +x Eliminar\ contraseña\ PDF

Una vez hecho todo esto, nos vamos a donde tengamos los PDF a los que queremos quitar la contraseña y los seleccionamos (se pueden seleccionar varios a la vez). Abrimos el menú con el botón derecho y seleccionamos Scripts -> Eliminar Contraseña PDF.


El script nos irá preguntando la contraseña de cada uno de ellos y, si ponemos la correcta, se la quitará. Ojo: El PDF original con contraseña desaparece, es sustituido con la versión limpia.

Captura del efecto:


Espero que a alguien le sea tan útil como a mí, buenas noches.






2 comentarios:

  1. ammm no esncontre lo que buscaba pero si me sisrvio la informacion mas bien me fue de ayuda

    ResponderEliminar
  2. ammm no esncontre lo que buscaba pero si me sisrvio la informacion mas bien me fue de ayuda

    ResponderEliminar

Si te ha sido útil, por favor, comenta, me haces ver que lo que pongo aquí sirve para algo, un saludo :)