PDF फ़ाइल के अंदर क्या होता है, और उसकी मरम्मत क्या करती है?
PDF में एक हेडर होता है जो उसका वर्ज़न बताता है, क्रमांकित ऑब्जेक्ट (पेज, फ़ॉन्ट, इमेज, स्ट्रीम) की बॉडी, एक क्रॉस-रेफ़रेंस टेबल जो दर्ज करती है कि हर ऑब्जेक्ट कहाँ शुरू होता है, और एक ट्रेलर जो कैटलॉग और मेटाडेटा की ओर इशारा करता है। मेटाडेटा Info डिक्शनरी (शीर्षक, लेखक, तारीख़ें, प्रोड्यूसर) में और PDF 1.4 से XMP स्ट्रीम में रहता है; फ़ॉन्ट पूरे एम्बेड, सबसेट या केवल नाम से संदर्भित होते हैं। जो व्यूअर कोई ऑब्जेक्ट न ढूँढ पाए वह क्रॉस-रेफ़रेंस टेबल फिर बनाने के लिए फ़ाइल को स्कैन करता है — मरम्मत यही करती है और फिर से बनी टेबल लिख देती है, जिससे ज़्यादातर "फ़ाइल क्षतिग्रस्त" त्रुटियाँ पेजों को छुए बिना ठीक हो जाती हैं।
भाग 1:%PDF-1.7 भाग 2:1 0 obj << /Type /Catalog /Pages 3 0 R >> endobj भाग 3:2 0 obj << /Title (Invoice) /Producer (…) >> endobj भाग 4:3 0 obj << /Type /Pages /Kids [4 0 R] /Count 1 >> endobj 4 0 obj << /Type /Page /Parent 3 0 R /Contents 5 0 R >> endobj भाग 5:5 0 obj << /Length 44 >> stream … endstream endobj भाग 6:xref 0 6 0000000000 65535 f … भाग 7:trailer << /Size 6 /Root 1 0 R /Info 2 0 R >> startxref … %%EOF
- 2–5बॉडी: क्रमांकित ऑब्जेक्ट, जिन्हें ऑब्जेक्ट गणना
/Typeके अनुसार गिनती है
- 1हेडरPDF का वर्ज़न बताता है
- 2कैटलॉग (
/Root)मूल डिक्शनरी; पेज ट्री और लगभग हर चीज़ की ओर इशारा करती हैकैटलॉग ट्री - 3Info डिक्शनरीमेटाडेटा: शीर्षक, लेखक, तारीख़ें, प्रोड्यूसर
- 4पेज ट्री
/Pagesअपने/Kidsगिनाता है; हर/Pageअपने कंटेंट की ओर इशारा करता हैपेज ट्री आँकड़े - 5कंटेंट स्ट्रीम
streamऔरendstreamके बीच पेज के ड्रॉइंग निर्देशस्ट्रीम - 6क्रॉस-रेफ़रेंस टेबलहर ऑब्जेक्ट कहाँ शुरू होता है; मरम्मत इसे फिर बनाती है
- 7ट्रेलर
/Size,/Root,/Info, और फ़ाइल में हों तो/Encrypt,/IDया/Prevट्रेलर पंक्तियाँ
बाइट ऑफ़सेट हटाकर बनी एक छोटी फ़ाइल। कई फ़ाइलों में टेबल की जगह क्रॉस-रेफ़रेंस स्ट्रीम होती है, या /Prev से जुड़े कई ट्रेलर; इंस्पेक्टर आख़िरी वाला पढ़ता है।
PDF स्ट्रक्चर इंस्पेक्टर कैसे इस्तेमाल करें
- एक PDF छोड़ें।
- "जाँचें" पर क्लिक करें।
- कैटलॉग ट्री खोलें और निष्कर्ष पढ़ें।
PDF स्ट्रक्चर इंस्पेक्टर की खूबियाँ
- हेडर, ट्रेलर (/Size, /Root, /Info, /Encrypt, /ID, /Prev)
- ब्राउज़ करने योग्य ट्री के रूप में कैटलॉग डिक्शनरी (दो स्तर)
- /Type के अनुसार ऑब्जेक्ट गणना
- पेज ट्री आँकड़े और स्ट्रीम गिनती
- निष्कर्ष: JavaScript, OpenAction, लॉन्च एक्शन, अटैचमेंट, फ़ॉर्म, मल्टीमीडिया, एन्क्रिप्शन
PDF स्ट्रक्चर इंस्पेक्टर का उदाहरण
बने हुए इनवॉइस के अंदर झाँकें
इनपुट:
invoice.pdfआउटपुट:
हेडर %PDF-1.7 · ट्रेलर /Size 48 · Root 1 0 R · Info 2 0 R · ऑब्जेक्ट: Page 2, Font 3, XObject 1, … · निष्कर्ष: कोई नहींPDF स्ट्रक्चर इंस्पेक्टर के बारे में अक्सर पूछे जाने वाले सवाल
कैटलॉग क्या है?
PDF की मूल डिक्शनरी (ट्रेलर में /Root)। यह पेज ट्री, आउटलाइन, नाम, मेटाडेटा, व्यूअर प्राथमिकताओं और इंटरैक्टिव सुविधाओं की ओर इशारा करती है; लगभग सब कुछ इसी से लटका है।
कुछ ऑब्जेक्ट "अज्ञात" क्यों गिने जाते हैं?
बिना /Type कुंजी के ऑब्जेक्ट — कंटेंट स्ट्रीम, सिर्फ़ नाम से संदर्भित इमेज, ऐरे — जो अनुमान लगाया जा सके उसके अनुसार समूहित होते हैं; बाकी अप्रकारित बताए जाते हैं।
क्या यहाँ ऑब्जेक्ट एडिट कर सकते हैं?
नहीं, इंस्पेक्टर केवल पढ़ता है। सक्रिय कंटेंट हटाने के लिए PDF सैनिटाइज़ करें और दस्तावेज़ गुणों के लिए मेटाडेटा एडिटर इस्तेमाल करें।
क्या मेरी PDF किसी सर्वर पर अपलोड होती है?
नहीं। फ़ाइल आपका ब्राउज़र WebAssembly और JavaScript से खोलता और प्रोसेस करता है; Mutqan Soft या किसी और को कुछ नहीं भेजा जाता। टैब बंद करें और फ़ाइल चली जाती है। नतीजा डाउनलोड करने के लिए सिर्फ़ एक मुफ़्त अकाउंट चाहिए — न सब्सक्रिप्शन, न भुगतान।
क्या यह पासवर्ड वाली PDF पर काम करता है?
हाँ, अगर आप पासवर्ड जानते हैं: फ़ाइल सूची एक बार पासवर्ड पूछती है और फिर हर ऑपरेशन डिक्रिप्ट किए पेजों पर चलता है। नतीजा बिना पासवर्ड सेव होता है जब तक आप उसे दोबारा सुरक्षित न करें।
तकनीकी नोट्स
इंस्पेक्टर सहनशील pdf-lib ऑब्जेक्ट टेबल और कैटलॉग पढ़ता है, और /Size व /Prev बाइट्स में आख़िरी ट्रेलर या क्रॉस-रेफ़रेंस स्ट्रीम से लेता है; नेस्टेड डिक्शनरियाँ नाम, संख्या, स्ट्रिंग, ऐरे लंबाई और स्ट्रीम मार्कर के साथ गहराई 2 तक वर्णित होती हैं। यह /Parent या /Pages को कभी ऊपर की ओर हल नहीं करता, जिससे ट्री सीमित रहता है।
संदर्भ
- ISO 32000-2:2020 — Document management — Portable document format — Part 2: PDF 2.0वर्तमान PDF मानक: फ़ाइल संरचना, ऑब्जेक्ट, पेज, फ़ॉन्ट, एनोटेशन, फ़ॉर्म और एन्क्रिप्शन।
- PDF Reference — ISO 32000-1:2008 (PDF 1.7), Adobe copyमुफ़्त पढ़ने योग्य PDF 1.7 स्पेसिफ़िकेशन: पेज ट्री, कंटेंट स्ट्रीम, मेटाडेटा, अनुमतियाँ और स्टैंडर्ड सिक्योरिटी हैंडलर।
- PDF.jsओपन-सोर्स PDF रेंडरर जो बिना प्लगइन ब्राउज़र में PDF पेज बनाता है — दस्तावेज़ लोकली कैसे प्रीव्यू होते हैं।