martes, 21 de junio de 2016

Solución sencilla para los ficheros PDF "EOF marker not found"

Concretemos el problema:
PDF es un formato de almacenamiento para documentos digitales (aunque luego acabemos imprimiéndolos) independiente de la plataforma de software o de los dispositivos hardware en que lo estemos utilizando. No deja de ser una versión modificada del lenguaje de descripción de páginas postscript (PS), que viene desde muy antiguo (1979). Sus generadores fundaron la empresa de software ADOBE. Eso nos lleva a que no exista un verdadero editor de documentos PDF estilo Adobe Acrobat, que Adobe llama "edito PDF original". Es decir, para editar un PDF en Linux las posibilidades son limitadas:
1. Generarlo de nuevo desde una aplicación con la capacidad de exportar. Eso exige que seamos los autores originales y/o que conservemos/tengamos la versión inicial en otro formato. En el caso de libreoffice permite al exportar guardar el formato de libreoffice y es sencillo. Si las aplicaciones no permiten exportar siempre nos queda imprimir como PDF, que en Linux es natural y forma parte de la idiosincrasia del sistema.
2. Ediciones limitadas a cortar y añadir páginas o rotarlar (PDF-shuffler, PDFMod GUI o pdftk y alguna más en CLI...)
3. Añadir algo POR ENCIMA del original (xournal)

En resumen, no tenemos un editor en formato libre similar a Abobe Acrobat. Eso nos lleva al problema en el que me he encontrado. Una revista de divulgación en la que publicamos de vez en cuando artículos nos permite capturar su PDF completo desde el que podemos extraer fácilmente una copia de nuestros artículos borrando las páginas innecesarias; en general utilizo pdf-shuffler. Sin embargo, después de haber eliminado más de 80 páginas no deja guardar el resultado debido a


EOF marker not found es No se ha encontrado "End of file marker". Simplemente el editor ha añadido "algo" después del fin natural del fichero pdf; y como hemos visto en Linux no podemos editar el contenido, solo manipularlo parcialmente. Y la incapacidad de "saltar" este problema es un error conocido en pdf-shuffler. Además, pdfmod no permite ni siquiera abrir el fichero al detectar ya al inicio el error. Generalmente este problema lo resolvía en el terminal mediante pdftk, editándolo por comándos, al extraer las páginas que quería conservar, pero pdftk ya no está disponible en Fedora (las razones las podemos ver aquí).
Por ahora la solución que he encontrado es usar las poppler-utils y a través de pdfunite he generado un pdf nuevo uniéndole otro pdf al final.

pdfunite fichero.error.eof.pdf otro.pdf output.editable.pdf

Queda editarlo en pdf-shuffler o pdfmod, eliminando las páginas que no quieres mantener y listo. Tendremos que buscar alternativas a pdftk. Hay algunas sugerencias, (1, 2), o las que señalan en la página de Fedora que hemos visto, pero aun no he probado.

1 comentario:

  1. Hola.

    LibreOffice Draw abre los PDFs de forma nativa y permite editarlos. Los cambios se guardan mediante la función "Exportar a PDF".

    Un saludo.

    ResponderEliminar