$ whoami

Kotz

projetos pessoais

GitHub Email

$ ls ~/codes

CLI em Rust que compara dois PDFs em três níveis — número de páginas, texto (diff linha a linha) e visual (diff pixel a pixel renderizado via PDFium) — com tolerância a pequenas variações de renderização entre exportações diferentes do mesmo documento.

Rust PDFium CLI Paralelismo
  • Paraleliza renderização em processos (PDFium não é thread-safe) e faz diff/gravação em pipeline de threads — até 6× mais rápido.
  • Alinha páginas com dimensões levemente diferentes e tolera deslocamento subpixel de glifos, evitando falsos positivos.
  • Monitor de CPU em tempo real no terminal e visualizador HTML/nativo lado a lado, sobreposto ou com diff destacado.

Uso

./pdfcomparer arquivo_a.pdf arquivo_b.pdf

Opções

-o, --output <DIR> padrão: diff_output
Diretório para as imagens de diff
--dpi <N> padrão: 150
Resolução da renderização
--tolerance <0-255> padrão: 8
Tolerância por canal de cor (ignora ruído de anti-aliasing)
--shift-tolerance <px> padrão: 1
Raio de tolerância a deslocamento subpixel (0 = exato)
-j, --threads <N> padrão: nº de núcleos
Número de threads de trabalho
-p, --processes <N> padrão: nº de núcleos
Número de processos para paralelizar a renderização
--no-cpu-monitor
Desativa o monitor de CPU em tempo real
--viewer
Abre no navegador um visualizador das páginas divergentes
--viewerg
Abre um visualizador gráfico nativo (janela própria)
--skip-text
Pula a comparação de texto
--skip-visual
Pula a comparação visual

Código de saída: 0 se os PDFs são equivalentes, 1 se houver diferenças — útil em scripts e CI.

Testado apenas em Linux