Nota: este repositório é fornecido como está e o código não está sendo desenvolvido ativamente. Se você deseja melhorá-lo, agradecemos muito: faça as alterações e envie uma solicitação pull, terei prazer em mesclá-lo ou ajudá-lo a finalizá-lo. No entanto, não espere qualquer tipo de suporte, incluindo implementação de solicitações de recursos ou correções. Se você não é um desenvolvedor e/ou está disposto a colocar a mão na massa, esta ferramenta provavelmente não é para você.
diff-pdf é uma ferramenta para comparar visualmente dois PDFs.
São necessários dois arquivos PDF como argumentos. Por padrão, sua única saída é o código de retorno, que é 0 se não houver diferenças e 1 se os dois PDFs forem diferentes. Se for dada a opção --output-diff
, ele produz um arquivo PDF com diferenças visualmente destacadas:
$ diff-pdf --output-diff=diff.pdf a.pdf b.pdf
Outra opção é comparar os dois arquivos visualmente em uma GUI simples, usando o argumento --view
:
$ diff-pdf --view a.pdf b.pdf
Isso abre uma janela que permite visualizar as páginas dos arquivos e ampliar os detalhes. Também é possível deslocar as duas páginas uma em relação à outra usando as setas Ctrl (setas Cmd no MacOS). Isto é útil para identificar diferenças apenas de tradução.
Veja o resultado de $ diff-pdf --help
para obter uma lista completa de opções.
A versão pré-compilada da ferramenta para Windows está disponível como parte da versão mais recente como um arquivo ZIP, que contém tudo que você precisa para executar o diff-pdf. Funcionará em qualquer lugar onde você o descompactar.
Alternativamente, se você usa o Chocolatey, você pode instalar o diff-pdf no Windows com:
$ choco install diff-pdf
No Mac, se você usa o Homebrew, você pode usá-lo para instalar o diff-pdf com ele:
$ brew install diff-pdf
No Mac, se você usa Macports, você pode instalar o diff-pdf com:
$ port install diff-pdf
No Fedora e CentOS 8:
$ sudo dnf install diff-pdf
A versão pré-compilada do openSUSE pode ser baixada do serviço de compilação openSUSE.
O sistema de compilação usa Automake e, portanto, é necessário um ambiente Unix ou semelhante ao Unix (Cygwin ou MSYS). A compilação é feita da maneira usual:
$ ./bootstrap
$ ./configure
$ make
$ make install
(Observe que a primeira etapa, executar o script ./bootstrap
, só é necessária ao construir fontes verificadas no sistema de controle de versão, ou seja, quando os arquivos configure
e Makefile.in
estão faltando.)
Quanto às dependências, o diff-pdf requer as seguintes bibliotecas:
$ sudo yum groupinstall "Development Tools"
$ sudo yum install wxGTK wxGTK-devel poppler-glib poppler-glib-devel
$ sudo apt-get install make automake g++
$ sudo apt-get install libpoppler-glib-dev poppler-utils libwxgtk3.2-dev
$ sudo apt-get install make automake g++
$ sudo apt-get install libpoppler-glib-dev poppler-utils libwxgtk3.0-gtk3-dev
Instale ferramentas de linha de comando para Xcode:
$ xcode-select --install
e instale o Homebrew ou MacPorts para gerenciar dependências, então:
$ brew install automake autoconf wxmac poppler cairo pkg-config
ou
$ sudo port install automake autoconf wxWidgets-3.0 poppler cairo pkgconfig
Observe que muito mais bibliotecas são necessárias no Windows, onde nenhuma das bibliotecas que Cairo e Poppler usam normalmente estão disponíveis. No momento em que este artigo foi escrito, a cobertura transitiva das dependências acima incluía fontconfig, freetype, glib, libpng, pixman, gettext, libiconv, libjpeg e zlib.
Primeiro de tudo, você precisará de uma instalação funcional do MinGW com ambiente MSYS2 e compilador C++. Instale o MSYS2 seguindo as instruções.
Depois de instalado, inicie o shell MSYS2 MinGW. Irá abrir uma janela de terminal; digite cd /c/directory/with/diff-pdf
para ir para o diretório com fontes diff-pdf.
Você precisará instalar componentes MSYS adicionais que normalmente não são incluídos no MSYS, usando estes comandos:
$ pacman -Syu
$ pacman -S automake autoconf pkg-config make zip pactoys
$ pacboy -S gcc:p poppler:p wxWidgets:p
Construa diff-pdf da mesma forma que nas instruções para Unix acima:
$ ./bootstrap # only if building from git repository
$ ./configure
$ make
Para construir um arquivo ZIP, todas as DLLs serão executadas
$ make windows-dist
No Unix, o make install
usual é suficiente.
No Windows a instalação não é necessária, basta copiar os arquivos em algum lugar. Se você construiu seguindo as instruções acima, todos os arquivos necessários estarão no arquivo ZIP criado.