Desbloquear archivo PDF en Linux

Buscando por la red una forma de desbloquear archivos PDF que a veces no dejan que se copie texto o se imprima el documento, encontré esta página en donde encontré la solución a mi problema, la cual es la que describo a continuación.

Existe un programa llamado Freeware PDF Unlocker que como su nombre lo dice, sirve para desbloquear archivos en formato PDF que tengan protección contra copia. El programa originalmente funciona en Windows XP/Vista por lo que recuerdo, funciona mediante un ícono en el escritorio en el que hay que arrastrar y soltar con el ratón el archivo PDF protegido y genera uno sin la protección, lo que hace es ejecutar Ghostscript en un archivo de procesamiento por lotes.

Ghostscript es el programa intérprete por excelencia de documentos en formato PS (y también PDF). Permite presentar datos PS y PDF en la pantalla y además traducirlos de manera que puedan ser impresos en una impresora con capacidad gráfica mediante el uso del controlador de dicha impresora.

Aladdin Enterprises mantiene las nuevas versiones de Ghostscript hasta que alcanzan una cierta “edad”, y luego las libera a la Fundación de Software Libre (FSF, Free Software Foundation) para que se distribuya como GNU Ghostscript. Estas versiones son las que se distribuyen “libres de cargo” en las distribuciones de Linux.

Dispone de una serie de dispositivos controladores para diversos tipos de impresora. Si en la línea de comandos del sistema operativo invocamos gs -h, nos aparecerá gran cantidad de información sobre la versión instalada de Ghostscript del ordenador que utilizamos, entre la que encontraremos los dispositivos controladores.

Dado que Ghostscript se encuentra disponible en linux, se puede modificar el script para que funcione en ésta plataforma, primero que nada hay que asegurarse de que se tiene Ghostscript instalado en el sistema, para ArchLinux se hace:

# pacman -Ss ghostscript

Y en mi caso obtengo:

extra/ghostscript 9.04-5 [instalado]
An interpreter for the PostScript language
extra/gsfonts 1.0.7pre44-2 [instalado]
Ghostscript standard Type1 fonts from URW

Como se puede ver ya lo tengo en mi sistema, si no se tiene pues hay que instalarlo:

# pacman -S ghostscript

Bueno ahora si hay que hacer el script, primero hay que crear un archivo para el script, yo lo hago con kwrite puesto que uso KDE:

$ kdesu kwrite /usr/local/bin/unlockpdf

NOTA: Hago esto con una cuenta de usuario normal (se puede ver el símbolo “$” en el comando) y usando el editor de texto kwrite, solo por la comodidad de trabajar en el ambiente X y no usar un editor en la terminal como vi o nano.

Colocar el siguiente código en el archivo:

#!/bin/sh
if [ "$1" = "" ]
then echo Comando: unlockpdf [archivo_pdf] && exit
fi
echo
echo Desprotegiend­o $1... Espere un momento.
echo
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sPDFPassword= -dPDFSETTINGS=/prepress -dPassThroughJPEGImages=true -sOutputFile="$1_unlocked.pdf" "$1"
echo
echo Terminado. Compruebe que existe un archivo llamado "$1_unlocked.pdf".
echo

NOTA: checar los saltos de línea, sobretodo en la línea que empieza con “gs” es contínua y no hay saltos de línea.

Una vez hecho ésto se guardan los cambios en el archivo y se le dan permisos de ejecución (ahora si como root, véase el símbolo #):

# chmod +x /usr/local/bin/unlockpdf

Si se desea tener el script disponible para todos los usuarios hay que colocar la opción “a” del chmod como sigue (véase la página man para mas información):

# chmod a+x /usr/local/bin/unlockpdf

Ahora para usar el script tipo “comando” hay que escribir en el terminal:

# unlockpdf [archivoPDF]

Donde [archivoPDF] es el nombre del archivo PDF al que se desea quitar la protección, el cual debe de estar en el directorio actual, después de un rato dependiendo del tamaño del archivo se obtendrá un archivo llamado “[archivoPDF]_unlocked”, que es el PDF desprotegido. A mí me ha servido mucho, espero les sirva.

¡Saludos!

Fuentes:

http://www.improvisa.com/index.php?name=News&file=article&sid=413
http://es.wikipedia.org/wiki/Ghostscript

Anuncios

5 pensamientos en “Desbloquear archivo PDF en Linux

  1. Hola, Eduardo

    Para que tu código te quede con sintaxis resaltada y más fácil de copiar ve como lo hice yo editando mi post:

    #!/bin/sh
    if [ "$1" = "" ]
    then echo Comando: unlockpdf [archivo_pdf] && exit
    fi
    echo
    echo Desprotegiend­o $1... Espere un momento.
    echo
    gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sPDFPassword= -dPDFSETTINGS=/prepress -dPassThroughJPEGImages=true -sOutputFile="$1_unlocked.pdf" "$1"
    echo
    echo Terminado. Compruebe que existe un archivo llamado "$1_unlocked.pdf".
    echo
    

    Saludos

    • Si solo es cuestión de escribirlo de una forma más agradable, lástima que en el blog no haya quedado tan bien, pero gracias por el arreglo espero que a los visitantes les quede más claro.

      Saludos.

      • No es cuestión de escribirlo más agradable es que como yo uso wordpress.com igual que tu lo único que tienes que añadirle al post son los tags code … /code (encerrados entre brackets) entre las líneas de código y ya (edita mi comentario y verás incluso el filtro; te tomará unos pocos segundos incorporarlo). Lo mismo le señale a Beastiux y su Blog luce mucho mejor. Eso lo descubrí por casualidad y a todo el que tengo oportunidad de comunicárselo lo hago.

        Saludos

      • Ok ya está, yo creí que se debía a que el tema de los blog es diferente, yo uso el code…/code (entre signos de mayor y menor) y creí que era todo lo que se podía hacer…
        Gracias por el tip.
        Saludos

  2. Me falto el filtro para bash:

    #!/bin/sh
    if [ "$1" = "" ]
    then echo Comando: unlockpdf [archivo_pdf] && exit
    fi
    echo
    echo Desprotegiend­o $1... Espere un momento.
    echo
    gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sPDFPassword= -dPDFSETTINGS=/prepress -dPassThroughJPEGImages=true -sOutputFile="$1_unlocked.pdf" "$1"
    echo
    echo Terminado. Compruebe que existe un archivo llamado "$1_unlocked.pdf".
    echo
    

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s