문제

광학 콘텐츠를 위해 많은 양의 PDF 파일을 비교해야 합니다.PDF 파일은 서로 다른 플랫폼과 서로 다른 소프트웨어 버전에서 생성되었기 때문에 구조적 차이가 있습니다.예를 들어:

  • 텍스트 청크가 다를 수 있습니다.
  • 쓰기 순서는 다를 수 있습니다
  • 위치는 일부 픽셀과 다를 수 있습니다.

내부 구조가 아니라 내용을 인간 사람처럼 비교해야 한다.우리가 사용한 PDF 생성기의 여러 버전 간의 회귀 테스트를 원합니다.

도움이 되었습니까?

해결책

우리가 작성한 도구가 없기 때문에. 당신은 그것을 다운로드 할 수 있습니다 I-NET PDF 컨텐츠 비교 그리고 그것을 사용하십시오. 나는 그것이 같은 문제로 다른 사람을 돕기를 바랍니다. 문제가 있거나 당사에 대한 피드백이있는 경우 지원에 연락 할 수 있습니다.

enter image description here

다른 팁

실제로 diffpdf 도구가 있습니다.

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

약점은 추가로 새 텍스트가 새 페이지로 부분적으로 전환 될 때 잘 반응하지 않는다는 것입니다. 예를 들어, 이전 페이지 4를 5 페이지 끝과 6 페이지의 시작과 비교 해야하는 경우 두 조각을 개별적으로 비교하기 위해 매개 변수를 전환해야합니다.

나는 홈 구운 스크립트를 사용했습니다

  • 두 PDF의 모든 페이지를 비트 맵으로 변환합니다
  • PDF 1의 색상 페이지에서 빨간색 흰색
  • PDF 2 페이지에서 흰색으로 변경됩니다
  • PDF 2에서 PDF 2에서 각 페이지 오버레이 PDF 1의 해당 페이지 상단
  • 다중 코어에서 변환/색칠 및 오버레이를 병렬로 실행합니다.

사용 된 소프트웨어 :

  • pdf-to-bitmap 변환 용 고스트 스크립트
  • 착색, 투명성 및 오버레이를위한 Imagemagick
  • 병렬 프로세스를 동기화하기위한 Inotify
  • 결과를 검토하기위한 PNG 가능 이미지 뷰어

장점 :

  • 간단한 구현
  • 사용 된 모든 도구는 오픈 소스입니다
  • 레이아웃의 작은 차이를 찾는 데 좋습니다

단점 :

  • 변환이 느립니다
  • PDF (예 : Pagination)의 주요 차이점은 엉망진창을 초래합니다.
  • 비트 맵은 확대 가능하지 않습니다
  • 흑백 텍스트와 다이어그램에만 적합합니다
  • 사용하기 쉬운 GUI가 없습니다

PDF/PostScript 레벨에서 동일하게 수행 할 도구를 찾고 있습니다.

다음은 우리의 스크립트가 유틸리티를 호출하는 방법입니다 (Imagemagick은 장면 뒤에서 고스트 스크립트를 사용하여 PDF-> 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

나는 여기서 이것을 볼 수없는 것 같아서 여기에있다. Superuser : 두 PDF 파일의 차이점을 비교하는 방법은 무엇입니까? (답변 #229891, @slestak), 거기 있습니다

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

(Ubuntu Natty를위한 건축 단계는 get-diff-pdf.sh)

내가 볼 수있는 한, 기본적으로 PDF (들)의 각 페이지의 텍스트/그래픽이 오버레이되어 변경 사항이 있는지 쉽게 확인할 수 있습니다.

건배!

우리는 또한 사용했습니다 pdftotext (Sklivvz의 답변 참조) PDF의 ASCII 버전을 생성하고 wdiff 그들을 비교하기 위해.

pdftotext를 사용하세요 -layout 가독성을 높이고 레이아웃 변경 사항에 대한 아이디어를 얻기 위해 전환합니다.

wdiff에서 멋진 색상의 출력을 얻으려면 다음 래퍼 스크립트를 사용하십시오.

#!/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

가장 좋은 방법은 PDF를 적절한 해상도의 이미지로 변환하고 이미지를 비교하는 것입니다.

PDF에서 이미지를 생성하려면 Adobe PDF Library 또는 제안된 솔루션을 사용할 수 있습니다. PDF 파일을 TIFF 파일로 변환하는 가장 좋은 방법.

생성된 TIFF 파일을 비교하기 위해 GNU를 찾았습니다. tiffcmp (창문 부분의 경우 GnuWin32 티파니) 그리고 티파니 좋은 일을 했어요.tiffcmp -l을 사용하고 출력 라인 수를 세어 차이점을 찾으십시오.약간의 콘텐츠 변경(예:앤티앨리어싱 차이) 그런 다음 tiffinfo를 사용하여 총 픽셀 수를 계산하면 백분율 차이 값을 생성할 수 있습니다.

그런데 구조가 변경되지 않은 간단한 PDF 비교를 수행하는 사람은 명령줄 diff를 사용하고 특정 패턴을 무시할 수 있습니다.GNU diff 2.7 사용:

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

생성된 글꼴 이름의 변경 사항을 항상 포착하지 못하는 문제가 여전히 남아 있습니다.

우리의 제품, PDF 비교기 - http://www.premediasystems.com/pdfc.html" -이 작업은 매우 우아하고 효율적으로 수행 할 것입니다. 또한 무료가 아니며 Mac OS X 전용 응용 프로그램입니다.

귀하의 요구에 따라 텍스트로 변환하는 것이 가장 쉽고 가장 직접적입니다. 비트 맵 아이디어가 꽤 시원하다고 생각했습니다.

Blubeam PDF 소프트웨어가이를 수행합니다

배치 할 수 있습니다 PDF를 비교하십시오 Tarkware PDF 비교 파일. 그러나 무료는 아니며 Adobe Acrobat가 필요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top