É possível inverter as cores do texto e do plano de fundo em um PDF ao imprimir?

18

Eu tenho um PDF existente com um fundo totalmente preto e todo o texto é branco.

Existe uma maneira de fazer com que o texto seja impresso em preto e o fundo em preto não seja impresso?

Eu tenho Bluebeam e Adobe PDF.

Ron
fonte

Respostas:

12

Curiosamente, existem casos de uso "legítimos" para isso, principalmente pessoas com baixa visão. O Acrobat e outros leitores podem substituir as cores para exibição (por exemplo, Ctrl-I no Evince e através do menu Acessibilidade no Acrobat Reader X), mas estranhamente não para impressão. O que você pode fazer, no entanto, é usar o conversor pdf2ps do GhostScript (ou um driver de impressora PS falso que apenas grava o arquivo) para obter um arquivo postscript e depois editá-lo colocando

{1 exch sub} settransfer 

como a primeira linha do arquivo e, em seguida, imprimindo esse arquivo PostScript. Dessa forma, você obtém uma renderização mais fiel do documento do que faria se convertesse o PDF em uma imagem e a invertesse.

Sempre aprendendo
fonte
11
Eu fiz algo parecido com isto (no Windows) instalando um driver de impressora PostScript e depois solicitando a impressão em arquivo para capturar a saída. O mesmo conceito deve funcionar em outros sistemas operacionais. Observe que os arquivos PostScript são apenas arquivos de texto que podem ser editados com a maioria dos editores de texto.
martineau
Usando uma combinação de pdf2pse ps2pdfeu posso exportar o pdf original para um arquivo pdf invertido. Estou curioso sobre o que a linha proposta faz e se é possível "reverter" de volta às cores originais.
tigerjack89
3

Existe uma maneira fácil e técnica .

A maneira técnica é que, se você tiver o Ghostscript instalado e a .../binpasta adicionada ao PATH, poderá inverter as cores do seu PDF chamando algo semelhante ao seguinte na linha de comando:

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

Observe que gswin64(localizado na .../binpasta) pode ser chamado gswin32se você baixou a versão de 32 bits ou algo totalmente diferente se você estiver em um sistema * nix em vez do Windows e que obviamente deve substituir C:/outputfile.pdfe C:/inputfile.pdfpelos caminhos reais do seu arquivo de entrada e local do arquivo de saída pretendido. Também tome cuidado para que, na minha experiência, às vezes possa haver algum problema se você tiver espaços nos diretórios de caminho, mesmo se colocar aspas em torno deles.

Também vale a pena notar que algumas versões do Ghostscript podem falhar nisso, a menos que você coloque a {1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransferlinha em um .psarquivo separado e apenas adicione o .psarquivo ao seu comando.

(Esta é realmente apenas uma versão mais detalhada da Mateen Ulhaqresposta acima)

A maneira mais fácil é que, se você não pode se incomodar em executar qualquer uma das opções acima, pode usar o site InvertPDF.com que fará tudo isso (além de um pouco mais) por você. Este é o meu próprio site, e me deparei com esse tópico enquanto tentava construí-lo. Espero que essa resposta torne mais fácil para a próxima pessoa tentar obter algo semelhante ou criar seu próprio script offline.

Jack Crawford
fonte
2

De acordo com esta página , você pode conseguir isso com o ImageMagick. No entanto, o PDF será convertido em imagens antes de ser invertido. Se a qualidade não for suficiente por causa disso, você poderá ajustar o número de DPI.

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

Substitua 300pelo DPI desejado e 1-999pelo intervalo de páginas desejado.

NOTA : Este comando é para uma versão mais antiga do ImageMagick e você precisará garantir que os utilitários herdados estejam instalados.

Utilitários herdados

bdr9
fonte
@ fixer1234 Obrigado por trazer isso à minha atenção. Eu adicionei um link para essa página no Internet Archive.
bdr9
1

No Acrobat Reader X

Editar-> Preferências-> acessibilidade Selecione: Substituir cores do documento Selecione: Cor personalizada

Defina as opções restantes de acordo com a preferência pessoal.

Nota: Isso não altera o documento, apenas sua visão e a forma como ele é impresso.

Bas
fonte
Não imprime de forma diferente do que a AFAICT originais
mike65535
1

Nenhuma das soluções postadas anteriormente funcionou para mim, então escrevi esse script simples do bash. Depende pdftke awk. Basta copiar o código em um arquivo e torná-lo executável. Em seguida, execute-o como:

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

O script:

#!/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

Esse script funciona para mim, mas sua milhagem pode variar. Em particular, às vezes as cores são listadas no formulário em 1.000 1.000 1.000vez de 1 1 1. O script pode ser facilmente modificado conforme necessário. Se desejar, também podem ser adicionadas conversões de cores adicionais.

John Cole
fonte
0

Se você deseja uma escala de cinza mais agradável e não tem problema em converter seu documento em imagens, jogue-o em um arquivo .bat e simplesmente arraste seu PDF para o arquivo .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

Requer que o Ghostscript seja instalado para o primeiro comando (especifique o caminho correto). Requer que o ImageMagick com utilitários legados seja instalado para o segundo comando.

Mateen Ulhaq
fonte
0

Muitos sugeriram o uso do método Editar-> Preferências-> Acessibilidade , mas, infelizmente, não funcionou para mim. Depois de testar e brincar com a configuração do PDF, consegui o que queria!

  • Vá para Imprimir (Ctrl + P)
  • Clique em Configurações avançadas
  • Verificar configurações: personalizado
  • Clique em Saída no painel esquerdo
  • Em Cor: selecione Cinza composto
  • Marque a caixa Negar
  • Clique em OK

Isso deve fazer o truque!

Nota importante!
Eu sugeriria imprimir este arquivo em um PDF do que diretamente. Especialmente se você pretende imprimir várias páginas em uma página, pois o espaço em branco também ficará preto!

Por fim, se você deseja imprimir o documento como outro PDF, em Dimensionamento e manuseio de páginas , clique em Ajustar e marque as duas caixas - " Escolha o tamanho do papel quando necessário " e Use tamanho de papel personalizado quando necessário . (Para evitar espaços em branco indesejados)

Espero que esta ajuda!

Xin Yi
fonte
Esta é específico para o driver de impressora
Mark Jeronimus
-1

O uso do ImageMagick funcionou para mim, embora o arquivo de saída seja cerca de 50 vezes maior que o de entrada.

convert -density 300 -negate input_file.pdf output_file.pdf
Catchaca
fonte
A linha de comando (no luinux) era: convert -density 300 -negate input_file.pdf output_file.pdf
Catchaca