MuPDF: excelente visor de documentos PDF y más

Generalmente por costumbre utilizo las herramientas que trae mi distribución por defecto, pero últimamente en el caso de los archivos pdf no me he sentido cómodo con el visor de documentos Evince, o Atril (en Debian MATE-Desktop). Cuando el pdf es de gran tamaño Atril no se desempeña con la fluidez que debería, o al menos que yo modestamente pretendo.

Una alternativa viable era Okular, prácticamente la potencia de este visor no tiene discusión, cualquier pdf pesado lo maneja como si fueran 5 páginas, sin embargo no me gusta mezclar librerías. La sola instalación de Okular conlleva un sinfín de paquetes de KDE, por lo tanto decidí explorar otras opciones hasta llegar a un par de herramientas que me interesaron lo suficiente como para compartir con los lectores: Una de ellas es MuPDF.

MuPDF soporta una gran variedad de formatos.

Cabe aclarar que no se trata de un visor como los mencionados anteriormente, MuPDF prescinde de menús y caja de herramientas. Técnicamente está orientado al uso del teclado y ese aspecto lo convierte en un visor sumamente simple, ligero y muy potente. El mouse es también un complemento importante.

Instalación

Nota: De acuerdo a la página oficial mupdf-tools es un conjunto de herramientas de la línea de comandos que nos permiten anotar, editar y convertir documentos a otros formatos como: HTML, SVG, PDF y CBZ… También se pueden escribir scripts para manipular documentos usando Javascript. No obstante mupdf-tools es un paquete opcional y puedes prescindir de él si no vas a realizar alguna de las opciones citadas.

Distribuciones basadas en Debian:

sudo apt install mupdf mupdf-tools

Archlinux y derivadas:

sudo pacman -S mupdf mupdf-tools

Fedora

sudo dnf install mupdf mupdf-tools

openSUSE

sudo zipper install mupdf mupdf-tools

La última versión de desarrollo está disponible en GitHub:

git clone --recursive git://git.ghostscript.com/mupdf.git

Comenzando con MuPDF

Una vez situados sobre el documento pdf, y en el supuesto caso de que tengamos otro visor como predeterminado, hacemos clic derecho del mouse y elegimos MuPDF de ahí en más todo se controlará desde el teclado.

Básicamente con esta herramienta podemos realizar todo tipo de tareas al igual que cualquiera de los visores pdf más populares, pero con el aliciente de que podemos realizar algunas tareas extras debido a MuPDF-tools.

Movernos entre páginas es tan sencillo como utilizar algunas de las siguientes teclas . , o right left. Por caso si quisiéramos un desplazamiento más corto utilizamos las teclas j k (avanzar/retroceder), y si deseamos lo contrario, las teclas < > saltarán atrás/adelante 10 páginas a la vez. Para desplazarse a una página específica: basta con teclear por ej.: 255g y nos ubicará en la pág. 255.

La búsqueda de texto es algo que suelo hacer a menudo y para ello uso / o ?, aquellos que están emparentados con Vim conocen de sobra estos atajos. La barra invertida (/) buscará texto hacia adelante, mientras que «?» lo hará en forma inversa. Por su parte n y N buscarán la próxima coincidencia hacia adelante (n) y atrás (N).

Otra cualidad que me gusta de MuPDF es la de los marcadores, en reiteradas ocasiones me veo obligado a desplazarme a otra página y volver al foco de lectura actual, y para ello utilizo m para marcar la página actual y t para regresar a ella luego de haberme desplazado. También es posible marcar múltiples páginas usando números del 1 al 9, por ejemplo: 1m, 2m… para marcar y 1t, 2t… para regresar a dichas marcas.

Por defecto el mouse está activado para realizar tareas normales como: avanzar/retroceder mediante la rueda (scrool) o deslizar en cualquier dirección manteniendo presionado el botón izquierdo. El botón derecho está reservado para seleccionar texto.

Por su parte el atajo p pasará al modo presentación y esto habilitará las pulsaciones del mouse para avanzar/retroceder. Las teclas de navegación citadas anteriormente también se comportarán de forma distinta, es decir que las páginas tendrán un efecto de transición (slides). Para salir del modo presentación presionamos nuevamente p. Por supuesto que para realizar una buena presentación es necesario usar pantalla completa (fullscreen) y para ello utilizamos el atajo f.

Además del típico color inverso i existe un color más tenue adecuado para una lectura prolongada, esto lo logramos con la tecla C la cual alterna el tinte de color en la página completa. Para conmutar entre ambos colores (el blanco predeterminado y el sepia) está la tecla c.

También es posible personalizar el color de MuPDF inicializándolo desde el terminal con el comando mupdf -C RRGGBB, donde: RRGGBB hace referencia a la mezcla de colores primarios (red, green, blue) para componer un solo color –el deseado–.

El siguiente ejemplo abre un documento pdf especificando el color (rgb) CECEDE

mupdf -C CECEDE foo.pdf

Otra característica de MuPDF es la de cambiar la resolución, por defecto el valor es 72 dpi –en mi caso 96 dpi–. Si quisiéramos abrir un pdf siempre a un hipotético valor de 120 dpi es tan simple como:

mupdf -r 120 foo.pdf

Los atajos + - también hacen ese trabajo.

Color personalizado #CECEDE y 120 dpi.

de igual forma es posible trabajar en el suavizado de las fuentes (anti-aliasing). El valor 0 determina «off» y el valor 8 «mejor resolución».

mupdf -A 8 foo.pdf

En la siguiente imagen se puede apreciar la diferencia entre ambos extremos (0-8).

Hay mucho más en MuPDF, solo he descripto algunas opciones y los atajos que suelo usar de manera recurrente –o que pueden ser de interés–. A continuación puedes ver todos los atajos extraídos de las páginas de man. Ejecuta en un terminal: man mupdf para tener una perspectiva más amplia sobre esta herramienta.

Atajos del teclado

. pgdn right space   Ir a la página siguiente.

, pgup left b backspace   Ir a la página previa.

< >   Saltar hacia atrás/adelante 10 páginas a la vez.

123g   Ir a la página 123.

g G   Ir a la primera y última pagina.

m   Marca la página actual para regresar en una pulsación.

t   Regresa de nuevo a la última página marcada.

[0-9] m   Guarda el número de la página actual en el registro numerado.

[0-9] t   Ir a la página guardada en el registro numerado.

Hacer zoom y rotación

+ -   Acercar o alejar.

W H   Ampliar la página para que se ajuste exactamente al ancho/alto de la ventana.

Z   Zoom de página para adaptarse al ancho o al alto de la ventana.

L R   Rota la página a la izquierda (contrario a las agujas e reloj) o a la derecha.

w   Encoge la ventana (el marco) para adaptarse a la página.

f   Alterna el modo de pantalla completa (fullscreen/normal screen).

Paneo

h j k l   Desplazar página hacia la izquierda, hacia abajo, hacia arriba o hacia la derecha.

Búsqueda

/ ?   Buscar texto hacia adelante o hacia atrás.

n N   Encuentra el resultado de búsqueda siguiente/anterior.

Otros

[ ]Aumentar/disminuir el tamaño de fuente EPUB/XHTML

r   Recargar archivo.

p   Cambiar modo de presentación.

c   Alternar entre color y escala de grises.

C   Alternar tinte de color de página completa.

i   Alternar entre la reproducción de color normal e invertida.

S   Guardar archivo de documento actualizado.

q   Salir de MuPDF (quit).

MuPDF-tools

MuPDF viene dotado de una gran variedad de herramientas de la linea de comando a través de mutool. Son muchas las opciones por lo que es difícil prever cuales son las más útiles, depende de cada usuario. En lo particular voy a ejemplificar la opción convert (convertir en otros formatos) y merge para unir dos o más pdf’s:

Sinopsis:

mutool convert [options] -o output input [pages]

Donde:

output: Nombre del fichero de salida.

imput: Nombre del fichero entrada.

options: -F (formato), -O [opciones extras: font-size (-S), width (-W), height (-H), bits (-A)…]

Ejemplo 1: convertir pdf a html (todas las páginas) Con la opción 1-N se indica que comience en la página 1 hasta el final del documento (N).

mutool convert -F html -o foo.html bar.pdf 1-N

convertir solo las páginas 3, 5 y 9:

mutool convert -F html -o foo.html bar.pdf 3,5,9

convertir pdf a txt

mutool convert -F txt -o foo.txt bar.pdf 

comprimir un documento pdf

mutool convert -O compress -F pdf -o foo.pdf bar.pdf

Por su parte la opción merge responde a la siguiente sinopsis:

mutool merge [options] file1 [pages] file2 [pages] …

Donde:

options: -o output

output: Nombre del fichero de salida.

Ejemplos:

Unir: foo1.pdf, foo2.pdf, foo3.pdf en master.pdf (archivo de salida).

mutool merge -o master.pdf foo1.pdf foo2.pdf foo3.pdf

unir determinadas páginas de cada documento: foo1.pdf (pág. 2, 5), foo2.pdf (pág. 8), foo3.pdf (pág. 3, 9, 12)

mutool merge -o master.pdf foo1.pdf 2,5 foo2.pdf 8 foo3.pdf 3,9,12

Hay mucho más en MuPDF-tools como:

  • Depuración.
  • Mostrar los objetos internos en un archivo PDF.
  • Extraer imágenes y recursos de fuente incrustados.
  • Reparar archivos rotos o para hacer que un archivo PDF sea editable.
  • Más…

Para explorar más ejecuta: man mutool en la linea de comandos.

Para finalizar, la otra opción a la que me refería al comienzo del artículo es Xpdf, de la cual ya existe un artículo aquí mismo. Si lo juzgamos por la apariencia «espartana» la verdad es que rompe bastante con el entorno de trabajo. Sin embargo en este caso en particular prefiero dejar de lado la apariencia para centrarme en lo simple, liviano y potente. Creo –en mi opinión personal– que tanto Xpdf como MuPDF cumplen dichas premisas y es lo que realmente me interesa.

Fuente:

https://mupdf.com/index.html

¿Te resultó interesante? Compártelo ...



Percaff_TI99

Publicado por Percaff_TI99

http://gutl.jovenclub.cu/ » Forma parte de GUTL desde el 10 agosto, 2013. Amante de la ciencia y tecnología en general. Usuario de GNU/Linux desde hace varios años.

Este artículo tiene 8 comentarios

    • Gracias!! Espero que te sea de utilidad, igualmente hay otras alternativas como pdfsam o MasterPDF. Yo me centré en lo más simple, que en muchos casos no es lo más intuitivo para los usuarios que están acostumbrados a herramientas más gráficas.

      Saludos.

  1. Permiteme hacerte una pregunta, esta aplicación permite imprimir una pagina web en pdf como foxit phantom y otras????

    • Hola @Pupo:

      Si te refieres a una página online especificando la url a mí no me ha funcionado. Intenté redirigiendo la salida de curl a un archivo html y tampoco me funcionó, no se lleva bien con las etiquetas meta.

      Una opción que yo utilizo -en consola- es el comando wkhtmltopdf, no soy muy asiduo de utilizar grandes herramientas gráficas para realizar tareas ocasionales. Tiene muchas características pero para crear un simple pdf de una página web, basta con ejecutar:

      wkhtmltopdf https://gutl.jovenclub.cu/mupdf-excelente-visor-de-documentos-pdf-y-mas/ test.pdf

      o si trabajas en una página html en crudo, en este caso hay que asegurarse de que la etiqueta meta charset=»UTF-8″ esté especificada para que no imprima caracteres extraños:

      wkhtmltopdf foo.html test.pdf

      wkhtmltopdf -H te dará una idea de lo que puede hacer.

      Si eres de los que trabaja mucho realizando este tipo de tareas te recomiendo le eches un vistazo a Pandoc. Esta es la navaja suiza para la conversión de distintos formatos.

      Saludos.

  2. Percaff_TI99:

    Hace un tiempo publiqué en nuestro portal un artículo titulado: «La consola y el formato PDF (popplers-utils)». Tu aportación en torno MuPDF-tools ofrece otra opción. ¡Enhorabuena!

    Por cierto, hace rato dejé «evince» y ahora me valgo de «qpdfview» para leer ficheros pdf y no me va mal.

    Con toda consideración,

    • qpdfview es otra gran opción a tener en cuenta, más intuitiva, a diferencia de MuPDF ofrece información detallada al usuario de forma más amigable y es muy liviana.

      En el caso de poppler-utils lo tengo como dependencia de Xpdf pero no me había interiorizado hasta ahora. Es una herramienta que voy a tener en cuenta. Actualicé las etiquetas.

      Gracias por el aporte @Delio

  3. El problema que le veo a esta aplicación es que no te permite abrir el archivo donde lo dejaste. Siempre se abre en la primera página, lo cual es una lata. Otro problema es cambiarle el fondo del documento. Solo se puede hacer con terminal, pero los cambios no quedan registrados. Cuando abres la aplicación, otra vez te muestra la pantalla blanca, de lo que huyo como gato escaldado, porque hace mucho daño a los ojos. ¿Por qué esa manía de ponerlo todo con pantalla blanca en todas las aplicaciones que existen? Prefiero Zathura, que guarda los cambios y además recuerda dónde lo dejaste. Qpdfview también es una magnífica opción. Evince me gusta, pero no se le puede cambiar el fondo de la pantalla.

    • Hola Lorenzo:

      Cierto, los colores en los visores de documentos es un tema recurrente en la mayoría de los usuarios, cuando mucho te permiten invertir a negro. El problema que le veo a esto es cuando cambias a otra tarea y otra vez al blanco -te fusila-, no hay un color intermedio. Tengo un monitor que tiene modo lectura, pero no lo uso, ya que me ajusta el color para todo el entorno.

      MuPDF tiene el «sepia» pero no es suficiente. Para no tener que hacer cambios cada vez que lo abro yo lo personalizo de la siguiente manera:

      Abrir con –> Otra aplicación… –> Usar una orden personalizada (Recordar esta aplicación… debe estar tildada)

      https://gutl.jovenclub.cu/wp-content/uploads/2019/05/mupdf-color.png

      También se puede modificar el icono lanzador. Para el caso de la terminal edito el fichero ~/.bashrc o ~/.zshrc y al final o dónde están los aliases escribo: alias mupdf = 'mupdf -C FFEEDD'

      De esta manera evito especificar el color cada vez que abro un pdf desde un terminal. Modificar /usr/share/mupdf.desktop podría ser otra idea.

      El tema de memorizar la página al cerrar es realmente un fastidio, hay mucho sobre este tema en la web, y lo único que se rescatan son unos scripts muy pequeños que memorizan la página, pero para ello debemos escribir el núm. de pág. en una casilla al cerrar mupdf. No me gusta demasiado esta idea, aunque es algo.

      El porqué de no recordar la página, el creador de MuPDF lo explica:

      Tor Andersson:

      Se requiere guardar y cargar los datos de configuración del usuario, lo que evitamos hacer en estas plataformas por varias razones: portabilidad, ejecución sin necesidad de Instalación, privacidad del usuario, etc.

      Zathura es otra excelente opción, la tendré muy en cuenta. Evince solo permite color invertido, creo que compilándolo se puede escoger un color a gusto del lector.

      Saludos.

Los comentarios están cerrados.