¿Es posible invertir texto y colores de fondo en un PDF al imprimir?

18

Tengo un PDF existente con un fondo totalmente negro y todo el texto es blanco.

¿Hay alguna manera de hacer que el texto se imprima en negro y que el fondo negro no se imprima en absoluto?

Tengo Bluebeam y Adobe PDF.

Ron
fuente

Respuestas:

12

Curiosamente, hay casos de uso "legítimos" para esto, especialmente las personas con baja visión. Acrobat y otros lectores pueden anular los colores para mostrar (por ejemplo, Ctrl-I en Evince y a través del menú Accesibilidad en Acrobat Reader X), pero extrañamente no para imprimir. Sin embargo, lo que puede hacer es usar el convertidor pdf2ps de GhostScript (o un controlador de impresora PS falso que solo escribe el archivo) para obtener un archivo postscript, luego edite el archivo colocando

{1 exch sub} settransfer 

como la primera línea del archivo y luego imprimir ese archivo PostScript. De esa forma, obtendrá una representación más fiel del documento de la que obtendría si convirtiera el PDF en una imagen y lo invirtiera.

Siempre aprendiendo
fuente
1
He hecho algo como esto (en Windows) instalando un controlador de impresora PostScript y luego diciéndole que imprima en un archivo para capturar la salida. El mismo concepto debería funcionar en otros sistemas operativos. Cabe señalar que los archivos PostScript son solo archivos de texto que se pueden editar con la mayoría de los editores de texto.
Martineau
Utilizando una combinación de pdf2psy ps2pdfpuedo exportar el pdf original a un archivo pdf invertido. Tengo curiosidad por saber qué hace la línea propuesta y si es posible "volver" a los colores originales.
tigerjack89
3

Hay una manera fácil y técnica .

La forma técnica es que si tiene instalado Ghostscript y tiene su .../bincarpeta agregada a su RUTA, debería poder invertir los colores de su PDF llamando a algo similar a lo siguiente desde la línea de comandos:

gswin64 -o C:/outputfile.pdf -sDEVICE=pdfwrite -c "{1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransfer" -f C:/inputfile.pdf

Tenga en cuenta que gswin64(se encuentra en la .../bincarpeta) podría llamarse gswin32si descargó la versión de 32 bits, o algo completamente diferente si está en un sistema * nix en lugar de Windows, y que obviamente debe reemplazar C:/outputfile.pdfy C:/inputfile.pdfcon las rutas reales de su archivo de entrada y ubicación prevista del archivo de salida. También tenga cuidado de que, en mi experiencia, a veces puede haber un poco de problema si tiene espacios en sus directorios de ruta, incluso si pone comillas alrededor de ellos.

También vale la pena señalar que iirc algunas versiones de Ghostscript pueden fallar en esto a menos que coloque la {1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransferlínea en un .psarchivo separado y simplemente agregue el .psarchivo a su comando.

(Esta es realmente una versión más detallada de Mateen Ulhaqla respuesta anterior)

La manera fácil es que si no se molesta en hacer nada de lo anterior, puede usar el sitio web InvertPDF.com que hará todo esto (y un poco más) por usted. Este es mi propio sitio web, y me topé con este hilo mientras intentaba construirlo. Espero que esta respuesta facilite que la próxima persona que intente lograr algo similar o cree su propio script fuera de línea.

Jack Crawford
fuente
2

De acuerdo con esta página , puede lograrlo con ImageMagick. Sin embargo, el PDF se convertirá en imágenes antes de invertirlo. Si la calidad no es suficiente debido a esto, debería poder ajustar el número de DPI.

convert -density 300 -negate "input.pdf[1-999]" output.pdf

Reemplace 300con su DPI deseado y 1-999con su rango de página deseado.

NOTA : Este comando es para una versión anterior de ImageMagick y deberá asegurarse de que las utilidades heredadas estén instaladas.

Utilidades heredadas

bdr9
fuente
@ Fixer1234 Gracias por llamar mi atención sobre esto. He agregado un enlace a esa página en Internet Archive.
bdr9
1

En Acrobat Reader X

Editar-> Preferencias-> accesibilidad Seleccionar: reemplazar colores del documento Seleccionar: color personalizado

Establezca las opciones restantes de acuerdo con sus preferencias personales.

Nota: Esto no cambia el documento, solo su vista y la forma en que se imprime.

Bas
fuente
No se imprime de manera diferente que el AFAICT original
mike65535 del
1

Ninguna de las soluciones publicadas anteriormente funcionó para mí, así que escribí este simple script bash. Depende de pdftky awk. Simplemente copie el código en un archivo y hágalo ejecutable. Luego ejecútalo como:

$ /path/to/this_script.sh /path/to/mypdf.pdf

La secuencia de comandos:

#!/bin/bash                                                                      
pdftk "$1" output - uncompress | \                                               
awk '                                                                            
  /^1 1 1 / {                                                                    
    sub(/1 1 1 /,"0 0 0 ",$0);                                                   
    print;                                                                       
    next;                                                                        
  }                                                                              

  /^0 0 0 / {                                                                    
    sub(/0 0 0 /,"1 1 1 ",$0);                                                   
    print;                                                                       
    next;                                                                        
  }                                                                              

  { print }' | \                                                                 
pdftk - output "${1/%.pdf/_inverted.pdf}" compress

Este script funciona para mí, pero su kilometraje puede variar. En particular, a veces los colores se enumeran en el formulario en 1.000 1.000 1.000lugar de 1 1 1. El script se puede modificar fácilmente según sea necesario. Si lo desea, también se pueden agregar conversiones de color adicionales.

John Cole
fuente
0

Si desea una escala de grises más agradable y está de acuerdo con convertir su documento en imágenes, tírelo a un archivo .bat y luego simplemente arrastre su PDF al archivo .bat.

"C:\Program Files\gs\gs9.20\bin\gswin64c" -o inverted.pdf -sDEVICE=pdfwrite -c "{1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransfer" -f %1
convert -brightness-contrast 3,-18 -compress lzw  -density 300 -colorspace Gray inverted.pdf output.pdf

Requiere que se instale Ghostscript para el primer comando (especifique la ruta correcta). Requiere que ImageMagick con utilidades heredadas se instale para el segundo comando.

Mateen Ulhaq
fuente
0

Muchos sugirieron usar el método Editar-> Preferencia-> Accesibilidad , pero lamentablemente no funcionó para mí. Después de probar y jugar con la configuración de PDF, ¡logré obtener lo que quería!

  • Ir a Imprimir (Ctrl + P)
  • Haga clic en Configuración avanzada
  • Comprobar configuración: personalizada
  • Haga clic en Salida desde el panel izquierdo
  • Bajo color: seleccione gris compuesto
  • Marque la casilla Negar
  • Haga clic en Aceptar

¡Esto debería funcionar!

¡Nota IMPORTANTE!
Sugeriría imprimir este archivo a un PDF que directamente. ¡Especialmente si tiene la intención de imprimir varias páginas en una página, ya que el espacio en blanco también se volverá negro!

Por último, si va a imprimir el documento como otro PDF, en Tamaño y manejo de la página , haga clic en Ajustar y marque ambas casillas: " Elegir tamaño de papel cuando sea necesario " y Usar tamaño de papel personalizado cuando sea necesario . (Para evitar espacios en blanco no deseados)

¡Espero que esto ayude!

Xin Yi
fuente
Esto es específico para su controlador de impresora
Mark Jeronimus
-1

Usar ImageMagick funcionó para mí, aunque el archivo de salida es aproximadamente 50 veces más grande que el de entrada.

convert -density 300 -negate input_file.pdf output_file.pdf
Catchaca
fuente
La línea de comando (en luinux) era: convert -density 300 -negate input_file.pdf output_file.pdf
Catchaca