PDF, PS and DjVu (Español)

From ArchWiki
Esta traducción de PDF, PS and DjVu fue revisada el 2021-01-14. Si existen cambios puede actualizarla o avisar al equipo de traducción.

Este artículo cubre el software para ver, editar y convertir PDF, PostScript (PS), DjVu (déjà vu) y archivos XPS.

Motores

  • Poppler — Biblioteca de renderizado de PDF basada en Xpdf. Para soportar CJK (Chino, Japonés, Koreano) con Poppler, instale poppler-data.
https://poppler.freedesktop.org/ || poppler
  • Mupdf — MuPDF es un visor de PDF, XPS y EPUB ligero, que consta de una biblioteca de software, herramientas de línea de órdenes y visores.
https://mupdf.com/ || libmupdf
  • libspectre — Pequeña biblioteca para renderizar documentos PostScript.
https://www.freedesktop.org/wiki/Software/libspectre || libspectre
  • Ghostscript — Intérprete para PostScript y PDF. Proporciona la interfaz de línea de órdenes gs(1), véase también /usr/share/doc/ghostscript/*/Use.htm (online[enlace roto 2022-09-22]), junto con muchos scripts como ps2pdf y pdf2ps.
https://ghostscript.com/ || ghostscript
  • DjVuLibre — Suite para crear, manipular y ver documentos DjVu.
https://djvu.sourceforge.net/ || djvulibre
  • libgxps — Biblioteca basada en GObject para manejar y renderizar documentos XPS.
https://wiki.gnome.org/Projects/libgxps || libgxps

Visores

Framebuffer

  • fbgs — Visor de PostScript/pdf de los pobres para la consola framebuffer de Linux.
https://www.kraxel.org/blog/linux/fbida/ || fbida
  • fbpdf — Pequeño visor de framebuffer PDF y DjVu basado en MuPDF, con atajos de teclado Vim y escrito en C
https://repo.or.cz/w/fbpdf.git || fbpdf-gitAUR
  • jfbview — Framebuffer PDF y visor de imágenes. Las características incluyen controles tipo Vim, zoom para ajustar, una vista TOC (esquema), renderizado rápido de subprocesos múltiples y pre-almacenamiento en caché asíncrono.
https://github.com/jichu4n/jfbview || jfbviewAUR

Gráficos

Nota: Algunos navegadores web puede mostrar archivos PDF, por ejemplo con PDF.js.
  • apvlv — Visor de documentos ligero con atajos de teclado Vim. Soporta PDF, DjVu, UMD y TXT.
https://naihe2010.github.io/apvlv/ || apvlvAUR
  • Atril — Visor de documentos multi-página simple para MATE. Soporta DjVu, DVI, EPS, EPUB, PDF, PostScript, TIFF, XPS y Comicbook.
https://github.com/mate-desktop/atril || atril
  • DjView — Visor para documentos DjVu.
https://djvu.sourceforge.net/djview4.html || djview
  • ePDFView — Visor de documentos PDF ligero utilizando las bibliotecas Poppler y GTK. Desarrollo detenido.
http://freecode.com/projects/epdfview || epdfview-gtk3AUR[enlace roto: package not found]
https://www.gnu.org/software/emacs/ || emacs
  • Evince — Visor de documentos para GNOME. Soporta DjVu, DVI, EPS, PDF, PostScript, TIFF, XPS y Comicbook.
https://wiki.gnome.org/Apps/Evince || evince
https://www.foxitsoftware.com/pdf-reader/ || foxitreaderAUR
  • gv — Interfaz gráfica de usuario para el intérprete Ghostscript que permite ver y navegar por documentos PostScript y PDF.
https://www.gnu.org/software/gv/ || gvAUR
  • llpp — Lector de PDF muy rápido basado en MuPDF, que admite desplazamiento continuo de páginas, marcadores y búsqueda de texto en todo el documento.
https://repo.or.cz/w/llpp.git || llppAUR
  • MuPDF — Visor muy rápido de EPUB, FictionBook, PDF, XPS y Comicbook escrito en C portable. Como característica soporta tipografía CJK.
https://mupdf.com/ || mupdf
  • Okular — Visor de documentos universal para KDE. Soporta CHM, Comicbook, DjVu, DVI, EPUB, FictionBook, Mobipocket, ODT, PDF, Plucker, PostScript, TIFF y XPS.
https://okular.kde.org/ || okular
  • pdfpc — Presentador de Consola con soporte multimonitor para archivos PDF.
https://pdfpc.github.io/ || pdfpc
  • qpdfview — Visor de documentos con pestañas. Utiliza Poppler para soporte PDF, libspectre para soporte PS, DjVuLibre para soporte DjVu, CUPS para soporte de impresión y el Qt toolkit para su interfaz.
https://launchpad.net/qpdfview || qpdfviewAUR
  • Xpdf — Visor que puede decodificar LZW y leer PDFs cifrados.
https://www.xpdfreader.com/ || xpdf
  • Xreader — Visor de documentos que forma parte del proyecto X-Apps. Soporta DjVu, DVI, EPUB, PDF, PostScript, TIFF, XPS y Comicbook.
https://github.com/linuxmint/xreader/ || xreader
  • Zathura — Visor de documentos altamente personalizable y funcional (basado en plugin). Soporta PDF, DjVu, PostScript y Comicbook.
https://pwmt.org/projects/zathura/ || zathura

Comparativa

El asterisco junto a la biblioteca indica que la dependencia opcional debe instalarse para una función específica.

Nombre PDF PostScript DjVu XPS PDF forms Anotación PDF Licencia
Adobe Reader Personalizado propietario
apvlv Poppler DjVuLibre No GPLv2
Atril Poppler libspectre DjVuLibre libgxps GPLv2
DjView DjVuLibre GPLv2
Emacs Ghostscript* DjVuLibre* No GPLv3
ePDFView Poppler No GPLv2
Evince Poppler libspectre DjVuLibre libgxps GPLv2
Foxit Reader Personalizado propietario
gv Ghostscript No GPLv3
llpp libmupdf libmupdf GPLv3
MuPDF Personalizado Personalizado AGPLv3
Okular Poppler libspectre DjVuLibre Personalizado GPL, LGPL
pdfpc Poppler No GPLv2
qpdfview Poppler libspectre* DjVuLibre* GPLv2
Xpdf Personalizado No GPLv3
Xreader Poppler libspectre* DjVuLibre* libgxps* GPLv2
Zathura Poppler* / libmupdf* libspectre* DjVuLibre* libmupdf* [enlace roto 2024-07-30] No zlib

PDF forms

La columna PDF Forms en la tabla anterior se refiere al soporte AcroForms.Si no necesita que lo que introduzca sea directamente extraíble del PDF, también puede utilizar las aplicaciones en #Anotación o #Edición gráfica de PDF para poner texto encima de un PDF. Los formularios PDF se pueden crear con LibreOffice Writer (Ver > Barras de herramientas > Controles de formulario) y los editores de PDF avanzados.

El formato propietario y en desuso XFA para formularios, no es totalmente compatible con Poppler[1][2] y solo es soportado por Adobe Reader y Master PDF Editor.

Alternativamente, los navegadores web como Firefox o Chromium cuentan con un visor de PDF integrado capaz de completar formularios.

Anotación

  • flpsed — Un anotador PostScript y PDF, solo soporta cajas de texto.
https://flpsed.org/flpsed.html || flpsedAUR

Véase también List of applications/Documents#Stylus note-taking.

Edición gráfica de PDF

  • Scribus puede importar y exportar PDF; el texto se importa como polígonos.[3]
  • LibreOffice Draw puede importar y exportar PDF; el texto se importa como texto; las fuentes incrustadas se sustituyen.[4][5]
  • Inkscape puede importar una sola página desde un PDF y exportar a PDF; el texto se importa como glifos clonados o texto; con este último se sustituyen las fuentes incrustadas.
  • Editores gráficos como GIMP y krita también pueden importar y exportar archivos PDF a costa de la rasterización.

Editores básicos

  • jPDF Tweak — Aplicación Java Swing que puede combinar, dividir, rotar, reordenar, usar marcas de agua, cifrar, firmar y modificar archivos PDF.
https://jpdftweak.sourceforge.net/ || jpdftweakAUR
  • PDF Arranger — Ayuda a fusionar o dividir documentos PDF y rotar, recortar y reorganizar páginas. Es una bifurcación mantenida de PDF-Shuffler.
https://github.com/jeromerobert/pdfarranger || pdfarranger
  • PDF Chain — Interfaz GTK para PDFtk, escrito en C++, soportando concatenación, ráfaga, marcas de agua, archivos adjuntos y más.
https://pdfchain.sourceforge.net/ || pdfchainAUR
  • PDF Mix Tool — Interfaz Qt para PoDoFo, escrito en C++, soporta división, fusión, rotación y mezclado de archivos PDF.
https://scarpetta.eu/pdfmixtool/ || pdfmixtool
  • PDF Mod — Reordenar, rotar y eliminar páginas, exportar imágenes de un documento, editar el título, el tema, el autor y las palabras clave, y combinar documentos mediante arrastrar y soltar.
https://wiki.gnome.org/Attic/PdfMod || pdfmod[enlace roto: package not found]
  • PDFsam — Aplicación de código abierto, escrita en Java, soporta fusión, división y rotación.
https://pdfsam.org/ || pdfsamAUR
  • PDF Slicer — Aplicación simple para extraer, fusionar, rotar y reordenar páginas de documentos PDF.
https://junrrein.github.io/pdfslicer/ || pdfslicer
  • PDF Tricks — Aplicación simple y eficiente para pequeñas manipulaciones en archivos PDF utilizando Ghostscript.
https://github.com/muriloventuroso/pdftricks || pdftricks

Herramientas de corte

  • briss — GUI de Java para recortar páginas de documentos PDF en una o más regiones seleccionadas.
https://sourceforge.net/projects/briss/ || brissAUR
  • krop — Herramienta gráfica simple para recortar las páginas de archivos PDF.
https://arminstraub.com/software/krop || kropAUR
  • pdfCropMargins — Recorta automáticamente los márgenes de los archivos PDF.
https://github.com/abarker/pdfCropMargins || pdfcropmarginsAUR
  • PdfHandoutCrop — Herramienta para recortar folletos en PDF con varias páginas por hoja.
https://cges30901.github.io/pdfhandoutcrop/ || pdfhandoutcropAUR

Editores avanzados

  • Master PDF Editor — Editor de PDF funcional y propietario. Gratis para uso no comercial.
https://code-industry.net/free-pdf-editor/ || masterpdfeditorAUR
  • PDF Studio — Editor de PDF propietario todo-en-uno similar a Adobe Acrobat.
https://www.qoppa.com/pdfstudio/ || pdfstudio-binAUR

Herramientas PDF

Véase también Ghostscript.

  • Coherent PDF — Herramientas de línea de órdenes para manipular archivos PDF que incluyen fusionar, cifrar, descifrar, escalar, recortar, rotar, marcadores, sellos, logotipos, números de página.
https://community.coherentpdf.com/ || cpdfAUR
  • DiffPDF — Compare el texto o la apariencia visual de cada página en dos archivos PDF.
https://gitlab.com/eang/diffpdf || diffpdf
  • mupdf-tools — Herramientas desarrolladas como parte de MuPDF, contienen mutool(1) y muraster.
https://mupdf.com || mupdf-tools
  • pdfgrep — Utilidad de línea de órdenes para buscar texto en archivos PDF.
https://pdfgrep.org/ || pdfgrep
  • pdfjam — Se puede utilizar para n-up, unir, rotar y voltear PDF y organizarlos en un formato adecuado para encuadernación de libros.
https://github.com/DavidFirth/pdfjam || texlive-core[enlace roto: replaced by texlive-basic]
  • pdf2svg — Convierte archivos PDF a archivos SVG.
http://www.cityinthesky.co.uk/opensource/pdf2svg/ || pdf2svg
  • PDFtk — Herramienta simple para hacer cosas cotidianas con documentos PDF.
http://www.pdfhacks.com/pdftk || pdftk
  • QPDF — Sistema de transformación de PDF con conservación de contenido.
https://github.com/qpdf/qpdf || qpdf
  • Stapler — Alternativa ligera a PDFtk utilizando la biblioteca PyPDF2.
https://github.com/hellerbarde/stapler || staplerAUR, stapler-gitAUR

Crea un PDF a partir de imágenes

Con GraphicsMagick:

$ gm convert 1.jpg 2.jpg 3.jpg out.pdf

Concatenar PDFs

Con Ghostscript:

$ gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=out.pdf -dBATCH 1.pdf 2.pdf 3.pdf

Con PDFtk:

$ pdftk 1.pdf 2.pdf 3.pdf cat output out.pdf

Con Poppler:

$ pdfunite 1.pdf 2.pdf 3.pdf out.pdf

Con QPDF:

$ qpdf --empty --pages 1.pdf 2.pdf 3.pdf -- out.pdf

Convertir un PDF a texto

Con Poppler y manteniendo el diseño:

$ pdftotext -layout in.pdf out.txt

Véase también pdftotext(1).

Descifrar un PDF

Esta sección enumera los comandos para descifrar un PDF en un archivo sin cifrar. Tenga en cuenta que la mayoría de visores PDF también soportan archivos PDF cifrados.

Con PDFtk:

$ pdftk in.pdf input_pw contraseña output out.pdf

Con Poppler a PostScript:

$ pdftops -upw contraseña in.pdf out.ps

Con QPDF:

$ qpdf --decrypt --password=contraseña in.pdf out.pdf
Sugerencia: Las contraseñas olvidadas pueden recuperarse con pdfcrack, véase pdfcrack(1).

Cifrar un PDF

La contraseña_de_usuario se utiliza para el cifrado, la contraseña_de_propietario para restringir las operaciones una vez que se descifra el documento, para más información, véase Wikipedia:PDF#Security and signatures.

Con PDFtk:

$ pdftk in.pdf output out.pdf user_pw contraseña

Con PoDoFo:

$ podofoencrypt -u contraseña_de_usuario -o contraseña_de_propietario in.pdf out.pdf

Con QPDF:

$ qpdf --encrypt contraseña_de_usuario contraseña_de_propietario longitud_de_la_clave -- in.pdf out.pdf

donde longitud_de_la_clave puede ser 40, 128 ó 256.

Extraer imágenes de un PDF

Con Poppler a JPEG:

$ pdfimages entrada.pdf -j prefijo_salida

Extraer un rango de página del PDF, dividir el documento PDF de varias páginas

Con Ghostscript como un solo archivo[6]

$ gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -dFirstPage=primero -dLastPage=último -sOutputFile=salida.pdf entrada.pdf

Con PDFtk como un solo archivo:

$ pdftk entrada.pdf cat primero-último output salida.pdf

Con Poppler como archivos separados:

$ pdfseparate -f primero -l último entrada.pdf prefijo_salida-%d.pdf

Con QPDF como un solo archivo:

$ qpdf --empty --pages entrada.pdf primero-último -- salida.pdf

Con mutool como un solo archivo:

$ mutool clean -g entrada.pdf salida.pdf primero-último

Imponiendo un PDF

La imposición PDF puede hacerse con pdfjam, por ejemplo, el desperdicio de papel se puede reducir con pdfnup y pdfbook se puede utilizar para organizar archivos PDF en un formato adecuado para encuadernación de libros.

Inspeccionar metadatos

Con ExifTool:

$ exiftool archivo.pdf

Con Poppler:

$ pdfinfo archivo.pdf

Optimizar, reducir el tamaño de un PDF

Con Ghostscript uno de:

$ ps2pdf -dPDFSETTINGS=/screen in.pdf out.pdf
$ gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -sOutputFile=out.pdf in.pdf

Para distintas configuraciones véase la documentación[enlace roto 2022-09-22].

También está shrinkpdfAUR, un script que envuelve gs.

Rasterizar un PDF

Con GraphicsMagick para convertir una página específica:

$ gm convert -density dpi entrada.pdf[página] salida.jpg

Con Poppler para convertir todas las páginas:

$ pdftoppm -jpeg -r dpi entrada.pdf prefijo_salida

Con Poppler para convertir una página específica:

$ pdftoppm -jpeg -r dpi -f página -singlefile entrada.pdf prefijo_salida

División de páginas PDF

Con mupdf-tools para dividir cada página verticalmente en dos páginas:

$ mutool poster -y 2 in.pdf out.pdf

Se puede utilizar para deshacer imposiciones simples.

Añadir firma.png o imagen a una de las páginas del PDF

Para añadir una imagen en cualquier ubicación en un PDF se puede hacer con ImageMagick (convertir), xv y pdftk. Un script está aquí y otros consejos están aquí.

Herramientas DjVu

  • DjVuLibre proporciona muchas herramientas de línea de órdenes, como por ejemplo ddjvu(1).
  • img2djvu — Codificador DjVu de una sola pasada basado en DjVu Libre e ImageMagick.
https://github.com/ashipunov/img2djvu || img2djvu-gitAUR
  • pdf2djvu — Crea archivos DjVu a partir de archivos PDF.
https://jwilk.net/software/pdf2djvu || pdf2djvuAUR

Convertir DjVu a imágenes

Divide Djvu en páginas separadas:

$ djvmcvt -i input.djvu /ruta/al/directorio/de/salida output-index.djvu

Convierte páginas Djvu en imágenes:

$ ddjvu --format=tiff page.djvu page.tiff

Convierte páginas Djvu en PDF:

$ ddjvu --format=pdf inputfile.djvu ouputfile.pdf

También puedes utilizar --page para exportar páginas específicas:

$ ddjvu --format=tiff --page=1-10 input.djvu output.tiff

esto convertirá las páginas de 1 a 10 en un archivo tiff.

Procesando imágenes

Puedes utilizar scantailor-advanced para:

  • corregir la orientación
  • dividir páginas
  • enderezar
  • recortar
  • ajustar márgenes

Crear DjVu desde imágenes

Hay un script útil en img2djvu-gitAUR.

$ img2djvu -c1 -d600 -v1 ./salida

esto creará out.djvu con 600 DPI de todos los archivos en en directorio ./salida.

Alternativamente, puede probar didjvuAUR, que parece crear archivos más pequeños especialmente en imágenes con fondo bien definido.

Herramientas PostScript

  • pstotext — Convierte archivos PostScript a texto.
https://www.cs.wisc.edu/~ghost/doc/pstotext.htm || pstotextAUR

ps2pdf

ps2pdf es una envoltura alrededor de ghostscript para convertir PostScript a PDF:

$ ps2pdf -sPAPERSIZE=a4 -dOptimize=true -dEmbedAllFonts=true YourPSFile.ps

Explicación:

  • -sPAPERSIZE=something define el tamaño del papel. Para valores válidos de PAPERSIZE, véase [7][enlace roto 2022-09-22].
  • -dOptimize=true permite que el PDF creado se optimice para la carga.
  • -dEmbedAllFonts=true hace que las fuentes se vean siempre bonitas.
Nota: No puede elegir la orientación del papel en ps2pdf. Si su archivo PS de entrada está en buen estado, ya contiene la información de orientación. Si está intentando utilizar un archivo PS encapsulado, tendrá problemas si no cabe en el -sPAPERSIZE especificado, porque los archivos EPS generalmente no contienen información de orientación del papel. Una solución es crear un nuevo documento en la configuración de ghostscript (llámelo p.e. "slide") y utilícelo como -sPAPERSIZE=slide.

Bibliotecas

  • libharu — Biblioteca C para generar documentos PDF.
https://github.com/libharu/libharu || libharu, Lua binding: lua-hpdfAUR
  • PoDoFo — Una biblioteca de C++ para trabajar con el formato de archivo PDF.
https://podofo.sourceforge.net || podofo

Python

  • PDFMiner — Utilidades para extraer, analizar datos de texto de archivos PDF. Incluye pdf2txt, dumppdf, y latin2ascii
https://www.unixuser.org/~euske/python/pdfminer/ || python-pdfminer, pdfminerAUR
  • pdfrw — Una biblioteca puramente Python que lee y escribe archivos PDF.
https://github.com/pmaupin/pdfrw || python-pdfrw, python2-pdfrwAUR
  • PyPDF3 — Una biblioteca puramente Python construida como un toolkit PDF.
https://github.com/sfneal/PyPDF3 || python-pypdf3AUR
  • PyX — Biblioteca de Python para la creación de archivos PostScript y PDF.
https://pyx.sourceforge.net || python-pyx
  • ReportLab — Una solución comprobada de generación de PDF.
https://www.reportlab.com/ || python-reportlab, python2-reportlabAUR

Véase también