पीडीएफ फ़ाइल प्रारूप समझाया गया: संरचना, परतें और मानक
पीडीएफ में वास्तव में क्या होता है? एक लेबल वाला आरेख और शब्दावली जिसमें चार भौतिक अनुभाग (हेडर, बॉडी, एक्सआरईएफ, ट्रेलर), छह सामग्री परतें (पाठ, चित्र, फ़ॉन्ट, एनोटेशन, वेक्टर, हस्ताक्षर), मेटाडेटा, और उन पर निर्मित आईएसओ मानक (पीडीएफ/ए, पीडीएफ/एक्स, पीडीएफ/यूए, पीडीएफ/ई, पीडीएफ/वीटी) शामिल हैं।
पीडीएफ कोई एक चीज़ नहीं है। यह डिस्क पर एक विशिष्ट संरचना वाला एक बाइनरी कंटेनर है, उस कंटेनर के अंदर सामग्री परतों का एक सेट है, और आधार विनिर्देश के ऊपर निर्मित आईएसओ मानकों का एक परिवार है। इसे हेक्स एडिटर में खोलें और संरचना पहली कुछ पंक्तियों में सादे पाठ में दिखाई देती है। इसे व्यूअर में खोलें और परतें एक पृष्ठ के रूप में एक साथ प्रस्तुत होती हैं।
यह गाइड एक लेबल वाला संदर्भ है: भौतिक फ़ाइल संरचना, सामग्री परतें जो एक बॉडी रखती है, मेटाडेटा जो सब कुछ घेरता है, और मानक (पीडीएफ/ए, पीडीएफ/एक्स, पीडीएफ/यूए, पीडीएफ/ई, पीडीएफ/वीटी) जो विशिष्ट उपयोग के मामलों के लिए इसे सीमित करते हैं।

इस आरेख का उपयोग अपने ब्लॉग पर करना चाहते हैं? यह एम्बेड कोड कॉपी करें:
चार भौतिक अनुभाग
डिस्क पर प्रत्येक पीडीएफ का एक ही चार-भाग संरचना होती है, इसी क्रम में:
1. हेडर
फ़ाइल की पहली पंक्ति। हमेशा %PDF- से शुरू होती है जिसके बाद संस्करण संख्या होती है:
%PDF-1.7संस्करण 1.0 (1993 में जारी) से 2.0 (2017 में जारी, वर्तमान) तक होते हैं। हेडर के बाद बाइनरी बाइट्स वाली एक टिप्पणी पंक्ति होती है जो एफटीपी और अन्य परिवहन उपकरणों को संकेत देती है कि यह एक बाइनरी फ़ाइल है।
2. बॉडी - अप्रत्यक्ष ऑब्जेक्ट
फ़ाइल का अधिकांश भाग। प्रत्येक पृष्ठ, फ़ॉन्ट, छवि, एनोटेशन और फ़ॉर्म फ़ील्ड एक क्रमांकित अप्रत्यक्ष ऑब्जेक्ट है:
1 0 obj
<< /Type /Catalog /Pages 2 0 R >>
endobj
2 0 obj
<< /Type /Pages /Kids [3 0 R] /Count 1 >>
endobj
3 0 obj
<< /Type /Page /Parent 2 0 R /Contents 4 0 R /Resources << ... >> >>
endobjप्रत्येक ऑब्जेक्ट में एक आईडी ( 0 obj से पहले की संख्या), एक पीढ़ी संख्या (0, वृद्धिशील अपडेट के लिए उपयोग की जाती है), और शब्दकोशों के लिए << और >> के बीच या बाइनरी स्ट्रीम (छवि डेटा, फ़ॉन्ट डेटा, संपीड़ित सामग्री) के लिए stream और endstream के बीच एक पेलोड होता है।
ऑब्जेक्ट <id> <gen> R सिंटैक्स (जैसे, 3 0 R का अर्थ है "ऑब्जेक्ट 3, पीढ़ी 0") के साथ एक-दूसरे का संदर्भ देते हैं। इस तरह एक पृष्ठ उस फ़ॉन्ट का संदर्भ देता है जिसका वह उपयोग करता है, या एक कैटलॉग पृष्ठ ट्री की जड़ का संदर्भ देता है।
3. क्रॉस-रेफरेंस टेबल (xref)
एक बाइट-ऑफ़सेट लुकअप टेबल। बॉडी में प्रत्येक ऑब्जेक्ट के लिए, एक्सआरईएफ फ़ाइल में उसकी पूर्ण बाइट स्थिति रिकॉर्ड करता है:
xref
0 6
0000000000 65535 f
0000000017 00000 n
0000000089 00000 n
0000000172 00000 n
0000000299 00000 n
0000000453 00000 nयही कारण है कि पीडीएफ रैंडम-एक्सेस करने योग्य हैं। एक व्यूअर एक्सआरईएफ पढ़ सकता है, सीधे ऑब्जेक्ट 3 के बाइट ऑफ़सेट पर कूद सकता है, और बाकी फ़ाइल को पार्स किए बिना उस पृष्ठ को प्रस्तुत कर सकता है। यही कारण है कि एक अध्याय की पीडीएफ तुरंत खुल जाती है, भले ही स्रोत फ़ाइल 500 पृष्ठों की हो।
4. ट्रेलर
अंतिम अनुभाग। पार्सर को बताता है कि एक्सआरईएफ कहां खोजना है और कौन सा ऑब्जेक्ट रूट है:
trailer
<< /Size 6 /Root 1 0 R /Info 7 0 R >>
startxref
1893
%%EOFstartxref मान एक्सआरईएफ तालिका का बाइट ऑफ़सेट है। %%EOF मार्कर फ़ाइल का शाब्दिक अंत है। ट्रेलर ही वृद्धिशील अपडेट को संभव बनाते हैं: अंत में एक नया एक्सआरईएफ + ट्रेलर जोड़कर आप पूरी फ़ाइल को फिर से लिखे बिना ऑब्जेक्ट जोड़ सकते हैं।
छह सामग्री परतें
बॉडी के अंदर, सामग्री छह परत प्रकारों में संग्रहीत होती है। प्रत्येक प्रस्तुत पीडीएफ पृष्ठ इन परतों का एक संयोजन है:
1. पाठ
ग्लिफ़ स्थिति कमांड और फ़ॉन्ट संदर्भ, पाठ स्ट्रिंग नहीं। एक पीडीएफ "ग्लिफ़ 42 को फ़ॉन्ट F3 से स्थिति (120, 540) पर ड्रा करें" जैसे निर्देश संग्रहीत करता है, न कि "यहां अक्षर A ड्रा करें"। यही कारण है कि पाठ चयन योग्य और खोजने योग्य है: व्यूअर ToUnicode मैपिंग (या सीजेके फ़ॉन्ट के लिए सीएमएपी) के माध्यम से ग्लिफ़ आईडी को यूनिकोड कोड पॉइंट पर रिवर्स-मैप करता है।
जब पाठ में ToUnicode मैपिंग गायब होती है, तो आपको क्लासिक "पीडीएफ जिसमें चयन योग्य पाठ है जो कचरे के रूप में कॉपी होता है" समस्या मिलती है। पाठ दिखाई देता है, लेकिन ग्लिफ़-टू-यूनिकोड मैपिंग टूटी हुई या अनुपस्थित है।
2. छवियां
कई प्रारूपों में से एक में एम्बेडेड स्ट्रीम के रूप में संग्रहीत:
- JPEG (DCTDecode फ़िल्टर): तस्वीरें, सबसे आम
- JPEG2000 (JPXDecode): उच्च संपीड़न, कम आम
- PNG-समतुल्य (FlateDecode + Predictor): स्क्रीनशॉट, लाइन आर्ट
- CCITT Group 4 (CCITTFaxDecode): काले और सफेद स्कैन किए गए पाठ, अभिलेखीय स्कैन में प्रयुक्त
- JBIG2 (JBIG2Decode): द्विपक्षीय छवियां, ओसीआर किए गए दस्तावेजों में आम
छवियों को डाउनसैंपल, पुनः संपीड़ित, या अन्य सामग्री को प्रभावित किए बिना बदला जा सकता है।
3. फ़ॉन्ट
पूर्ण फ़ॉन्ट प्रोग्राम के रूप में एम्बेड किए गए, सबसेट (केवल उपयोग किए गए ग्लिफ़ शामिल), या नाम से संदर्भित (व्यूअर के सिस्टम पर स्थापित होना चाहिए)। सबसेटिंग डिफ़ॉल्ट है - यह फ़ाइल आकार को काफी कम कर देता है। समर्थित फ़ॉन्ट प्रारूप: टाइप1, ट्रू टाइप, ओपन टाइप, और सीआईडीफ़ॉन्ट (सीजेके के लिए)।
जब किसी फ़ॉन्ट को संदर्भित किया जाता है लेकिन एम्बेड नहीं किया जाता है और व्यूअर के सिस्टम पर स्थापित नहीं होता है, तो व्यूअर एक समान फ़ॉन्ट को प्रतिस्थापित करता है - जो आमतौर पर गलत दिखता है। पीडीएफ/ए के लिए इस समस्या को रोकने के लिए सभी फ़ॉन्ट एम्बेड किए जाने की आवश्यकता होती है।
4. एनोटेशन
हाइलाइट्स, टिप्पणियां, लिंक, स्टैम्प, वॉटरमार्क और फ़ॉर्म फ़ील्ड सभी एनोटेशन हैं। वे पृष्ठ सामग्री के ऊपर परतदार होते हैं और अंतर्निहित पृष्ठ को बदले बिना जोड़े, संपादित या हटाए जा सकते हैं।
फ़ॉर्म फ़ील्ड एक विशेष मामला हैं: एक इंटरैक्टिव विजेट एनोटेशन (दृश्य भाग) प्लस एक फ़ील्ड शब्दकोश (डेटा भाग)। जब आप कोई फ़ॉर्म भरते हैं और सहेजते हैं, तो केवल फ़ील्ड शब्दकोश बदलते हैं - पृष्ठ स्वयं अछूता रहता है।
5. वेक्टर ग्राफिक्स
रेखाएं, आकार, वक्र और पथ पोस्टस्क्रिप्ट-जैसे ऑपरेटरों (moveto, lineto, curveto) के साथ खींचे जाते हैं। गुणवत्ता हानि के बिना अनंत रूप से स्केल करें। पीडीएफ में अधिकांश सीएडी निर्यात, चार्ट और आरेख वेक्टर ग्राफिक्स हैं।
6. डिजिटल हस्ताक्षर
फ़ाइल के बाइट रेंज से बंधे पीकेआई-समर्थित हस्ताक्षर। हस्ताक्षर शब्दकोश निर्दिष्ट करता है "बाइट्स 0 से 12,547 और 14,200 से फ़ाइल के अंत तक हस्ताक्षरित हैं" - बीच में एक छोटी सी सीमा स्वयं हस्ताक्षर मान के लिए आरक्षित है। हस्ताक्षरित बाइट रेंज में कोई भी परिवर्तन हस्ताक्षर को अमान्य कर देता है, जिससे पीडीएफ हस्ताक्षर के बाद छेड़छाड़ का पता लगाता है।
कुछ पीडीएफ में कई हस्ताक्षर होते हैं, जो वृद्धिशील अपडेट के रूप में परतदार होते हैं - प्रत्येक हस्ताक्षरकर्ता फ़ाइल पर हस्ताक्षर करता है जैसे कि वह उसे प्राप्त होने पर थी, श्रृंखला को बनाए रखता है।
मेटाडेटा: दो समानांतर प्रणालियाँ
पीडीएफ में दो मेटाडेटा सिस्टम हैं जो अक्सर असहमत होते हैं:
मानक /Info शब्दकोश
ट्रेलर में संग्रहीत। फ़ील्ड: Title, Author, Subject, Keywords, Creator (वह ऐप जिसमें उपयोगकर्ता ने दस्तावेज़ बनाया है), Producer (वह ऐप जिसने पीडीएफ उत्पन्न किया है), CreationDate, ModDate। सादे पाठ स्ट्रिंग, किसी भी पीडीएफ टूल के साथ पढ़ना आसान।
XMP मेटाडेटा स्ट्रीम
एक अलग XML स्ट्रीम (एडोब XMP, RDF/XML पर आधारित) जो समृद्ध स्कीमा का समर्थन करती है: डबलिन कोर, IPTC, कस्टम डोमेन-विशिष्ट स्कीमा (रंग प्रोफाइल, कॉपीराइट पंजीकरण, पांडुलिपि संस्करण)।
आधुनिक पीडीएफ जनरेटर दोनों में लिखते हैं। पुराने पीडीएफ में केवल /Info होता है। कुछ पीडीएफ में हाल के संपादन से एक पिछले संस्करण और सटीक एक्सएमपी से बासी /Info होता है - या इसके विपरीत। अनुपालन या फोरेंसिक के लिए पीडीएफ का ऑडिट करते समय, दोनों की जांच करें।
पीडीएफ पर निर्मित आईएसओ मानक
आधार पीडीएफ विनिर्देश आईएसओ 32000 है। कई व्युत्पन्न मानक विशिष्ट उपयोग के मामलों के लिए पीडीएफ को सीमित करते हैं:
| मानक | उपयोग | बाधाएं |
|---|---|---|
| पीडीएफ/ए | दीर्घकालिक अभिलेख | सभी फ़ॉन्ट एम्बेडेड, कोई जावास्क्रिप्ट नहीं, कोई ऑडियो/वीडियो नहीं, रंग स्थान डिवाइस-स्वतंत्र। अनुरूपता स्तर: पीडीएफ/ए-1, ए-2, ए-3 (फ़ाइल अटैचमेंट की अनुमति देता है) |
| पीडीएफ/एक्स | प्रिंट उत्पादन | सीएमवाईके रंग, एम्बेडेड फ़ॉन्ट और रंग प्रोफाइल, कोई पारदर्शिता नहीं (पीडीएफ/एक्स-1ए) या नियंत्रित पारदर्शिता (पीडीएफ/एक्स-4) |
| पीडीएफ/यूए | पहुंच | टैग की गई संरचना ट्री, भाषा मेटाडेटा, छवियों के लिए ऑल्ट टेक्स्ट, तार्किक पठन क्रम |
| पीडीएफ/ई | इंजीनियरिंग | 3डी मॉडल (यू3डी, पीआरसी प्रारूप), सीएडी-विशिष्ट मेटाडेटा |
| पीडीएफ/वीटी | चर लेन-देन प्रिंटिंग | उच्च-मात्रा वाले व्यक्तिगत मेलिंग के लिए अनुकूलित |
एक पीडीएफ एक साथ कई मानकों का अनुपालन कर सकती है - पीडीएफ/ए-2यू (यूनिकोड मैपिंग के साथ अभिलेखीय) प्लस पीडीएफ/यूए (पहुंच) सरकारी और कानूनी अभिलेखागार के लिए आम है।
रैखिक पीडीएफ (वेब-अनुकूलित)
एक "रैखिक" या "वेब-अनुकूलित" पीडीएफ बॉडी को पुनर्व्यवस्थित करती है ताकि पहले पृष्ठ की वस्तुएं फ़ाइल में जल्दी दिखाई दें। एक वेब व्यूअर को पूरे फ़ाइल की प्रतीक्षा करने के बजाय केवल पहले ~50 केबी डाउनलोड करने के बाद पृष्ठ 1 को प्रस्तुत कर सकता है। ट्रेलर को सामने डुप्लिकेट किया जाता है, साथ ही एक संकेत तालिका जो व्यूअर को बताती है कि प्रत्येक पृष्ठ कहां से शुरू होता है।
अधिकांश आधुनिक पीडीएफ जनरेटर रैखिकता को "वेब के लिए सहेजें" विकल्प के रूप में समर्थन करते हैं। प्रारूप तेज पहले पृष्ठ रेंडरिंग के बदले फ़ाइल आकार में 2-5% जोड़ता है।
एन्क्रिप्शन और अनुमतियाँ
पीडीएफ को पासवर्ड (या प्रमाणपत्र) के साथ एन्क्रिप्ट किया जा सकता है और दानेदार अनुमतियाँ दी जा सकती हैं: प्रिंट, टेक्स्ट कॉपी करें, संशोधित करें, फ़ॉर्म भरें, पहुंच के लिए निकालें। एन्क्रिप्शन ट्रेलर के /Encrypt शब्दकोश में संग्रहीत है।
एन्क्रिप्शन की ताकत विकसित हुई है: आरसी4 40-बिट (शुरुआती पीडीएफ, आज आसानी से क्रैक), आरसी4 128-बिट (अभी भी कमजोर), एईएस-128, एईएस-256। मूल एक्रोबेट 5 आरसी4 कार्यान्वयन 2001 में सार्वजनिक रूप से क्रैक किया गया था; आधुनिक पीडीएफ एन्क्रिप्शन (एईएस-256, पीडीएफ 2.0) मजबूत पासवर्ड के साथ उपयोग किए जाने पर ध्वनि है।
नोट: "अनुमतियाँ" सलाहकारी हैं। एक व्यूअर जो उनका सम्मान करता है, उन्हें लागू करेगा। एक व्यूअर जो उन्हें अनदेखा करता है (या एक उपकरण जो एन्क्रिप्शन को हटा देता है) नहीं करता है।
पीडीएफएसयूबी पीडीएफ कैसे पढ़ता है
पीडीएफएसयूबी रस्ट के पीडीएफियम बाइंडिंग (वही इंजन जो क्रोमियम के पीडीएफ व्यूअर को शक्ति प्रदान करता है) का उपयोग करके पीडीएफ को संसाधित करता है, साथ ही स्कैन किए गए दस्तावेजों के लिए पैडलओसीआर का भी उपयोग करता है। पूर्ण वास्तुकला विवरण और क्लाउड-आधारित टूल के साथ तुलना के लिए, ब्राउज़र बनाम क्लाउड पीडीएफ सुरक्षा देखें।
उपरोक्त वर्णित संरचना को बनाए रखते हुए पीडीएफ को अन्य प्रारूपों में परिवर्तित करने के लिए:
- पीडीएफ से एक्सेल - पाठ + तालिकाओं को निकालता है, निर्देशांक बनाए रखता है
- ओसीआर पीडीएफ - स्कैन किए गए पीडीएफ में एक खोजने योग्य पाठ परत जोड़ता है
- पीडीएफ से वर्ड - पाठ को संपादन योग्य पैराग्राफ में फिर से प्रवाहित करता है
- पीडीएफ संपीड़ित करें - छवियों को डाउनसैंपल करता है, फ़ॉन्ट को सबसेट करता है
विशेष रूप से अभिलेखीय वर्कफ़्लो के लिए, पीडीएफ को पीडीएफ/ए में कैसे परिवर्तित करें देखें।
आगे पढ़ना
- आईएसओ 32000-2 (पीडीएफ 2.0 विनिर्देश) - आधिकारिक संदर्भ, पेवॉल के पीछे
- एडोब पीडीएफ संदर्भ अभिलेखागार - पीडीएफ 1.7 के लिए मुफ्त संदर्भ
- पीडीएफ एसोसिएशन - उद्योग कार्य समूह, मुफ्त लेख और अनुरूपता परीक्षण फ़ाइलें
पीडीएफ-विशिष्ट विषयों के लिए: वकीलों के लिए पीडीएफ अनुपालन गाइड, पीडीएफ/ए रूपांतरण गाइड।