Pular para o conteúdo

Como usar pdfl pixelcompare --viewer

Um relatório diz que a página 3 mudou 0,04%. Ele não diz se aquilo é um hífen perdido ou um preço errado. Para isso é preciso olhar, e o --viewer é com o que você olha.

Terminal window
pdfl pixelcompare cf_a.pdf cf_b.pdf --viewer pixelcompare/

Isso grava uma pasta: três PNGs por página e um index.html. Sem servidor, sem CDN, sem nada para instalar — é só abrir o arquivo. Zipe a pasta e quem precisa aprovar a reimpressão também abre, numa máquina sem nada instalado.

O visualizador aberto na página 3 de 286: três painéis lado a lado, a tira de páginas no topo e uma barra de corte atravessando os três

Três painéis, sempre na mesma página.

Painel O que ele mostra
Original a página do primeiro arquivo, intocada
New a página do segundo arquivo, intocada
Difference os dois, com o que mudou pintado por cima

A linha do topo é o resumo: quais arquivos foram comparados, 100 of 286 page(s) differ · worst 0.11%, e para a página em que você está, page 3 · 0.04% of pixels differ.

Um par de barras — uma em pé, outra deitada — atravessa os três painéis no mesmo lugar, e elas se movem nos três ao mesmo tempo. Elas seguem o ponteiro. Não há o que agarrar nem onde mirar: o cruzamento fica onde o mouse estiver.

No Difference as barras cortam. O arquivo novo aparece à direita da barra em pé e abaixo da deitada; o original aparece em todo o resto. Deixada em paz, a barra deitada fica no topo, o que transforma a em pé num corte vertical de altura inteira. Arraste a deitada para baixo quando o que você procura corre numa faixa em vez de numa coluna.

No Original e no New as mesmas barras são réguas, na mesma coluna e na mesma linha da página. Assim, o que o corte revela pode ser localizado em qualquer uma das páginas intocadas sem medir no olho.

As duas posições são porcentagens da página, não do painel, então sobrevivem a trocar de página e a redimensionar a janela.

Sobre qualquer um dos painéis, as diferenças são pintadas no lugar, e a cor diz de que tipo são:

Cor Significado
Vermelho tinta que sumiu no arquivo novo
Verde tinta que é nova nele
Azul mesmo peso, cor diferente

Que é como se parece uma mudança de uma letra na página 3 de um documento de 286 páginas:

Detalhe do painel de diferença: a palavra outubro sobreposta em vermelho e verde onde virou outubrb

outubro virou outubrb. Vermelho é a letra que saiu, verde a que chegou. Nada mais na página se moveu, e uma pessoa rolando duas janelas lado a lado teria passado direto.

A tira do topo são as páginas, cada uma com quanto dela difere.

Ele já abre nas páginas que diferem. Neste documento são 100 de 286; o All traz as outras 186 de volta. As setas e ← → seguem o filtro, pulando o que a tira está escondendo em vez de parar nele, e mudar para a tira filtrada enquanto você está numa página inalterada leva para a mais próxima que mudou.

Quando nada difere, o botão diz isso e fica desabilitado, em vez de filtrar a tira até não sobrar nada.

A roda dá zoom, até 8×, e os três painéis ampliam juntos em torno do ponto sob o ponteiro — então o que você estava olhando continua onde estava. Diminuir para antes da página inteira não acontece: o painel já tem o tamanho de conter a página, e abaixo disso não há nada de útil.

Segurar qualquer um dos botões do mouse e mover arrasta a própria página, de novo nos três ao mesmo tempo, na velocidade do ponteiro em qualquer zoom. É assim que se alcança um canto depois de ampliar. As barras continuam seguindo o ponteiro enquanto você arrasta, e mantêm a espessura em qualquer zoom.

O Reset view devolve zoom, deslocamento e barras ao ponto de partida. Ele fica desabilitado enquanto não há o que desfazer.

Trocar de página recomeça da página inteira. Um zoom e um deslocamento pertencem à página em que foram feitos; carregados adiante, cairiam onde quer que a próxima página tenha alguma coisa.

O visualizador mostra o que a comparação encontrou, então as flags que mudam a comparação mudam o que você vê.

Terminal window
# Olhar mais de perto. 150 dpi é o padrão; 300 enxerga mais e demora mais
pdfl pixelcompare a.pdf b.pdf --viewer diff/ --dpi 300
# Ignorar páginas que mudaram menos de 0,1% da própria área
pdfl pixelcompare a.pdf b.pdf --viewer diff/ --max-diff 0.1
# Só uma parte do documento
pdfl pixelcompare a.pdf b.pdf --viewer diff/ --pages 1-10,42
# Absorver o ruído da renderização antes de comparar
pdfl pixelcompare a.pdf b.pdf --viewer diff/ --threshold 0.1 --blur 1

Mais uma vale entender. Um arquivo exportado de novo a partir da mesma origem costuma cair um ou dois pixels fora, e sem compensar isso a borda de cada letra conta como diferença. Então a comparação procura um deslocamento único da página inteira e avisa quando encontra:

page 3: 2.10% of the pixels differ, in 44 area(s) (aligned by 2, -1 px)

Desligue com --no-align quando a posição for o que você está conferindo.

O capítulo do CLI tem todas as opções, a saída de progresso e as notas de desempenho. Também há aqui artigos sobre o que um arquivo errado custa depois de entrar na máquina e sobre quando usar o compare em vez dele.

DigitalOceanObrigado à DigitalOcean pela hospedagem deste site.