Tenemos una impresora en nuestra oficina que imprime archivos PDF desde una memoria USB. Imprime bien la mayoría de los archivos, pero tiene problemas con algunos, especialmente los generados con Latex. Algunos archivos PDF simplemente se niega a imprimir, algunos archivos PDF que imprime con fuente tipo mensajería, y algunos imprime bien, excepto las ecuaciones.
Estoy buscando una manera de "destilar" archivos PDF en un formato seguro para imprimir. Simplificando / normalizando el PDF hasta el punto de que cualquier renderizador lo renderizará correctamente, o simplemente haciendo de cada página una imagen ráster de 600 ppp en el PDF. (Podría dividir el PDF en imágenes ráster individuales y combinarlas manualmente, pero quiero algo que tenga secuencias de comandos).
El tamaño del archivo de salida no importa, siempre que se imprima, tiene un tamaño de papel A4 (o el original) y una resolución de 300 ~ 600 ppp.
Respuestas:
Después de probar sin éxito algunas opciones para representar las fuentes como contornos (incluida esta pregunta y pstoedit), descubrí una forma de convertir fácilmente el PDF en forma rasterizada usando ImageMagick:
Esto crea un PDF renderizado a 600 ppp, con antialias desactivado (innecesario en esa resolución).
Los archivos de salida son enormes (~ 30 MB para un documento de 8 páginas) y extremadamente lentos para imprimir, pero deberían funcionar siempre que la impresora tenga suficiente memoria para procesar el contenido.
fuente
convert
no conserva el contenido de los formularios que podría haber completado. (Quería rasterizar un PDF para asegurarme de que el contenido del formulario se vea igual en todas partes, en particular, en primer lugar, se mostrarán en cada visor de PDF). Para preservar el contenido del formulario, useevince
(o lo que sea aplicación que usó para completar el formulario) para imprimir el documento "en un archivo" - este es otro PDF donde el contenido del formulario se ha convertido en parte del texto normal. Entonces aún puede rasterizar este nuevo PDF, según sus necesidades.+antialias
) en lugar de desactivarlo (-antialias
).+antialias
deshabilita el antialiasing: imagemagick.org/script/command-line-options.php?#antialiasUsar imagemagick no es, en mi experiencia, estable con altas resoluciones y / o archivos grandes. Muchas impresoras pueden hacer 1200 ppp o más, por lo que el archivo rasterizado debe tener una resolución similar. Una mejor solución es usar pdf2djvu, que es más rápido, más robusto e incluso crea archivos con un tamaño que a menudo rivaliza con el PDF original a 1200 o 2400 ppp. Estos archivos se pueden ver e imprimir usando okular o evince.
Ejemplo:
fuente
Creo que mi forma preferida actual de hacerlo es:
Use pdftoppm para convertir el archivo PDF en una serie de imágenes.
Use img2pdf para crear un archivo pdf a partir de esas imágenes.
La buena noticia es que puede crear un script bash para automatizar todo el proceso por usted.
Aquí hay un script bash que destilará todos los archivos pdf dentro de un directorio y preservará los originales en un nuevo directorio "originales".
Créditos: img2pdf answer & pdftoppm answer & bash script help: 1 & 2
(Nota al margen ) Puede instalar img2pdf usando:
fuente
Otra alternativa es convertir a imágenes a través de algo como
pdfimages
Desde la página de manual, "Pdfimages guarda imágenes de un archivo de Formato de Documento Portátil (PDF) como Portable Pixmap (PPM), Portable Bitmap (PBM) o archivos JPEG. Pdfimages lee el archivo PDF PDF-file, escanea una o más páginas, y escribe un archivo PPM, PBM o JPEG para cada imagen, image-root-nnn.xxx, donde nnn es el número de imagen y xxx es el tipo de imagen (.ppm, .pbm, .jpg) ".
Luego use pdftk para volver a convertir a PDF https://www.pdflabs.com/docs/pdftk-cli-examples/
Finalmente, imprima este archivo. Obviamente, la pregunta clave es cómo escribir esto.
Puede automatizar esto a través de una página web simple de algún tipo para los usuarios. Finalmente, imprimen el archivo convertido y debería tener un mayor rendimiento e impresión de trabajo.
fuente