बड़ी संख्या में पीडीएफ फाइलों की तुलना करने के लिए उपकरण? [बन्द है]


84

मुझे इसकी ऑप्टिकल सामग्री के लिए बड़ी संख्या में पीडीएफ फाइलों की तुलना करने की आवश्यकता है। क्योंकि पीडीएफ फाइलें विभिन्न प्लेटफार्मों पर बनाई गई थीं और सॉफ्टवेयर के विभिन्न संस्करणों के साथ संरचनात्मक अंतर हैं। उदाहरण के लिए:

  • पाठ की चूनिंग अलग हो सकती है
  • लेखन क्रम अलग हो सकता है
  • स्थिति कुछ पिक्सेल भिन्न हो सकती है

इसमें मानव की तरह सामग्री की तुलना की जानी चाहिए न कि आंतरिक संरचना की। मैं पीडीएफ जनरेटर के विभिन्न संस्करणों के बीच पुन: उपयोग के लिए परीक्षण करना चाहता हूं जो हमने उपयोग किया था।


3
एक आंशिक उत्तर pdftotext का उपयोग करना और निहित पाठ की तुलना करना होगा ।
स्किलिविज

लेकिन यह लाइनों, बक्से, चित्र, चार्ट इत्यादि जैसे सभी गैर-पाठ informations की उपेक्षा करेगा, मुझे लगता है कि यह पाठ के ऑप्टिकल पदों को संरचनात्मक स्थिति नहीं दिखाता है।
होरक्रक्स 7

मैं मानता हूं, यह पर्याप्त मानदंड नहीं है। दूसरी ओर यह एक आवश्यक मानदंड है, इसलिए यह एक इकाई परीक्षण के रूप में पर्याप्त है।
स्किलिविज

वास्तव में पहले कभी भी आपकी स्थिति में नहीं था, लेकिन मैंने पीडीएफ की तुलना करने के लिए एग्जामडिफ प्रो की कोशिश की है और यह मेरे लिए काम करता है।
घनाक्षरीकरण

आप हमेशा बाद में एक बेहतर इकाई परीक्षण जोड़ सकते हैं!
स्किलिविज

जवाबों:


39

क्योंकि ऐसा कोई उपकरण उपलब्ध नहीं है जिसे हमने लिखा है। आप i-net PDF कंटेंट को डाउनलोड कर सकते हैं और उसका उपयोग कर सकते हैं। मुझे उम्मीद है कि उसी समस्या के साथ अन्य मदद करें। यदि आपको इससे कोई समस्या है या आपके पास हमारे लिए प्रतिक्रिया है, तो आप हमारे समर्थन से संपर्क कर सकते हैं।

यहाँ छवि विवरण दर्ज करें


इस उपकरण का लाभ यह है कि, यह न तो एक शुद्ध पाठ तुलना है और न ही एक छवि तुलना है। यह संरचना से तुलना करता है, जांचता है कि क्या तत्व "समान" हैं - इसलिए आपकी तुलना की गई पीडीएफ को 100% से मेल नहीं खाता है, लेकिन एक निश्चित समानता के भीतर है। और यह मुफ्त में है।
गामा

मैं यह भी सिफारिश करेंगे! यह एक दस्तावेज पर दुर्घटनाग्रस्त हो गया इसलिए मैंने इसे उनके पास भेज दिया। उन्होंने इसे ठीक कर दिया! : मुझे बहुत अच्छा लग रहा है। यह अंतर के साथ छवियां उत्पन्न कर सकता है या यह आपको कंसोल में एक पाठ्य रिपोर्ट दे सकता है।
Janus Troelsen

4
@ गामा कहाँ है कि आवेदन मुक्त है? इसमें प्रति वर्ष कम से कम 200 USD खर्च होते हैं (!)। यह केवल 30 दिनों के लिए एक बार मुफ्त है। इस तरह से यह बहुत महंगा है कि मैं इसके साथ क्या करूँगा।
योगो

@ LelyelyPixel हां, आप सही कह रहे हैं। संस्करण 1.0 मुफ्त (2010-10-14 तक) था। हमने इस पर काफी बदलाव किया है और यह अब एक पेड टूल (2012-10) है। हालाँकि आप इसे 30 दिनों तक बिना किसी सीमा के आज़मा सकते हैं। इसने वास्तव में बहुत सारी नई सुविधाएँ, स्थिरता और विश्वसनीयता प्राप्त की है। मुझे आशा है कि आप अभी भी उस पर एक नज़र है;)
गामा

मुझे भी पीडीएफ फाइलों की तुलना करने की आवश्यकता है - मैं अपाचे पीडीएफबॉक्स का उपयोग करके एक जार के साथ आया हूं। उदाहरण और डाउनलोड के लिए इस testautomationguru.com/… की जाँच करें ।
Vins

21

वास्तव में एक diffpdf उपकरण है।

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

इसकी कमजोरी यह है कि यह अच्छी तरह से प्रतिक्रिया नहीं करता है जब परिवर्धन नए पाठ को आंशिक रूप से एक नए पृष्ठ पर ले जाता है। उदाहरण के लिए, यदि पुराने पेज 4 की तुलना पेज 5 के अंत और पेज 6 की शुरुआत से की जानी चाहिए, तो आपको दो स्लाइस की अलग से तुलना करने के लिए मापदंडों को शिफ्ट करना होगा।


1
मूल खुला स्रोत संस्करण अभी भी qtrac.eu/diffpdf-foss.html
टोबियास किंजलर

13

मैंने एक होम-बेक्ड स्क्रिप्ट का उपयोग किया है

  • सभी पृष्ठों को दो पीडीएफ में बिटमैप पर कनवर्ट करता है
  • पीडीएफ 1 के रंग पृष्ठ लाल-सफेद पर
  • पीडीएफ 2 के पृष्ठों पर सफेद को पारदर्शी में बदलता है
  • पीडीएफ 1 से संबंधित पृष्ठ के शीर्ष पर पीडीएफ 2 से प्रत्येक पृष्ठ को ओवरले करता है
  • कई कोर पर समानांतर में रूपांतरण / रंग और ओवरलेइंग चलाता है

सॉफ्टवेयर का इस्तेमाल किया:

  • पीडीएफ-बिटमैप रूपांतरण के लिए घोस्टस्क्रिप्ट
  • रंग, पारदर्शिता और ओवरले के लिए ImageMagick
  • समानांतर प्रक्रियाओं को सिंक्रनाइज़ करने के लिए inotify
  • परिणाम की समीक्षा के लिए कोई भी पीएनजी सक्षम छवि दर्शक

पेशेवरों:

  • सरल कार्यान्वयन
  • उपयोग किए गए सभी उपकरण खुले स्रोत हैं
  • लेआउट में छोटे अंतर खोजने के लिए महान

विपक्ष:

  • रूपांतरण धीमा है
  • पीडीएफ (जैसे पेजिनेशन) के बीच बड़े अंतर के कारण गड़बड़ होती है
  • बिटमैप जूम करने योग्य नहीं हैं
  • केवल श्वेत-श्याम पाठ और आरेखों के लिए अच्छा काम करता है
  • कोई आसान करने के लिए उपयोग GUI

मैं एक ऐसे टूल की तलाश में हूं, जो पीडीएफ / पोस्टस्क्रिप्ट स्तर पर समान हो।

यहां बताया गया है कि हमारी स्क्रिप्ट उपयोगिताओं को कैसे आमंत्रित करती है (ध्यान दें कि PDF करने के लिए ImageMagick दृश्यों के पीछे GhostScript का उपयोग करता है-> PNR रूपांतरण):

$ 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

1
पूरी स्क्रिप्ट शेयर क्यों नहीं की?
Janus Troelsen

1
यह वही है जो मैंने for i in $(seq -w 0 05); do /cygdrive/c/Progra~1/ImageMagick-6.6.9-Q8/composite.exe 1-$i.png 2-$i.png result-$i.png; done
कंपोज़िंग के

यहाँ एक स्क्रिप्ट है जो डिस्क पर अस्थायी फ़ाइलों को नहीं लिखती है और पॉप्लर के pdftoppm का उपयोग करती है, जो घोस्टस्क्रिप्ट से तेज है: gist.github.com/brechtm/891de9f72516c1b2cbc1 । यह एक pdfdiffनिर्देशिका में पीडीएफ के प्रत्येक पृष्ठ के लिए एक जेपीजी आउटपुट करता है और इसके अलावा उन पृष्ठों की संख्या को प्रिंट करता है जो दो पीडीएफ के बीच भिन्न होते हैं।
ब्रेख्त मैकिएल्स

12

मैं इसे यहाँ देखने में सक्षम नहीं लगता, इसलिए यहाँ यह है: सुपरसुअर के माध्यम से : दो पीडीएफ फाइलों के बीच अंतर की तुलना कैसे करें? (उत्तर # 229891, @slestak द्वारा) , है

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

(उबंटू नैट्टी के लिए निर्माण कदम get-diff-pdf.sh में पाया जा सकता है )

जहां तक ​​मैं देख सकता हूं, यह मूल रूप से पीडीएफ (एस) में प्रत्येक पृष्ठ के पाठ / ग्राफिक्स को ओवरलैप करता है, जिससे आप आसानी से देख सकते हैं कि क्या कोई बदलाव हुआ था ...

चीयर्स!


9

हमने पीडीएफ और एएसडीआई के एएससीआईआई संस्करणों की तुलना करने के लिए pdftotext (Sklivvz का उत्तर देखें) का उपयोग किया है।

-layoutपठनीयता बढ़ाने के लिए और लेआउट में बदलाव के कुछ विचार प्राप्त करने के लिए pdftotext के स्विच का उपयोग करें ।

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

4

मुझे लगता है कि आपका सबसे अच्छा तरीका पीडीएफ को एक अच्छे रिज़ॉल्यूशन पर चित्रों में बदलना और एक छवि की तुलना करना होगा।

पीडीएफ से छवियों को उत्पन्न करने के लिए आप एडोब पीडीएफ लाइब्रेरी का उपयोग कर सकते हैं या पीडीएफ फाइलों को टिफ़ फ़ाइलों में बदलने के लिए सर्वोत्तम तरीके से सुझाए गए समाधान का उपयोग कर सकते हैं ।

उत्पन्न TIFF फ़ाइलों मैं जीएनयू पाया तुलना करने के लिए tiffcmp (की खिड़कियों भाग के लिए GnuWin32 टिफ और) tiffinfo एक अच्छा काम किया है। Tiffcmp -l का उपयोग करें और किसी भी अंतर को खोजने के लिए आउटपुट की लाइनों की संख्या की गणना करें। यदि आप कम मात्रा में सामग्री परिवर्तन (जैसे एंटी-अलियासिंग अंतर) से खुश हैं, तो पिक्सल्स की कुल संख्या को गिनने के लिए टिफिनफो का उपयोग करें और फिर आप प्रतिशत अंतर मान उत्पन्न कर सकते हैं।

वैसे साधारण पीडीएफ तुलना करने वाले किसी भी व्यक्ति के लिए, जहां संरचना में बदलाव नहीं हुआ है, कमांड लाइन अंतर का उपयोग करना संभव है और कुछ पैटर्न को अनदेखा करना, उदाहरण के लिए GNU 2.7 के साथ:

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

यह अभी भी समस्या है कि यह हमेशा उत्पन्न फ़ॉन्ट नामों में परिवर्तन नहीं पकड़ता है।


मुझे लगता है कि 2 छवियों की तुलना करना अधिक जटिल है, फिर पीडीएफ फाइलों की तुलना स्वयं करना।
होरक्रूक्स

छवियों की तुलना GnuWin32 tiffcmp के साथ की जा सकती है। मैं इस पर विस्तार से अपना उत्तर दूंगा।
danio

1

हमारे उत्पाद, PDF तुलनित्र - http://www.premediasystems.com/pdfc.html "- यह काफी शान से और कुशलता से करेगा। यह भी मुफ़्त नहीं है, और केवल एक मैक ओएस एक्स है।


यह उपकरण पिक्सेल की तुलना पिक्सेल द्वारा करता है। यह बहुत सरल है। सवाल एक तुलना की तरह था जैसे एक इंसान ऐसा करता है।
हॉरक्रक्स 7

1
@ Horcrux7: लेकिन 'पिक्सेल बाय पिक्सेल' की तुलना करने के अलावा मानव आंखें अलग-अलग पृष्ठों की तुलना कैसे करती हैं जो समान दिख रही हैं?
कर्ट फ़ेफ़ेले

@ कर्टपाइफ़ल - मुझे लगता है कि यह एक पुरानी टिप्पणी है ... लेकिन मनुष्य पिक्सेल से पिक्सेल आधार पर छवियों की तुलना नहीं करते हैं; जिस तरह से मनुष्य छवियों में अंतर की तुलना करता है वह बहुत जटिल है, लेकिन पैटर्न की मान्यता और सांख्यिकी पर बहुत अधिक निर्भर करता है।
CBRF23

@ CBRF23: यह सच है, और मुझे इस बात की जानकारी है - लेकिन अंत में यह सभी आंकड़े "पिक्सेल-बाय-पिक्सेल" तुलनाओं में निहित हैं। कुछ अन्य उच्चतर स्तर के आंकड़ों के साथ ImageMagick, मेरे कुछ अन्य उत्तर देखें: एक - दो - तीन
कर्ट फ़िफ़ल

@ CBRF23: ... और मूल पोस्टर, (पर) Hocrux7 ने अपने प्रश्न में "पिक्सेल" का भी उल्लेख किया, और स्पष्ट रूप से तुलना की गई फ़ाइलों की "आंतरिक संरचना" नहीं चाहते थे (भले ही उनकी टिप्पणी यहां फिर से विरोधाभासी हो)।
कर्ट फ़िफ़ेल

1

अपनी आवश्यकताओं के आधार पर, टेक्स्ट सॉल्यूशन में कनवर्ट करना सबसे आसान और प्रत्यक्ष होगा। मुझे लगता है कि बिटमैप का विचार बहुत अच्छा था।



हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.