पीडीएफ फाइलों का निरीक्षण करने के लिए सबसे अच्छा उपकरण? [बन्द है]


94

मैं पीडीएफ फाइलों का निरीक्षण कैसे कर सकता हूं, एक उपकरण के साथ बेहतर है?

केस का उपयोग करें: मैं प्रोग्रामिक रूप से पीडीएफ फाइलों को बनाने की कोशिश कर रहा हूं (iText का उपयोग करके)। मुझे कुछ लेआउट्स को प्राप्त करने में समस्या हो रही है, लेकिन मेरे पास पीडीएफ फाइलें हैं जिनमें टेक्स्ट को मेरे इच्छित (वर्ड से उत्पन्न) तरीके से रखा गया है। मैं इंजीनियर को उल्टा करना चाहूंगा कि वे इसे कैसे करते हैं।

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


पीडीएफ इंस्पेक्टर जावा आधारित है, इसलिए मल्टीप्लेट रिकॉर्डर है।
david.perez

2
हालांकि विंडोज पर चलने के लिए प्रतीत नहीं होता है। जब क्लिक किया जाता है तो जार कुछ नहीं करता है। जब आदेश पंक्ति पर बुलाया मैंno main manifest attribute, in PDF Document Inspector.jar
टॉम

1
@ david.perez यह जावा आधारित है, लेकिन सेब से लिपटा हुआ है, इसलिए यह थोड़े सेब का ही वितरण है। "PDF Document Inspector.app/Contents/Resources/Java/PDF डॉक्यूमेंट इंस्पेक्टर.झार" जार है, लेकिन यह java के रूप में शुरू करने योग्य नहीं है "PDF डॉक्यूमेंट इंस्पेक्टर.झार"। वह प्लेटफ़ॉर्म विशिष्ट है। :(
andrej

मैं अब सफलतापूर्वक iText Rups, मल्टीप्लायर और जावा आधारित का उपयोग कर रहा हूँ।
david.perez 11

जवाबों:


18

Adobe Acrobat में बहुत ही शांत लेकिन अच्छी तरह से छिपी हुई विधा है जिससे आप पीडीएफ फाइलों का निरीक्षण कर सकते हैं। मैंने इसे https://blog.idrsolutions.com/2009/04/viewing-pdf-objects/ पर समझाते हुए एक ब्लॉग लेख लिखा


यह एक प्लगइन की आवश्यकता लगती है; कम से कम यह लिनक्स पर एक्रोबेट रीडर 9.5.5 में उपलब्ध नहीं है।
एडम स्पियर्स

3
@AdamSpiers, प्रीफ़्लाइट डायलॉग बॉक्स एडोब एक्रोबैट की एक विशेषता है, एडोब रीडर नहीं
IPSUS

... और एक्रोबैट ( पूर्व में एक्रोबैट एक्सचेंज ) लिनक्स के लिए उपलब्ध नहीं है: - /
एडम स्पियर्स

7
Preflight डायलॉग बॉक्स में वास्तव में Adobe Acrobat Pro की आवश्यकता होती है। यह Adobe Acrobat Standard में उपलब्ध नहीं है।
फुतल

1
और यह वास्तव में उपयोग करने के लिए एक यूआई दुःस्वप्न है।
जॉन

87

अन्य उत्तरों में उल्लिखित GUI- आधारित टूल के अलावा, कुछ कमांड लाइन टूल हैं जो मूल पीडीएफ स्रोत कोड को एक अलग प्रतिनिधित्व में बदल सकते हैं जो आपको पाठ संपादक के साथ (अब संशोधित फ़ाइल) का निरीक्षण करने देता है। नीचे दिए गए सभी उपकरण लिनक्स, मैक ओएस एक्स, अन्य यूनिक्स सिस्टम या विंडोज पर काम करते हैं।

qpdf (मेरा मनपसंद)

(अधिकतर) ऑब्जेक्ट की धाराओं को अनपेक्षित करने के लिए qpdf का उपयोग करें और ObjStmवस्तुओं को व्यक्तिगत अप्रत्यक्ष वस्तुओं में भी विच्छेदित करें:

qpdf --qdf --object-streams=disable orig.pdf uncompressed-qpdf.pdf

qpdf एक उपकरण के रूप में वर्णन करता है "पीडीएफ फाइलों पर संरचनात्मक, सामग्री-संरक्षण परिवर्तन" करता है

फिर बस खुला + का निरीक्षण करें uncompressed-qpdf.pdf अपने पसंदीदा टेक्स्ट एडिटर में फ़ाइल को । पहले से संपीड़ित (और इसलिए, बाइनरी) बाइट्स का अधिकांश हिस्सा अब सादा पाठ होगा।

mutool

वहाँ भी है mutoolकमांड लाइन टूल है जो के साथ आता MuPDF PDF व्यूअर (जो Ghostscript करने के लिए एक बहन उत्पाद है, एक ही कंपनी, द्वारा किए गए कलाकार )। निम्न आदेश भी स्ट्रीम को अनकम्प्रेस्ड करता है और उन्हें टेक्स्ट एडिटर के माध्यम से निरीक्षण करना अधिक आसान बनाता है:

mutool clean -d orig.pdf uncompressed-mutool.pdf

podofouncompress

PoDoFo PDF प्रारूप के साथ काम करने के लिए एक FreeSoftware / OpenSource लाइब्रेरी है और इसमें कुछ कमांड लाइन टूल शामिल हैं, जिनमें शामिल हैंpodofouncompress। पीडीएफ धाराओं को अनलॉकर करने के लिए इसे इस तरह उपयोग करें:

podofouncompress orig.pdf uncompressed-podofo.pdf

peepdf.py

PeePDF एक पायथन-आधारित उपकरण है जो आपको पीडीएफ फाइलों का पता लगाने में मदद करता है। इसका मूल उद्देश्य पीडीएफ-आधारित मैलवेयर के अनुसंधान और विच्छेदन के लिए था, लेकिन मुझे यह पूरी तरह से सौम्य पीडीएफ फाइलों की संरचना की जांच करने के लिए भी उपयोगी लगता है।

यह एक पीडीएफ में निहित वस्तुओं और धाराओं को "ब्राउज़" करने के लिए अंतःक्रियात्मक रूप से उपयोग किया जा सकता है।

मैं यहाँ एक उपयोग का उदाहरण नहीं दूंगा, लेकिन केवल इसके दस्तावेज़ीकरण की एक कड़ी:

pdfid.py तथा pdf-parser.py

pdfid.pyऔर अजगर में लिखे डिडिएर स्टीवंस केpdf-parser.py दो पीडीएफ टूल हैं

उनकी पृष्ठभूमि दुर्भावनापूर्ण पीडीएफ का पता लगाने में मदद करने के लिए भी है - लेकिन मुझे सौम्य पीडीएफ फाइलों की संरचना और सामग्री का विश्लेषण करना भी उपयोगी लगता है।

यहाँ एक उदाहरण है कि मैं पीडीएफ ऑब्जेक्ट न की असम्पीडित धारा कैसे निकालूंगा। 5 में एक .dump फ़ाइल:

pdf-parser.py -o 5 -f -d obj5.dump my.pdf

अंतिम नोट्स

  1. कृपया ध्यान दें कि पीडीएफ के अंदर कुछ बाइनरी पार्ट्स आवश्यक रूप से असंगत नहीं हैं (या मानव पठनीय एएससीआईआई कोड में डिकोड-सक्षम हैं), क्योंकि वे पीडीएफ के अंदर अपने मूल प्रारूप में एम्बेडेड और उपयोग किए जाते हैं। ऐसे पीडीएफ भाग JPEG चित्र, फोंट या आईसीसी रंग प्रोफाइल हैं।

  2. आप उपकरण और दिए गए आदेश पंक्ति ऊपर दिए गए उदाहरणों की तुलना करें, आपको लगता है कि वे करते हैं पता चल जाएगा नहीं सभी समान आउटपुट का उत्पादन। अपने आप में उनके अंतर के लिए उनकी तुलना करने का प्रयास आपको पीडीएफ सिंटैक्स और फ़ाइल प्रारूप की प्रकृति को बेहतर ढंग से समझने में मदद कर सकता है।


42

मैं लिनक्स में iText RUPS (रीडिंग और अपडेटिंग पीडीएफ सिंटैक्स) का उपयोग करता हूं । चूंकि यह जावा में लिखा है, इसलिए यह विंडोज पर भी काम करता है। आप एक पेड़ की संरचना में पीडीएफ फाइल में सभी वस्तुओं को ब्राउज़ कर सकते हैं। यह निरीक्षण को आसान बनाने के लिए फ्लाई-इन-फ्लाई पर डिकेट को इनकोड भी डिकोड कर सकता है।

यहाँ एक स्क्रीनशॉट है:

iText RUPS स्क्रीनशॉट


9
java -jar itext-rups-5.5.6.jar-> Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/itextpdf/text/Version- आप इस चीज को कैसे चला सकते हैं? संपादित करें: यह पता लगाया। आपको SourceForge द्वारा दी गई डिफ़ॉल्ट फ़ाइल को डाउनलोड नहीं करना चाहिए, आपको .jar को डाउनलोड करना होगा जिसमें निर्भरताएं शामिल हैं।
ज़ीरो 3

2
@ ज़ीरो 3 बस एक ही बात पर आया। आपके कमेंट के लिए धन्यवाद।
सैम

1
@ कर्टपाइफ़ल मैं पूरी तरह से सहमत हूं। दुर्भाग्य से, बहुत सारे सॉफ़्टवेयर (इस तरह!) केवल SourceForge के माध्यम से उपलब्ध है क्योंकि अनुचर ने परियोजना को कहीं और स्थानांतरित नहीं किया है, और ऐसा कभी नहीं कर सकता है। इन दिनों SourceForge से कुछ भी डाउनलोड करते समय आपको वास्तव में बहुत सावधान रहना चाहिए ...
Zero3

7
हां - विंडोज उपयोगकर्ताओं के लिए एक संकलित जार और यहां तक ​​कि एक निर्वासन के रूप में। देखें github.com/itext/rups/releases/latest
Amedee Van Gasse

1
इस उत्तर में स्क्रीनशॉट @AmedeeVanGasse पृष्ठ (दस्तावेज़ के पेड़ और xref टैब के बीच) का दृश्य दिखाता है। मैं Windows पर v5.5.9 में वह दृश्य कैसे दिखा सकता हूं?
iPDFdev


5

मैंने अच्छी सफलता के साथ PDFBox का उपयोग किया है । यहां इस बात का एक नमूना है कि कोड कैसा दिखता है (संस्करण 0.7.2 से वापस), यह संभावना प्रदान किए गए उदाहरणों में से एक से आया है:

// load the document
System.out.println("Reading document: " + filename);
PDDocument doc = null;                                                                                                                                                                                                          
doc = PDDocument.load(filename);

// look at all the document information
PDDocumentInformation info = doc.getDocumentInformation();
COSDictionary dict = info.getDictionary();
List l = dict.keyList();
for (Object o : l) {
    //System.out.println(o.toString() + " " + dict.getString(o));
    System.out.println(o.toString());
}

// look at the document catalog
PDDocumentCatalog cat = doc.getDocumentCatalog();
System.out.println("Catalog:" + cat);

List<PDPage> lp = cat.getAllPages();
System.out.println("# Pages: " + lp.size());
PDPage page = lp.get(4);
System.out.println("Page: " + page);
System.out.println("\tCropBox: " + page.getCropBox());
System.out.println("\tMediaBox: " + page.getMediaBox());
System.out.println("\tResources: " + page.getResources());
System.out.println("\tRotation: " + page.getRotation());
System.out.println("\tArtBox: " + page.getArtBox());
System.out.println("\tBleedBox: " + page.getBleedBox());
System.out.println("\tContents: " + page.getContents());
System.out.println("\tTrimBox: " + page.getTrimBox());
List<PDAnnotation> la = page.getAnnotations();
System.out.println("\t# Annotations: " + la.size());

4

एक और विकल्प भी है। Adobe Acrobat Pro PDF की आंतरिक ट्री संरचना को प्रदर्शित करने में सक्षम है।

  1. ओपन प्रीफ्लाइट
  2. विकल्प पर जाएं (दाएं ऊपरी कोने)
  3. आंतरिक पीडीएफ संरचना

शीर्ष पर Adobe Acrobat Pro PDF में दस्तावेज़ फ़ॉन्ट्स की आंतरिक संरचना को प्रदर्शित कर सकता है, अन्य "PDF ट्री स्ट्रक्चर व्यूअर" में अधिकांश का कोई इमोशन नहीं है।

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


2
यह वही है जो @ मार्क-स्टीफंस स्वीकृत उत्तर में वर्णित करता है।
कोपपोपर

3
@ mark-stephens का जवाब सिर्फ एक ब्लॉग पोस्ट के लिए लिंक है जो भविष्य में गायब हो सकता है (और SO पर हतोत्साहित किया जाता है)। वाडिमो वास्तव में उत्तर प्रदान करता है।
Starfish

3

एक्रोबैट में ऑब्जेक्ट दर्शक अच्छा है, लेकिन विंडजैक सॉल्यूशन का पीडीएफ कैनोपेनर पृष्ठ पर वस्तुओं का चयन करने के लिए एक आईड्रॉपर के साथ बेहतर निरीक्षण की अनुमति देता है। पीडीएफ में किए जाने वाले संशोधनों की भी अनुमति देता है।

http://www.windjack.com/products/pdfcanopener.html



1

यदि आप पायथन के भीतर से प्रोग्रामेटिक रूप से काम करना चाहते हैं, तो pdfminer एक अच्छा विकल्प है। यह आपको एक वस्तु पदानुक्रम के रूप में स्मृति में पीडीएफ संरचना के साथ काम करने या एक्सएमएल के रूप में इसे क्रमबद्ध करने की अनुमति देता है।


-6

मेरी शर्करा फ़ॉक्सिट पीडीएफ रीडर है जो पीडीएफ फाइल पर महत्वपूर्ण पाठ संपादन कार्य करने में बहुत सहायक है।


6
मैं पीडीएफ इंस्पेक्टर (प्रश्न में संदर्भित) के समान पीडीएफ की आंतरिक संरचना को देखने के लिए फॉक्सिट रीडर में कोई रास्ता नहीं ढूंढ सका
bupupin
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.