दस्तावेज़ · PDF टूलकिट
PDF का संक्षिप्त इतिहास: एडोब के कैमलॉट प्रोजेक्ट से ISO 32000 तक
· पेजभूमि
PDF फ़ाइल फ़ारमैट ब्राउज़र-प्रसंस्करण
PDF दस्तावेज़ को प्रत्येक स्क्रीन और प्रिंटर पर एक जैसा दिखाने के प्रयास के रूप में शुरू हुआ, और एक खुले ISO मानक के रूप में समाप्त हुआ। यह पोस्ट उस पथ का पता लगाती है और बताती है कि प्रारूप का डिज़ाइन ऐसा क्यों है जो ब्राउज़र को आज इसे फिर से लिखने देता है।
रिपॉजिटरी पोर्टेबल पेज रेंडरिंग को प्रदर्शित करता है, न कि PDF के प्रारंभिक इतिहास को।
आपूर्ति की गई रिपॉजिटरी एक व्यावहारिक संपत्ति साबित करती है: एक PDF को ब्राउज़र वातावरण में पार्स और प्रस्तुत किया जा सकता है, फिर दृश्य पेज सामग्री को संरक्षित करते हुए दूसरे PDF में फिर से लिखा जा सकता है। वह पोर्टेबिलिटी मर्ज, स्प्लिट, रोटेट, वॉटरमार्क और रूपांतरण कोड में दिखाई देती है, बिना किसी ऐतिहासिक दावे के कि प्रारूप का आविष्कार क्यों किया गया था।
एक पेज में आयाम, रोटेशन, संसाधन और ड्राइंग निर्देश हो सकते हैं जिनकी एक अनुरूप पुस्तकालय व्याख्या करता है। ToolAcre लिखने के लिए pdf-lib और प्रस्तुतिकरण के लिए pdf.js पर निर्भर करता है। वे निर्भरताएँ एक व्यावहारिक संरचित प्रारूप प्रदर्शित करती हैं, जबकि रिपॉजिटरी प्रारंभिक प्रिंटर, फ़ॉन्ट या वर्ड-प्रोसेसर इतिहास का दस्तावेजीकरण नहीं करती है।
प्रोजेक्ट कैमलॉट का इतिहास आपूर्ति किए गए कार्यान्वयन स्रोतों से बाहर है
कार्यपुस्तिका में कैमलॉट और एक मूल डिज़ाइन विज़न का नाम दिया गया है, लेकिन कोई भी आवश्यक स्रोत फ़ाइल उन तथ्यों को स्थापित नहीं करती है। उन्हें दोहराने से एक रूपरेखा एक अप्रकाशित इतिहास में बदल जाएगी। इसलिए यह खंड निर्माण तिथियों, उद्धरणों या परियोजना प्रेरणाओं के बजाय साक्ष्य सीमा को चिह्नित करता है।
इतिहास की तलाश करने वाले पाठकों को प्राथमिक एडोब प्रकाशनों या प्रासंगिक मानक रिकॉर्ड से परामर्श लेना चाहिए। उत्पाद स्रोत उत्तर दे सकता है कि वर्तमान कोड क्या करता है: यह चयनित फ़ाइलों को स्वीकार करता है, पेजों को पार्स करता है, उनकी प्रतिलिपि बनाता है या उन्हें परिवर्तित करता है, और आउटपुट को स्थानीय रूप से क्रमबद्ध करता है। यह किसी कॉर्पोरेट मूल कहानी को केवल इसलिए प्रमाणित नहीं कर सकता क्योंकि यह PDF पर काम करता है।
विशिष्टता प्रकाशन तिथियां और ISO इतिहास उद्धृत मानक स्रोत के बिना छोड़े गए हैं
यही सीमा मालिकाना और खुले-विनिर्देश संक्रमणों या किसी विशेष ISO प्रकाशन वर्ष के दावों पर भी लागू होती है। वे मानक-इतिहास कथन हैं जिनके लिए आधिकारिक बाहरी उद्धरण की आवश्यकता होती है। कार्य ने कार्यान्वयन और कॉन्फ़िगरेशन फ़ाइलें प्रदान कीं, मानक या इसकी संस्थागत समयरेखा नहीं।
यहां जो सत्यापन योग्य है वह पुस्तकालय सीमा पर अंतरसंचालनीयता है। pdf.js थंबनेल और रैस्टर आउटपुट के लिए पेज सामग्री की व्याख्या कर सकता है; PDF-लिब दस्तावेज़ बना सकता है, पेज कॉपी कर सकता है, रोटेशन सेट कर सकता है, निशान बना सकता है और छवियां एम्बेड कर सकता है। परिणामी फ़ाइलें स्वतंत्र दर्शकों के लिए खोलने के लिए सामान्य PDF के रूप में पेश की जाती हैं।
संस्करण-दर-संस्करण सुविधा इतिहास भंडार साक्ष्य के बाहर है
एन्क्रिप्शन, पारदर्शिता, टैगिंग, या अनुकूलता परिवर्धन की संस्करण-दर-संस्करण सूची के लिए भी विनिर्देश स्रोतों की आवश्यकता होगी। टूलकिट केवल यह उजागर करता है कि यह कुछ वर्तमान सुविधाओं के साथ कैसा व्यवहार करता है: एन्क्रिप्टेड फ़ाइलों को अस्वीकार कर दिया जाता है, एनोटेशन और फॉर्म पेज-कॉपी आउटपुट में संरक्षित नहीं होते हैं, और टेक्स्ट वॉटरमार्क एक अंतर्निहित लैटिन फ़ॉन्ट का उपयोग करते हैं।
उन सीमाओं से पता चलता है कि "PDF समर्थन" कभी भी एक द्विआधारी संपत्ति नहीं है। एक एप्लिकेशन चयनित संचालन और संरचनाओं का समर्थन करता है। एक दर्शक कुछ ऐसा प्रस्तुत कर सकता है जिसे एक एडिटर संरक्षित नहीं करता है, और एक एडिटर हर सबसिस्टम को शामिल किए बिना एक नया दस्तावेज़ लिख सकता है। उत्पाद दस्तावेज़ीकरण में प्रारूप इतिहास को आश्वासन के रूप में लागू करने के बजाय उन सीमाओं का नाम देना चाहिए।
ब्राउज़र टूल के लिए डिज़ाइन क्यों मायने रखता है - एक स्व-वर्णन ऑब्जेक्ट संरचना जिसे JavaScript स्थानीय रूप से पार्स और फिर से लिख सकता है
ब्राउज़र टूल काम करते हैं क्योंकि पुस्तकालय बाइट्स को संरचित दस्तावेज़ों में पार्स कर सकते हैं और जानबूझकर किए गए संचालन से नए बाइट्स बना सकते हैं। प्रतिलिपि पेजों को एक नए दस्तावेज़ में मर्ज करें; स्प्लिट प्रति कैटेगरी एक नया दस्तावेज़ बनाता है; रोटेट एडिटिव पेज मेटाडेटा को समायोजित करता है; वॉटरमार्क सामग्री खींचता है; छवि रूपांतरण या तो पेजों को व्यवस्थित करता है या तैयार छवियों को एम्बेड करता है।
श्रमिक अपनी स्थानीय प्रकृति को बदले बिना अधिकांश परिवर्तनों को उत्तरदायी बनाते हैं। PDF-से-छवि जिम्मेदारी को विभाजित करती है: pdf.js अपने कार्यकर्ता के माध्यम से पार्स करती है, जबकि कैनवास एन्कोडिंग मुख्य थ्रेड पर बनी रहती है। ब्राउज़र तब दूरस्थ रूपांतरण सेवा पर निर्भर होने के बजाय स्थानीय डाउनलोड के लिए ब्लॉब्स और ज़िप में परिणाम पैकेज करता है।
अभिलेखीय प्रोफाइल और अन्य अनुरूपता उपसमुच्चय के लिए बाहरी मानक स्रोतों की आवश्यकता होती है
कार्यपुस्तिका में PDF/A और अन्य प्रोफ़ाइल नाम हैं, लेकिन आपूर्ति किए गए स्रोतों में कोई सत्यापनकर्ता, अनुरूपता घोषणाएँ या मानक पाठ शामिल नहीं हैं। इस टूलकिट को पुरालेख प्रोफ़ाइल को संरक्षित या निर्मित करने के रूप में प्रस्तुत नहीं किया जाना चाहिए। एक ताज़ा क्रमांकन दृश्य पेज के बाहर गुणों को बदल सकता है और रिकॉर्ड नीति की आवश्यकता होने पर इसे अलग से मान्य किया जाना चाहिए।
वह चूक परिचालनात्मक रूप से महत्वपूर्ण है। मर्ज के बाद सफलतापूर्वक खुलने वाली फ़ाइल अभिलेखीय, पहुंच, या प्रिंट-उत्पादन अनुरूपता साबित नहीं करती है। उन प्रश्नों के लिए विशेष सत्यापनकर्ताओं और प्राथमिक प्रोफ़ाइल दस्तावेज़ीकरण का उपयोग करें। ToolAcre का समर्थित वादा बताई गई सीमाओं के तहत पेज-स्तरीय परिवर्तन है, न कि किसी बाहरी विनिर्देश के विरुद्ध प्रमाणीकरण।
यह आलेख टूलकिट स्रोत में सत्यापित व्यवहार के साथ रहता है
यह लेख किसी औपचारिक मानक या इतिहास की किताब के लिए एक संक्षिप्त विकल्प का प्रयास नहीं करता है। यह असमर्थित मील के पत्थर, फीचर कालक्रम को छोड़ देता है, और यह दावा करता है कि दर्शक अज्ञात संस्करणों को क्यों संभालते हैं। रिपॉजिटरी केवल समीक्षाधीन टूलकिट व्यवहार के लिए आधिकारिक है।
वह संयम तकनीकी लेखन को बेहतर बनाता है। एक पाठक वास्तव में सीखता है कि कौन से तथ्य आज उपयोग के लिए मार्गदर्शन कर सकते हैं: फ़ाइलें स्थानीय रहती हैं, हार्ड कैप लागू होती हैं, कार्यकर्ता अधिकांश परिवर्तन करते हैं, रास्टराइज़ेशन पाठ खो देता है, पेज प्रतियां प्रमुख दस्तावेज़ संरचनाओं को छोड़ देती हैं, और एन्क्रिप्टेड इनपुट बंद हो जाते हैं। इनमें से किसी भी तथ्य को किसी आविष्कृत ऐतिहासिक पुल की आवश्यकता नहीं है।
संरचित पेज संचालन स्थानीय स्तर पर संभव है; ऐतिहासिक कारण का दावा नहीं किया गया है
संरचित PDF पेजों को स्थानीय रूप से पार्स और पुनः लिखा जा सकता है; ToolAcre इसे सीधे प्रदर्शित करता है। यह उन ऐतिहासिक कारणों को प्रदर्शित नहीं करता है जिन्होंने प्रारूप को संभव बनाया, और यह लेख अन्यथा दावा नहीं करता है। स्रोत-आधारित गद्य को एक सुरुचिपूर्ण असमर्थित आख्यान की तुलना में एक संकीर्ण सच्ची व्याख्या को प्राथमिकता देनी चाहिए।
आधुनिक पेज संचालन के व्यावहारिक उदाहरण के रूप में टूलकिट का उपयोग करें, फिर कालक्रम या अनुरूपता के लिए आधिकारिक मानकों और अभिलेखीय स्रोतों से परामर्श लें। कार्यान्वयन साक्ष्य को पेजभूमि अनुसंधान से अलग करना दोनों को उपयोगी रखता है: कोड वर्तमान व्यवहार की व्याख्या करता है, जबकि उचित ऐतिहासिक स्रोत कहीं और तारीखों और संस्थागत निर्णयों को स्थापित कर सकते हैं। यह प्रभाग उत्पाद दस्तावेज़ीकरण को बनाए रखने योग्य भी रखता है, क्योंकि जब भी निर्भरता या ऑपरेशन कोड बदलता है तो कार्यान्वयन दावों का पुन: परीक्षण किया जा सकता है। यह किसी असंबंधित ऐतिहासिक दावे को मान्य करने के लिए भविष्य के कोड अपडेट को केवल इसलिए प्रदर्शित होने से रोकता है क्योंकि दोनों में समान फ़ाइल प्रारूप का उल्लेख होता है। बाद का इतिहास लेख इस कार्यान्वयन-केंद्रित खाते को बदले या इसके साक्ष्य मानक को कमजोर किए बिना उन तथ्यों को प्राथमिक उद्धरणों के साथ जोड़ सकता है।