Compara dos archivos PDF página a página. Detecta diferencias visuales con sensibilidad configurable, alineación automática y procesamiento paralelo. Diseñado para pipelines de CI/CD.
Las goroutines y channels orquestan los workers de renderizado y comparación sin overhead.
Cero dependencias en tiempo de ejecución. Un ejecutable autónomo para Linux, macOS y Windows.
El recolector de basura de Go mantiene el uso de memoria al mínimo incluso con cientos de páginas.
Código máquina nativo. Sin JVM, sin intérprete — arranca en milisegundos y se mantiene rápido.
Preciso, configurable y rápido.
Renderiza cada página en DPI configurable (150–300+) y compara imágenes píxel a píxel usando un umbral de distancia de color que tú controlas.
Detecta y compensa desplazamientos globales de página automáticamente. Offset de búsqueda y umbral de diff configurables para activar la alineación.
Los archivos A y B siempre se renderizan en paralelo. Configura workers de renderizado por archivo (-rw) y workers de comparación (-j) de forma independiente.
Genera un informe en PDF que resalta todas las regiones modificadas. Ruta de salida configurable con -o.
Compara solo las páginas que necesitas. Soporta rangos como 1-10 o listas mixtas como 1,3,7-12.
El idioma del informe se detecta automáticamente desde la variable de entorno LANG. Soporta inglés, portugués (pt-br) y español.
pdfcomparer -a ARCHIVO_A -b ARCHIVO_B [opciones]
| Flag | Tipo | Descripción |
|---|---|---|
-a | string | Primer archivo PDF (original) |
-b | string | Segundo archivo PDF (modificado) |
| Flag | Tipo | Descripción |
|---|---|---|
-o |
string | PDF de informe de salida (por defecto: diff_report.pdf) |
-lang |
string | Idioma del informe: en, pt-br, es (por defecto: detectado automáticamente vía LANG) |
| Flag | Tipo | Descripción |
|---|---|---|
-t |
float |
Umbral de distancia de color 0.0–1.0 (por defecto: 0.05) 0.01 = diferencias muy sutiles | 0.10 = solo diferencias obvias |
-min-diff-pct |
float |
Diff% mínimo para considerar una página diferente (por defecto: 0.0) Usa 3.0 con -align=true para suprimir ruido de anti-aliasing |
-aa-blur |
int |
Radio de desenfoque antes de comparar (0 = desactivado) 1 = elimina anti-aliasing de 1 px | 2 = suprime gradientes de hasta 3 px |
| Flag | Tipo | Descripción |
|---|---|---|
-dpi |
int |
Resolución de renderizado (por defecto: 150) 150 = rápido, bueno para texto | 300 = alta calidad, detecta diffs en imágenes |
-pages |
string | Rango de páginas, ej.: "1-10" o "1,3,7-12" (por defecto: todas) |
-rw |
int |
Workers de renderizado por archivo; A y B siempre se renderizan en paralelo (por defecto: 2) ej.: -rw 4 lanza 4 procesos pdftoppm por archivo (8 en total) |
-j |
int | Workers de comparación (por defecto: 4) |
| Flag | Tipo | Descripción |
|---|---|---|
-align |
bool | Auto-alinear: detecta y compensa desplazamiento global cuando el diff de la página es alto (por defecto: true) |
-align-thr |
float | Diff% aproximado por encima del cual se intenta la alineación (por defecto: 3.0) |
-max-offset |
int | Offset máximo en píxeles al alinear (por defecto: 50) |
| Flag | Tipo | Descripción |
|---|---|---|
-machine-id |
— | Imprime el ID de licencia de esta máquina y sale (envíalo para obtener una licencia de uso) |
-license |
string |
Ruta al archivo de licencia (.lic) O define PDFCOMPARE_LICENSE, o coloca pdfcompare.lic junto al binario |
-license-info |
— | Muestra la información del licenciatario y sale |
Comparación básica
Alta calidad, primeras 50 páginas
Paralelismo máximo
Suprimir ruido de anti-aliasing
Obtener ID de máquina para licencia
Verificar información de licencia
Licencia por máquina. Todas las funciones incluidas desde el primer día.
Para adquirir, ejecuta pdfcomparer -machine-id y envía el ID a
[email protected]