Pergunta

Eu preciso comparar grande contagem de arquivos PDF para que o conteúdo óptica. Como os arquivos PDF foi criado em plataformas diferentes e com diferentes versões do software existem diferenças estruturais. Por exemplo:

  • o chunking de texto pode ser diferente
  • a ordem de gravação pode ser diferente
  • A posição pode ser diferir alguns pixels

Deve comparar o conteúdo como um povo humanos e não a estrutura interna. Quero teste para regressões entre diferentes versões do gerador de PDF que usamos.

Foi útil?

Solução

Porque não existe tal ferramenta disponível que temos escrito um. Você pode baixar o i-net conteúdo PDF comparer e usá-lo. Espero que ajuda outros com o mesmo problema. Se você tiver problemas com ele ou você tem um feedback para nós, então você pode entrar em contato com o nosso apoio.

enter descrição da imagem aqui

Outras dicas

Há realmente uma ferramenta diffpdf.

http://www.qtrac.eu/diffpdf.html

A sua fraqueza é que não reagem bem quando adições fazer nova mudança de texto parcialmente para uma nova página. Por exemplo, se o velho página 4 deve ser comparado com o final da página 5 eo início da página 6, você precisa mudar parâmetros para comparar as duas fatias separadamente.

Eu usei um script caseiro que

  • converte todas as páginas em dois PDFs para bitmaps
  • cores páginas de PDF 1 a vermelho sobre branco
  • muda de branco para transparente em páginas de PDF 2
  • sobrepõe cada página do PDF 2 no topo da página correspondente da PDF 1
  • corre conversão / coloração e sobrepondo em paralelo em múltiplos núcleos

Software utilizado:

  • GhostScript para conversão de PDF-to-bitmap
  • ImageMagick para a coloração, transparência e sobreposição
  • inotify para a sincronização de processos paralelos
  • qualquer visualizador de imagens PNG com capacidade para rever o resultado

Pros:

  • implementação simples
  • todas as ferramentas utilizadas são open source
  • grande para encontrar pequenas diferenças no layout

Contras:

  • a conversão é lenta
  • principais diferenças entre PDF (por exemplo, paginação) resulta em uma confusão
  • bitmaps não são zoomable
  • só funciona bem para preto-e-branco de texto e diagramas
  • não fácil de usar GUI

Eu estive procurando uma ferramenta que faria o mesmo no nível de PDF / PostScript.

Veja como nosso script invoca os utilitários (note que ImageMagick usa GhostScript nos bastidores para fazer o PDF-> conversão PNG):

$ convert -density 150x150 -fill red -opaque black +antialias 1.pdf back%02d.png
$ convert -density 150x150 -transparent white +antialias 2.pdf front%02d.png
$ composite front01.png back01.png result01.png # do this for all pairs of images

Eu não parecem ser capazes de ver isso aqui, então aqui está: via superusuário: Como comparar as diferenças entre dois arquivos PDF? (Resposta # 229891, por @slestak) , há

https://github.com/vslavik/diff-pdf

(etapas de construção para Ubuntu Natty pode ser encontrado em get-diff-pdf.sh )

Tanto quanto eu posso ver, ele basicamente sobrepõe o texto / gráficos de cada página do pdf (s), permitindo que você facilmente ver se havia algum muda ...

Felicidades!

Também usei pdftotext (ver resposta de Sklivvz) para gerar versões ASCII de PDFs e wdiff para compará-los.

interruptor -layout de Uso pdftotext para melhorar a legibilidade e ter uma idéia de mudanças no layout.

Para obter a saída de cor agradável de wdiff, use este script wrapper:

#!/bin/sh
RED=$'\e'"[1;31m"
GREEN=$'\e'"[1;32m"
RESET=$'\e'"[0m"
wdiff -w$RED -x$RESET -y$GREEN -z$RESET -n $1 $2

Eu acho que a melhor abordagem seria a de converter o PDF para imagens com uma resolução decente e de fazer uma imagem comparar.

Para gerar imagens a partir de PDF que você pode usar Adobe PDF Library ou a solução sugerida pelo melhor maneira de arquivos PDF Converter para arquivos TIFF .

Para comparar os arquivos TIFF gerados achei GNU tiffcmp (para Windows parte do GnuWin32 tiff ) e tiffinfo fez um bom trabalho. Use tiffcmp -l e contagem do número de linhas de saída para encontrar as diferenças. Se você está feliz de ter uma pequena quantidade de alteração de conteúdo (por exemplo, diferenças anti-aliasing), em seguida, usar tiffinfo para contar o número total de pixels e você pode, então, gerar um valor de diferença percentual.

Pela maneira para qualquer um que faz a comparação PDF simples, onde a estrutura não mudou é possível usar a linha de comando diff e ignorar certos padrões, por exemplo, com GNU diff 2.7:

diff --brief -I xap: -I xapMM: -I /CreationDate -I /BaseFont -I /ID --binary --text

Este ainda tem o problema que ele não sempre pegar mudanças em nomes de fontes gerados.

O nosso produto, PDF Comparador - http://www.premediasystems.com/pdfc.html" - vai fazer isso muito elegante e eficiente também não é livre, e é um Mac OS X única aplicação

..

Com base em suas necessidades, um convertido ao solução texto seria o mais fácil e mais direto. Eu achava que a idéia bitmap foi muito legal.

software pdf Bluebeam vai fazer isso para você

Você pode batch pdf comparar arquivos com Tarkware Pdf Comparer. Mas não é gratuito e não requer Adobe Acrobat.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top