El formato PDF (Portable Document Format), es uno de los más usados en la distribución de documentos e información; superado solamente por el «html» si tenemos en cuenta los miles de millones de páginas web que desandan por el mundo o el «txt» en el caso de los emails.
En el universo GNU/Linux existen varios lectores de PDF (Evince, Okular, Atril, Qpdfview, Xpdf, Apvlv, Katarakt, Mupdf, Pdfcube, Zhatura, etc) y otras aplicaciones -gráficas en menor número-, que permiten modificar estos tipos de ficheros; verbi gratia: Pdfshuffler, PDF Mod; no obstante, y como handicap de esta última herramienta, muchas veces da error al cargar el fichero que se desea modificar. Ahora bien, los lectores referenciados resultan dispares y no poseen las mismas potencialidades (son solo lectores) ni serán capaces de satisfacer las diversas necesidades de los usuarios; a pesar de ello, hay herramientas que abarcan un mayor número de funciones que, sin llegar a colmar la variopinta demanda en la creación, modificación y uso de documentos pdf, ayudan mucho más que los lectores de marras.
Otra variable a tener en cuenta en esta sugerencia utilitaria (ello es en esencia este artículo), resulta la demora -para el caso del usuario inexperto-, del sistema GNU/Linux en arribar a los entornos gráficos; sin embargo, asumiendo el refrán de que no van lejos los de alante si los de atrás corren bien, la tardía llegada de las GUI a nuestro mundo y la convivencia con terminales, nos pone dos pasos por delante en relación con quienes emplean solamente el entorno gráfico, especialmente en el uso del tiempo (recurso que muy pocos valoran y muchos dilapidan) y el abanico de posibilidades que se abren al poder usar, también y al mismo tiempo, aplicaciones gráficas y de consola.
En el repositorio de Debian 8 descubrí «poppler-utils», una librería de interpretación del visor PDF de Xpdf y que, siguiendo la filosofía del SWL, comparto con ustedes.
Este paquete contiene líneas de comando que obtienen información de los documentos PDF, convierte estos a otros formatos o simplemente los manipulan. Las opciones son las listadas a continuación:
I.-pdfdetach — lista o extrae ficheros embebidos (adjuntos) en el pdf
II.-pdffonts — analiza el tipo de letra usado en el pdf
III.-pdfimages — extrae imágenes del pdf y las guarda en formato: png, ppm, tiff, jpeg, jpeg2000, jbig2
Ejemplo 1. Extrae imágenes de un rango de páginas.
pdfimages -f 1 -l 6 -png fichero.pdf imagen
-f 1 (la primera página del pdf de donde extraerá las imágenes)
-l 6 (la última página del pdf de donde extraerá las imágenes)
-png (el formato en que se guardarán las imágenes extraídas)
fichero.pdf (el fichero pdf del cual se extraerán las imágenes)
imagen (el comodín dado al nombre de las imágenes, de lo que resultará imagen-001.png, imagen-002.png, imagen-003.png, etc)
Ejemplo 2. Extrae todas las imágenes de un fichero pdf.
pdfimages -png fichero.pdf imagen
-png (el formato en que se guardarán las imágenes)
fichero.pdf (el fichero pdf del cual se extraerán las imágenes)
imagen (el comodín a dado las imágenes, de los que resultará imagen-001.png, imagen-002.png, imagen-003.png, etc)
IV.-pdfinfo — muestra información sobre el documento pdf
V.-pdfseparate — herramienta de separación de páginas del fichero pdf en archivos pdf individuales
Ejemplo 1. Separar una sola página de un fichero pdf.
pdfseparate -f 3 -l 3 fichero.pdf archivo.pdf
-f 3 y -l 3 (es la página a separar; o sea, la página 3)
fichero.pdf (el fichero pdf de donde se separa la página)
archivo.pdf (fichero que contendrá la página separada)
Ejemplo 2. Separar un rango de páginas.
pdfseparate -f 1 -l 3 fichero.pdf archivo-%d.pdf
-f 1 (primera página a separar)
-l 3 (última página a separar)
fichero.pdf (el fichero pdf de donde se separan las páginas)
archivo-%d.pdf (archivo que contendrá las páginas separadas. Debe contener la opción -%d)
Notas:
1.-Si no se señala -f se iniciará la separación en la primera página del pdf; si no se señala -l se terminará la separación en la última página, dando como resultado tantos ficheros pdf como páginas tenía el archivo fuente.
2.-Pude apreciar que si el archivo fuente pesaba 5 Mbytes, cada página separada va a pesar lo mismo que el fichero fuente; esto, como es lógico, resulta una desventaja. ¡Ah!, y no he encontrado el modo de reducir el tamaño de la o las páginas separadas.
VI.-pdftocairo — convierte el PDF a PNG/JPEG/PDF/PS/EPS/SVG usando Cairo
Ejemplo 1. Convierte un rango de páginas de un pdf a formato png.
pdftocairo -png -f 1 -l 6 fichero.pdf
-png (el formato a convertir)
-f 1 -l 6 (rango de páginas del pdf que convertiré a png)
fichero.pdf (el fichero pdf cuyas páginas serán convertidas a png)
Notas:
1.-En este caso, si no añado un comodín, las imágenes cogerán el nombre del fichero: fichero-01.png, fichero-02.png, etc
2.-Si elimino el rango de páginas, convertirá todas las páginas del pdf a formato png.
3.-En este caso, el tamaño de las imágenes resultantes es menor.
VII.-pdftohtml — convierte el fichero PDF a HTML
VIII.-pdftoppm — convierte el fichero PDF a imágenes PPM/PNG/JPEG2
Esta opción posee algunas ventajas sobre las anteriores. Por ejemplo, convierte el fichero pdf o las páginas seleccionadas no solo a los formatos permitidos (png, jpeg y tiff); sino, que da la opción de hacerlo en tonos de grises (PGM) o monocromo (PBM).
Ejemplo 1. Convierte la página o las páginas del fichero pdf en imágenes grises o monocromáticas.
pdftoppm -gray -f 1 -l 3 fichero.pdf archivo-salida
pdftoppm -mono -f 1 -l 3 fichero.pdf archivo-salida
-gray (la imagen sale en tonos grises)
-mono (la imagen sale monocromática)
-f 1 (la primera página a convertir)
-l 3 (la última página a convertir)
archivo-salida (es preciso poner un comodín al nombre de las imágenes para que imprima la salida, de lo contrario, solo veremos un cascarero desfilar por nuestra terminal)
Como saben, las imágenes con formato PPM y TIFF son de gran tamaño; empero, podemos resolver esto aplicando la opción «-scale-to» o especificándole a la salida en TIFF (-tiffcompression) un tipo de compresión: packbits, jpeg, lzw o deflate
Ejemplo: Reduce el tamaño de las imágenes resultantes.
pdftoppm -scale-to 700 -f 1 -l 3 fichero.pdf archivo-salida
pdftoppm -tiff -f 1 -l 3 -tiffcompression deflate fichero.pdf archivo-salida
Esta opción permite seleccionar y convertir páginas pares o impares.
Ejemplo:
pdftoppm -png -e fichero.pdf archivo-salida (obvia las páginas pares y convierte las impares a png)
pdftoppm -png -o fichero.pdf archivo-salida (obvia las páginas impares y convierte las pares a png)
IX.-pdftops — convierte el fichero PDF a PostScript (PS)
X.-pdftotext — extrae el texto del fichero pdf
XI.-pdfunite — une ficheros pdf
Si se desean mayores precisiones consúltese en consola la ayuda del «man» para cada una de las opciones. A mí me ha sido de utilidad, espero que a ustedes también; además, aprendí algo nuevo, conocimiento imposible de adquirir -para el caso en cuestión-, si nada más hubiese empleado lectores de pdf con interfaz gráfica desdeñando la magnífica herramienta que resulta ser la terminal.
Wow! y no tiene GUI que integre todas esas utilidades para su uso más fácil
Excelente.. se que no forma parte del artículo pero me gustaría preguntarle a Delio si conoce alguna herramienta para convertir ePub a PDF? o para sacarle «las tripas» a cualquier ePub?
Colega:
«okular-extra-backends» es un plugin que permite a Okular ver otros formatos como: CHM, TIFF, DjVu y EPub eBook; al menos eso dice la descripción del paquete.
Ahora bien, nunca lo he probado; pero, si permite verlo, nada pierde Ud. con instalarlo, levantar Okular, ver el EPub, luego cruzar los dedos y ver si Okular puede grabarlo como PDF.
Por otro lado, «Calibre», además de ser un administrador de ebooks, acepta varios formatos, entre ellos PDF y los convierte a LRF y EPUB; ¿convertirá de ePub a PDF? No sé, Ud. debe hacer la prueba.
Con toda consideración.
Ufff.. instalar todos esos paquetes de KDE.. :/
Colega:
Pruebe con Calibre; tal vez…
Si Calibre es una muy buena opción:
ebook-convert file.epub file.pdf
¡Hecho! con el comando me resolvio.. gracias a los 2!
PD: Panamajack tas perdio mijo! entra al IRC de ves en mes.
Men, ni tiempo a apenas tengo para eso! Pues estoy con todo en la parte de informática + la administración de red, pero si tengo configurado el IRC lo que no lo uso, jajajaj Pero luego nos actualizamos! así que cuídate pelú! A y Felicidades por apostar por el SWL!