मुफ़्त ऑनलाइन PDF फ़्लैटनिंग
सभी फ़ॉर्म फ़ील्ड और एनोटेशन को स्थिर पेज सामग्री में फ़्लैट करें। तत्काल परिणाम, सर्वर पर कोई अपलोड नहीं।
PDF फ़ाइलें समर्थित · 100 MB तक
फ्लैटनिंग विकल्प
यह कैसे काम करता है
- ऊपर एक PDF फ़ाइल चुनें या खींचें।
- चुनें कि कौन से तत्व फ्लैटन करने हैं (फॉर्म फ़ील्ड और/या एनोटेशन)।
- फ़ाइल को अपने ब्राउज़र में प्रोसेस करने के लिए "PDF फ्लैटन करें" पर क्लिक करें · कुछ भी अपलोड नहीं होता।
- सभी इंटरैक्टिव तत्वों को स्थिर सामग्री में बदल दिए जाने के बाद तुरंत फ्लैटन की गई PDF डाउनलोड करें।
PDF क्यों फ्लैटन करें?
PDF फ्लैटन करना दस्तावेज़ों को अंतिम रूप देने, आकस्मिक संशोधन रोकने और प्रणालियों के बीच अनुकूलता सुनिश्चित करने के लिए अनिवार्य है। जब आप फॉर्म फ्लैटन करते हैं, तो उपयोगकर्ता द्वारा दर्ज किया गया सारा डेटा स्थायी और गैर-संपादन योग्य हो जाता है। यह कानूनी दस्तावेज़ों, अनुबंधों, पूर्ण किए गए आवेदनों और संग्रहीत रिकॉर्ड के लिए अहम है। फ्लैटनिंग फ़ाइल आकार को भी थोड़ा कम करती है और यह सुनिश्चित करती है कि PDF सभी उपकरणों और अनुप्रयोगों पर एक जैसी दिखे, क्योंकि किसी फॉर्म व्याख्या की आवश्यकता नहीं होती।
क्या फ्लैटन होता है?
- फॉर्म फ़ील्ड · टेक्स्ट बॉक्स, चेकबॉक्स, रेडियो बटन, ड्रॉपडाउन मेनू और हस्ताक्षर फ़ील्ड स्थिर टेक्स्ट या ग्राफिक्स में बदल जाते हैं।
- एनोटेशन · टिप्पणियां, हाइलाइट, अंडरलाइन, स्टाम्प और अन्य मार्कअप पृष्ठ की पृष्ठभूमि में मिल जाते हैं।
- फ़ील्ड मान · फॉर्म फ़ील्ड में दर्ज कोई भी डेटा सुरक्षित रहता है और स्थायी पृष्ठ सामग्री बन जाता है।
- दृश्य स्वरूप · लेआउट, फ़ॉन्ट, रंग और डिज़ाइन ठीक वैसे ही रहते हैं जैसे फ्लैटनिंग से पहले थे।
PDF कब फ्लैटन करें
- पूर्ण किए गए फॉर्म · दस्तावेज़ को अंतिम रूप देने के लिए आवेदन, अनुबंध या सर्वे भरने के बाद फ्लैटन करें।
- कानूनी दस्तावेज़ · सुनिश्चित करें कि हस्ताक्षरित अनुबंधों और कानूनी समझौतों को निष्पादन के बाद संशोधित नहीं किया जा सकता।
- संग्रहण · दीर्घकालिक भंडारण से पहले फ्लैटन करें ताकि दस्तावेज़ अपरिवर्तित और पठनीय बने रहें।
- साझा करना · जब आप नहीं चाहते कि प्राप्तकर्ता फॉर्म फ़ील्ड संशोधित करें, तो फ्लैटन की गई PDF भेजें।
- मुद्रण · मुद्रण से पहले फ्लैटन करें ताकि सारी सामग्री कागज़ पर सही से प्रदर्शित हो।
अक्सर पूछे जाने वाले प्रश्न
क्या फ्लैटनिंग के बाद PDF अलग दिखेगी?
नहीं। फ्लैटनिंग आपकी PDF के ठीक उसी दृश्य स्वरूप को बनाए रखती है। सभी फॉर्म फ़ील्ड, एनोटेशन और सामग्री पहले जैसी ही दिखेंगी। केवल इंटरैक्टिविटी हटाई जाती है।
क्या मैं फ्लैटनिंग को पूर्ववत कर सकता हूं?
नहीं। एक बार PDF फ्लैटन हो जाने पर, मूल फॉर्म फ़ील्ड और इंटरैक्टिव तत्व पृष्ठ की पृष्ठभूमि में मिल जाते हैं। आप उन्हें पुनर्प्राप्त नहीं कर सकते। यदि आपको बाद में इसे संपादित करने की आवश्यकता हो सकती है तो हमेशा मूल PDF का बैकअप रखें।
यदि PDF में कोई फॉर्म फ़ील्ड नहीं है तो क्या होगा?
यदि PDF में कोई फॉर्म फ़ील्ड या एनोटेशन नहीं हैं, तो फ़ाइल प्रसंस्कृत होगी लेकिन कोई फ्लैटनिंग नहीं होगी। आउटपुट फ़ाइल इनपुट के समान होगी। आप इंटरैक्टिव तत्वों के बिना वाली फ़ाइलों सहित किसी भी PDF को सुरक्षित रूप से फ्लैटन कर सकते हैं।
क्या मेरी PDF सर्वर पर अपलोड होती है?
नहीं। सारा फ्लैटनिंग स्थानीय रूप से आपके ब्राउज़र में होता है। आपकी PDF कभी आपके डिवाइस से बाहर नहीं जाती, जो पूर्ण गोपनीयता और सुरक्षा सुनिश्चित करती है।
क्या फ्लैटनिंग फ़ाइल का आकार कम करती है?
थोड़ा सा। फॉर्म फ़ील्ड परिभाषाओं को हटाने से PDF की संरचना के आधार पर फ़ाइल आकार में 1-5% की कमी आ सकती है। हालांकि, फ्लैटनिंग मुख्य रूप से दस्तावेज़ों को अंतिम रूप देने के लिए है, संपीड़न के लिए नहीं।
फ़ाइल आकार सीमा क्या है?
टूल 100 MB तक के PDF का समर्थन करता है। प्रसंस्करण समय फ़ाइल आकार और जटिलता पर निर्भर करता है। अधिकांश PDF सेकंडों में फ्लैटन हो जाती हैं।
「PDF फ्लैटन」का असली अर्थ क्या है
「फ्लैटन」उन PDF टूल क्रियाओं में से एक है जो वास्तव में कई अलग-अलग ऑपरेशनों को संदर्भित करता है, यह इस पर निर्भर करता है कि क्या फ्लैट किया जा रहा है, और यह अंतर मायने रखता है क्योंकि ऑपरेशन अलग-अलग कारणों से सफल या विफल होते हैं। फॉर्म-फ़ील्ड फ्लैटनिंग वह ऑपरेशन है जो यह टूल डिफ़ॉल्ट रूप से करता है। AcroForm अर्थ में एक PDF फॉर्म फ़ील्ड एक तार्किक संरचना है: दस्तावेज़ कैटलॉग में FirstName जैसे नाम और Sasha जैसे मान वाला एक फ़ील्ड ऑब्जेक्ट है, और पृष्ठ पर एक या अधिक widget एनोटेशन हैं जो फ़ील्ड को दृश्य रूप से प्रस्तुत करते हैं। widget को पता होता है कि क्या ड्रॉ करना है क्योंकि उसका उपस्थिति शब्दकोश (/AP) एक छोटे कंटेंट स्ट्रीम की ओर इशारा करता है जिसमें ड्रॉ ऑपरेटर, एम्बेडेड फ़ॉन्ट और टेक्स्ट होते हैं। फ़ील्ड और widget दो अलग-अलग ऑब्जेक्ट हैं: एक डेटा संग्रहीत करता है, दूसरा चित्र। फ्लैटनिंग संबंध को उलट देता है: उपस्थिति स्ट्रीम सीधे पृष्ठ की कंटेंट स्ट्रीम पर ड्रॉ हो जाती है जैसे कि वह हमेशा पृष्ठ का हिस्सा रही हो, और फिर फ़ील्ड और widget ऑब्जेक्ट हटा दिए जाते हैं। पिक्सेल समान दिखते हैं, लेकिन फॉर्म संरचना चली गई है।
एनोटेशन फ्लैटनिंग गैर-फॉर्म एनोटेशन के लिए समकक्ष ऑपरेशन है: स्टिकी नोट्स, हाइलाइट, स्ट्राइकआउट, फ्रीहैंड ड्रॉइंग, टेक्स्ट-बॉक्स कॉलआउट, स्टैम्प। प्रत्येक मार्कअप एनोटेशन का भी एक उपस्थिति स्ट्रीम (/AP/N) होता है जिसे रीडर मार्क ड्रॉ करने के लिए उपयोग करता है; फ्लैटनिंग उस स्ट्रीम को पृष्ठ पर लिखता है और एनोटेशन ऑब्जेक्ट को हटा देता है। दृश्य चिह्न रहता है, लेकिन क्लिक करने, चुनने, संपादित करने या निकालने की क्षमता समाप्त हो जाती है। यह टूल डिफ़ॉल्ट रूप से फॉर्म फ़ील्ड और एनोटेशन दोनों को फ्लैट करता है; ऊपर के दो चेकबॉक्स आपको किसी भी एक को स्वतंत्र रूप से अक्षम करने देते हैं यदि आप एक प्रकार की अंतःक्रियाशीलता रखना चाहते हैं और दूसरी को हटाना चाहते हैं।
ट्रांसपेरेंसी फ्लैटनिंग अलग चीज़ है: वह ऑपरेशन जो अर्ध-पारदर्शी ऑब्जेक्ट वाले PDF को पूरी तरह से अपारदर्शी टाइलों के संग्रह में बदल देता है जो कंपोज़ होने पर एक जैसे दिखते हैं। PDF/A-1 अभिलेखीय रूपांतरण को इस चरण की आवश्यकता होती है क्योंकि PDF/A-1 पारदर्शिता की अनुमति नहीं देता। PDF/A-2 और बाद के संस्करण पारदर्शिता का मूल समर्थन करते हैं और इस चरण को छोड़ देते हैं। यह टूल ट्रांसपेरेंसी फ्लैटनिंग नहीं करता, शब्दावली का ओवरलैप दुर्भाग्यपूर्ण है लेकिन ऑपरेशन अलग हैं। यदि आपको PDF/A-1 अनुपालन चाहिए, पहले फॉर्म और एनोटेशन को फ्लैट करने के लिए यह टूल चलाएं, फिर एक समर्पित PDF/A कनवर्टर चलाएं जो पारदर्शिता चरण को संभालता है।
यह टूल कैसे काम करता है
यह टूल pdf-lib का उपयोग करता है, जो Andrew Dillon द्वारा लिखी गई और 2018 से ओपन सोर्स के रूप में बनाए रखी गई JavaScript PDF लाइब्रेरी है। pdf-lib TypeScript में लागू है और लगभग 1.1 MB शुद्ध JavaScript में संकलित है, जिसमें कोई नेटिव या WebAssembly निर्भरता नहीं है। यह किसी भी JavaScript वातावरण में चलता है: यहाँ ब्राउज़र टैब, लेकिन Node.js, Deno, React Native और service workers भी। यह लाइब्रेरी ब्राउज़र-साइड PDF हेरफेर के लिए वास्तविक मानक है: Documenso द्वारा उपयोग की जाती है, कई प्रमुख SaaS उत्पादों की PDF संपादन सुविधाओं द्वारा, और अनगिनत आंतरिक टूल और फॉर्म-प्रसंस्करण पाइपलाइनों द्वारा।
जब आप कोई PDF चुनते हैं, ब्राउज़र की File API कच्चे बाइट सीधे पृष्ठ के JavaScript इंजन में चल रहे pdf-lib को सौंप देती है। pdf-lib फ़ाइल को एक ऑब्जेक्ट मॉडल में पार्स करता है, फ़ील्ड्स गिनने के लिए AcroForm पेड़ पर चलता है, गणना पृष्ठ पर लौटाता है, और फ्लैटन बटन का इंतज़ार करता है। जब आप फ्लैटन क्लिक करते हैं, चयनित विकल्प pdf-lib की form.flatten() विधि को पास होते हैं, जो प्रत्येक फ़ील्ड पर पुनरावृत्ति करती है, वर्तमान मान कैप्चर करने के लिए उपस्थिति स्ट्रीम पुनर्जनन करती है, उपस्थिति स्ट्रीम को प्रत्येक widget के पृष्ठ पर widget के आयत में कॉपी करती है, और दस्तावेज़ से widget और फ़ील्ड ऑब्जेक्ट हटाती है। परिणामी बाइट एक Blob में क्रमबद्ध होते हैं जिसे पृष्ठ डाउनलोड URL में लपेटता है। फ्लैटन के दौरान कोई नेटवर्क अनुरोध नहीं दागा जाता। आप पुष्टि कर सकते हैं कि कोई अपलोड नहीं है: फ्लैटन क्लिक करने से पहले ब्राउज़र डेवलपर टूल को Network टैब पर खोलें, ऑपरेशन चलाएं, और देखें कि क्या आपकी फ़ाइल सामग्री वाला कोई अनुरोध है। कोई नहीं होगा।
AcroForm संरचना, संक्षेप में
जब PDF में एक इंटरैक्टिव फॉर्म होता है, दस्तावेज़ कैटलॉग में एक /AcroForm प्रविष्टि होती है जो एक AcroForm शब्दकोश की ओर इशारा करती है। शब्दकोश के मुख्य फ़ील्ड हैं /Fields (फ़ील्ड ऑब्जेक्ट्स का सरणी, प्रत्येक के पास आंशिक नाम, वर्तमान मान, फ़ील्ड प्रकार और widget एनोटेशन संदर्भों का kids सरणी होता है), /DR (डिफ़ॉल्ट संसाधन शब्दकोश जो फ़ील्ड उपस्थिति स्ट्रीम द्वारा संदर्भित फ़ॉन्ट और रंग स्थान रखता है), /DA (डिफ़ॉल्ट उपस्थिति स्ट्रिंग, एक-लाइन का कंटेंट स्ट्रीम टुकड़ा जैसे 0 0 0 rg /Helv 12 Tf जो डिफ़ॉल्ट टेक्स्ट रंग, फ़ॉन्ट और आकार सेट करता है), और /NeedAppearances (एक बूलियन फ़्लैग)।
/NeedAppearances फ़्लैग मायने रखता है क्योंकि pdf-lib का फ्लैटन प्रत्येक widget में संग्रहीत उपस्थिति का सम्मान करता है। जब फ़्लैग true होता है, रीडर को प्रदर्शन से पहले उपस्थिति स्ट्रीम पुनर्जनन करनी चाहिए, इसलिए डिस्क पर मौजूद स्ट्रीम पुरानी हो सकती हैं। आम नियम है फ्लैट करने से पहले उपस्थितियों को पुनर्जनित करना, जो यह टूल आपके लिए करता है। एक फ़ील्ड के अलग-अलग पृष्ठों पर कई widget एनोटेशन हो सकते हैं (रेडियो समूहों या पुनरावर्ती हस्ताक्षर ब्लॉकों के लिए उपयोगी); एक widget केवल एक फ़ील्ड का हो सकता है। widget स्वयं केवल /Subtype /Widget वाला एक एनोटेशन है, जिसमें फ़ील्ड ऑब्जेक्ट के लिए parent संदर्भ, यह बताने वाला rect कि पृष्ठ पर कहाँ ड्रॉ करना है, और वहाँ ड्रॉ होने वाला /AP/N उपस्थिति स्ट्रीम होता है।
PDF फॉर्म का संक्षिप्त इतिहास
- 1996, PDF 1.2, Acrobat 3, AcroForm पेश किया गया। फॉर्म फ़ील्ड दस्तावेज़ कैटलॉग में PDF ऑब्जेक्ट हैं; widget एनोटेशन उन्हें पृष्ठ पर प्रस्तुत करते हैं। मॉडल सरल है, उपस्थिति लेखक द्वारा तय की जाती है, और डेटा FDF (Forms Data Format) और XFDF (XML संस्करण) के माध्यम से प्रसारित होता है।
- 2002, Adobe ने Accelio का अधिग्रहण किया। Adobe को XFA तकनीक विरासत में मिली, एक कनाडा में विकसित XML-आधारित फॉर्म परिभाषा भाषा जिसे JetForm (बाद में Accelio) ने 1999 में W3C को प्रस्तुत किया था।
- 2003, PDF 1.5, Acrobat 6, PDF के भीतर XFA फॉर्म पेश किए गए। XFA फॉर्म PDF में एक पैकेट के रूप में एम्बेड एक पूर्ण XML दस्तावेज़ है। स्थिर XFA XML को एक स्थिर लेआउट में प्रस्तुत करता है; गतिशील XFA डेटा, स्क्रिप्ट और उपयोगकर्ता इनपुट के जवाब में लेआउट बदलता है। गतिशील XFA केवल Adobe Reader और Adobe Acrobat द्वारा प्रदर्शित किया जा सकता है।
- 2008, PDF 1.7 को ISO 32000-1 के रूप में मानकीकृत किया गया। AcroForm और XFA दोनों औपचारिक रूप से विनिर्देश का हिस्सा, हालांकि XFA को इनलाइन पूरी तरह से निर्दिष्ट करने के बजाय बाहरी Adobe दस्तावेज़ से संदर्भित किया गया है।
- 2017, PDF 2.0 को ISO 32000-2 के रूप में प्रकाशित किया गया, XFA अप्रचलित। मानक अब कहता है कि XFA का समर्थन करने वाले इंटरैक्टिव प्रोसेसर「उपयोगकर्ता को स्पष्ट रूप से इंगित करेंगे जब वे XFA फॉर्म के साथ बातचीत कर रहे हैं」, जो विनम्र तरीके से यह कहना है कि प्रारूप विदाई की ओर है। AcroForm एकमात्र मानकीकृत PDF फॉर्म प्रारूप बना हुआ है।
- 2020 आगे, AcroForm व्यावहारिक मानक है। अधिकांश गैर-Adobe PDF रीडर XFA का बिल्कुल समर्थन नहीं करते। AcroForm किसी भी उचित PDF लाइब्रेरी के साथ साफ-सुथरा फ्लैट हो जाता है क्योंकि संरचना अच्छी तरह परिभाषित है। XFA गैर-Adobe टूल के साथ फ्लैट नहीं होता क्योंकि गतिशील संस्करण को JavaScript इंजन और एक लेआउट इंजन की आवश्यकता है जिसे मूल रूप से केवल Adobe Reader और Acrobat ही शिप करते हैं।
एनोटेशन का ब्रह्मांड
PDF लगभग 25 एनोटेशन उपप्रकार परिभाषित करता है। जिन्हें फ्लैटन ऑपरेशन संभालता है, उन्हें मोटे तौर पर आवृत्ति के क्रम में: Text (स्टिकी-नोट आइकन पॉपअप विंडो के साथ); Highlight, Underline, Squiggly, StrikeOut (टेक्स्ट-मार्कअप समूह, प्रत्येक के पास /QuadPoints सरणी होती है जो ड्रॉ करने वाले चतुर्भुजों का वर्णन करती है); FreeText (पृष्ठ पर सीधे रखे गए आयताकार टेक्स्ट एनोटेशन, कॉलआउट और इनलाइन लेबल के लिए उपयोग किए जाते हैं); Line, Square, Circle, Polygon, PolyLine (आकार समूह); Ink (डिजिटल पेन या स्टाइलस से फ्रीहैंड पेन स्ट्रोक); Stamp (रबर-स्टैम्प चित्र जैसे「Approved」या「Confidential」); FileAttachment (संलग्न फ़ाइल वाला आइकन); Caret (छोटा「यहाँ टेक्स्ट डालें」चिह्न, अक्सर Highlight के साथ जोड़ा जाता है); Popup (तैरती खिड़की जो उपयोगकर्ता-दृश्य टिप्पणी टेक्स्ट रखती है, अपने मूल मार्कअप एनोटेशन के साथ फ्लैट होती है); Widget (फॉर्म-फ़ील्ड समूह, एनोटेशन फ्लैटनिंग के बजाय AcroForm फ्लैटनिंग द्वारा संभाला जाता है)।
प्रत्येक एनोटेशन प्रकार के अपने उपस्थिति नियम होते हैं, लेकिन फ्लैटन ऑपरेशन को उन्हें जानने की आवश्यकता नहीं है; यह बस एनोटेशन के /AP/N स्ट्रीम में जो भी है उसे पृष्ठ पर प्रस्तुत करता है। बिना /AP वाले एनोटेशन (एक छोटी अल्पसंख्यक, ज्यादातर खराब प्रारूप वाले PDF) को विश्वसनीय रूप से फ्लैट नहीं किया जा सकता और आमतौर पर अछूते छोड़ दिए जाते हैं। Link एनोटेशन (क्लिक करने योग्य URL हॉटस्पॉट) तकनीकी रूप से एनोटेशन हैं लेकिन आमतौर पर इस टूल द्वारा फ्लैट नहीं किए जाते: दृश्य संकेत (रेखांकित टेक्स्ट) पहले से ही पृष्ठ सामग्री का हिस्सा है और एम्बेड करने के लिए कोई ग्राफिक नहीं है, इसलिए लिंक हटाने से केवल क्लिक लक्ष्य ही हट जाएगा।
वास्तविक कार्यप्रवाह जो PDF फ्लैटन को प्रेरित करते हैं
- CM/ECF और समान प्रणालियों के माध्यम से अदालत में इलेक्ट्रॉनिक दाखिल। अमेरिकी संघीय अदालत प्रणाली अपनी CM/ECF इलेक्ट्रॉनिक केस-फाइलिंग प्रणाली में अपलोड करने से पहले भरने योग्य PDF को फ्लैट करने की मांग करती है। कारण यह है कि CM/ECF PDF और फॉर्म डेटा को अलग-अलग संग्रहीत करता है, और भरने योग्य फॉर्म भ्रम, गुम डेटा और फ़ील्ड-भ्रष्टाचार टिकटों का बार-बार स्रोत रहे हैं। कई जिला अदालतें फ्लैट करने के तरीके पर स्पष्ट नोटिस पोस्ट करती हैं। कनाडा, ब्रिटेन और EU अदालतों में समान प्रणालियाँ समान नियम लागू करती हैं। मानक कार्यप्रवाह है फॉर्म भरना, फ्लैट करना, और फ्लैट प्रति अपलोड करना।
- मौजूदा फ़ील्ड को अपूर्ण रूप से संभालने वाले ई-हस्ताक्षर प्लेटफ़ॉर्म। DocuSign और Adobe Sign दोनों को अपलोड किए गए PDF पर AcroForm फ़ील्ड के साथ कुछ करना होता है, और उनके आंतरिक हस्ताक्षर-फ़ील्ड प्रतिनिधित्व में रूपांतरण कभी-कभी डेटा खो देता है, संरेखण तोड़ देता है या फ़ील्ड्स का नाम गलत रख देता है। Adobe Sign स्पष्ट रूप से रूपांतरण त्रुटियों को रोकने के लिए「अपलोड पर फ्लैट करें」स्विच प्रदान करता है। यहाँ पूर्व-फ्लैट करना आपको नियंत्रण देता है कि क्या स्थिर हो जाएगा, बजाय इसे हस्ताक्षर प्लेटफ़ॉर्म पर सौंपने के।
- हस्ताक्षरित अनुबंध और कॉर्पोरेट रिकॉर्ड का संग्रह। कानूनी टीमें दीर्घकालिक संग्रह से पहले हस्ताक्षरित अनुबंध फ्लैट करती हैं ताकि अनुबंध तक बाद की पहुँच फॉर्म डेटा को संशोधित करने का कोई अवसर प्रस्तुत न करे। फ्लैटनिंग मानों को पृष्ठ की स्थायी सामग्री का हिस्सा बना देती है। HR रिकॉर्ड, पूरे किए गए कर रिटर्न, और किसी भी अनुपालन दस्तावेज़ के लिए समान रूप से सामान्य जो भविष्य के रीडर-सॉफ़्टवेयर अपग्रेड के दौरान शब्दार्थ अपरिवर्तित रहना चाहिए।
- PDF/A अभिलेखीय रूपांतरण। PDF/A-1 (2005 का अभिलेखीय मानक) पारदर्शिता, एम्बेडेड मल्टीमीडिया, JavaScript या एन्क्रिप्टेड सामग्री की अनुमति नहीं देता है, और AcroForm फ़ील्ड की अनुपस्थिति को दृढ़ता से प्राथमिकता देता है, इस सिद्धांत पर कि एक अभिलेखीय दस्तावेज़ को फॉर्म शब्दार्थ को सही ढंग से लागू करने वाले भविष्य के रीडर पर निर्भर नहीं होना चाहिए। PDF/A-1 रूपांतरण से पहले फ्लैट करना मानक कार्यप्रवाह है। PDF/A-2 और बाद के संस्करण इनमें से कुछ प्रतिबंधों को ढीला करते हैं लेकिन अभी भी अभिलेखीय विश्वसनीयता के लिए फ्लैट फॉर्म पसंद करते हैं।
- प्रिंट और प्रिंट-टू-PDF कार्यप्रवाह। कुछ प्रिंट ड्राइवर भरे हुए फॉर्म फ़ील्ड को असंगत रूप से संभालते हैं, विशेष रूप से जब PDF एक रीडर में भरा गया और दूसरे से प्रिंट किया गया (macOS पर Preview Acrobat-भरे PDF को पढ़ रहा है, पाठ्यपुस्तक मामला है)। प्रिंट करने से पहले फ्लैट करना रीडर-से-रीडर परिवर्तनशीलता को समाप्त करता है: फ्लैट के समय स्क्रीन पर जो उपस्थिति स्ट्रीम थी वही उपस्थिति कागज पर समाप्त होती है।
- भरा हुआ फॉर्म साझा करना जब प्राप्तकर्ता संपादित नहीं कर सकता। PDF अभी भी एक फॉर्म जैसा दिखता है, लेकिन फ़ील्ड साफ़ नहीं हो सकते, चेकबॉक्स अनचेक नहीं हो सकते, और मान संपादित नहीं हो सकते। केवल-पढ़ने योग्य फ़ील्ड फ़्लैग इसी उद्देश्य के लिए मौजूद हैं, लेकिन फ्लैटनिंग अधिक टिकाऊ है: रीडर चयनात्मक रूप से फ़ील्ड की अनुपस्थिति को नज़रअंदाज़ नहीं कर सकते जैसे वे कभी-कभी केवल-पढ़ने योग्य फ़्लैग को नज़रअंदाज़ कर देते हैं।
सामान्य ख़तरे और उनका अर्थ
- आउटपुट में वहाँ खाली फ़ील्ड हैं जहाँ भरे हुए मान थे। PDF को
/NeedAppearances trueके साथ लिखा गया था और इसके widget उपस्थिति स्ट्रीम कभी उत्पन्न नहीं हुए; रीडर हर बार फ़ाइल खुलने पर उन्हें तुरंत पुनर्जनित कर रहा था, इसलिए मान दिखाई दे रहे थे लेकिन सहेजे नहीं गए। समाधान फ्लैट करने से पहले उपस्थितियों को पुनर्जनित करना है। यह टूल यह स्वचालित रूप से करता है, लेकिन कुछ अन्य फ्लैटन कार्यान्वयन (कुछ कमांड-लाइन टूल सहित) पुनर्जनन छोड़ देते हैं और/NeedAppearances trueस्रोत फ़ाइलों से खाली-फ़ील्ड PDF उत्पन्न करते हैं। - कुछ फ़ील्ड फ्लैट होते हैं लेकिन अन्य नहीं। फॉर्म AcroForm और XFA का मिश्रण है, या शुद्ध XFA। AcroForm फ़ील्ड फ्लैट होते हैं; XFA फ़ील्ड के लिए Adobe टूल की आवश्यकता है क्योंकि XML-संचालित लेआउट अन्य लाइब्रेरीज़ द्वारा प्रस्तुत नहीं किया जा सकता। समाधान या तो PDF को Adobe Acrobat में खोलना और AcroForm में बदलने के लिए「Save As Other, Reader Extended PDF」करना है, या स्वीकार करना है कि XFA फ़ील्ड इंटरैक्टिव बने रहेंगे। कनाडाई सरकारी सेवाओं और जर्मन कर अधिकारियों की फ़ाइलें अभी भी अक्सर केवल XFA हैं।
- फ्लैट करने के बाद फ़ॉन्ट थोड़े गलत दिखते हैं। फॉर्म की उपस्थिति स्ट्रीम
/DAडिफ़ॉल्ट उपस्थिति स्ट्रिंग में नाम से एक फ़ॉन्ट को संदर्भित करती थी लेकिन फ़ॉन्ट एम्बेड नहीं था; PDF रीडर प्रदर्शन समय पर एक सिस्टम फ़ॉन्ट को प्रतिस्थापित कर रहा था, और फ्लैट ने प्रतिस्थापन को स्थिर कर दिया। यह एक रीडर में दृश्य रूप से सही टेक्स्ट उत्पन्न करता है जिसके पास समान फ़ॉलबैक है और दृश्य रूप से अलग टेक्स्ट उस रीडर में जिसके पास नहीं है। समाधान एम्बेडेड Helvetica के साथ फ्लैट करना है, जो pdf-lib डिफ़ॉल्ट रूप से करता है; गंभीर मामलों में, स्रोत PDF को फ्लैट से पहले फ़ॉन्ट एम्बेड करने की आवश्यकता है। - डिजिटल हस्ताक्षर अब अमान्य है। डिज़ाइन से। डिजिटल हस्ताक्षर एक क्रिप्टोग्राफिक हैश है जो दस्तावेज़ की बाइट रेंज पर गणना की जाती है, इसलिए कोई भी संरचनात्मक परिवर्तन (फ्लैटिंग सहित) इसे अमान्य कर देता है। यदि आप हस्ताक्षर रखना चाहते हैं, फ्लैट न करें। यदि आप फ्लैट करना चाहते हैं, बाद में हस्ताक्षर करें, पहले नहीं। एक खींची गई हस्ताक्षर छवि केवल एक ग्राफिक है और फ्लैटन से अक्षुण्ण बच जाती है, लेकिन पहले स्थान पर उसने क्रिप्टोग्राफ़िक सत्यापन नहीं उठाया, केवल एक दृश्य दावा।
- फ्लैट किया गया PDF मूल के समान आकार या बड़ा है। फ्लैटनिंग कभी-कभी फ़ाइल आकार बढ़ा देती है। उपस्थिति स्ट्रीम जो एम्बेडेड फ़ॉन्ट संदर्भित करती हैं, अब फॉर्म डिफ़ॉल्ट के बजाय पृष्ठ संसाधनों में शामिल होनी चाहिए, और pdf-lib पृष्ठों में फ़ॉन्ट उपसमुच्चय को आक्रामक रूप से डुप्लिकेट नहीं करता। अंतर आमतौर पर छोटा है (10 प्रतिशत से कम), लेकिन हमेशा कमी नहीं होती। फ्लैटनिंग का उद्देश्य संरचनात्मक है, संपीड़न नहीं। आकार कम करने के लिए, फ्लैट किए गए PDF को मुफ्त ऑनलाइन PDF कम्प्रेस करें के माध्यम से चलाएं।
- फॉर्म फ़ील्ड पूर्वावलोकन में ठीक हैं लेकिन फ्लैट करने के बाद गायब हो जाते हैं। फ़ील्ड में Hidden या NoView (PDF विनिर्देश एनोटेशन फ़्लैग) के रूप में चिह्नित करने वाले
/Fफ़्लैग बिट सेट थे। छिपे हुए फ़ील्ड में परिभाषा के अनुसार ड्रॉ करने के लिए कोई उपस्थिति नहीं है, इसलिए उन्हें फ्लैट करने से पृष्ठ पर कुछ भी उत्पन्न नहीं होता। यह सही व्यवहार है लेकिन आश्चर्यजनक यदि आप नहीं जानते थे कि फ़ील्ड छिपे हुए थे। यह देखने के लिए Adobe Acrobat के फॉर्म-संपादन मोड में PDF की जाँच करें कि कौन से फ़ील्ड छिपे हुए के रूप में चिह्नित थे।
केवल ब्राउज़र बनाम क्लाउड फ्लैटन
हर क्लाउड PDF-फ्लैटन सेवा (Smallpdf, ILovePDF, PDF24 web, Adobe Acrobat Online, Sejda, DocHub और एक दर्जन छोटे) आपके PDF को ऑपरेटर के सर्वर पर अपलोड करती है, वहाँ फ्लैटन चलाती है, और फ्लैट प्रति डाउनलोड के रूप में वापस देती है। PDF TLS के साथ एन्क्रिप्ट किए गए सार्वजनिक इंटरनेट के माध्यम से यात्रा करता है, ऑपरेटर के भंडारण में मिनटों से दिनों तक की एक खिड़की के लिए रहता है, ऑपरेटर के बुनियादी ढाँचे पर चल रहे ऑपरेटर के PDF लाइब्रेरी द्वारा फ्लैट किया जाता है, और फिर हटा दिया जाता है। गोपनीयता नीतियाँ आमतौर पर कुछ घंटों से एक दिन के भीतर हटाने, ट्रांज़िट में TLS, और (बड़े ऑपरेटरों के लिए) ISO/IEC 27001-प्रमाणित बुनियादी ढाँचे की प्रतिबद्धता रखती हैं। ऑपरेटरों के पास इन प्रतिबद्धताओं का सम्मान करने के व्यावसायिक कारण हैं। लेकिन उनके पास लॉग, बैकअप स्नैपशॉट और घटना-प्रतिक्रिया डेटा प्रवाह भी हैं जो सामान्य रूप से हटाने की प्रतिबद्धता द्वारा कवर नहीं किए जाते।
यह टूल PDF अपलोड नहीं करता। pdf-lib कोड आपके ब्राउज़र टैब में चलता है, File API के माध्यम से फ़ाइल बाइट प्राप्त करता है, JavaScript इंजन में फ्लैटन करता है, और फ्लैट किए गए बाइट को उसी टैब में Blob के रूप में लौटाता है। आप साबित कर सकते हैं कि कोई अपलोड नहीं है: फ्लैटन क्लिक करने से पहले डेवलपर टूल को नेटवर्क टैब पर खोलें, ऑपरेशन चलाएं, और देखें कि आपकी फ़ाइल सामग्री वाला कोई अनुरोध दागा नहीं जाता। pdf-lib कोड पृष्ठ लोड पर एक बार CDN से लोड किया गया था और ब्राउज़र द्वारा कैश किया गया है; फ्लैटन ऑपरेशन कोई और नेटवर्क अनुरोध नहीं करता। समझौता फीचर का दायरा है: क्लाउड सेवाएँ अक्सर OCR, Word/Excel रूपांतरण या आक्रामक संपीड़न को फ्लैटन के साथ बंडल करती हैं। यहाँ ब्राउज़र-साइड फ्लैटन केवल फ्लैटन करता है। OCR या प्रारूप रूपांतरण के लिए, क्लाउड सेवाएँ सही कॉल हैं; एक संवेदनशील दस्तावेज़ के लिए जहाँ गोपनीयता मुद्रा मायने रखती है, यह ब्राउज़र है।
अधिक पूछे जाने वाले प्रश्न
यह टूल किन फॉर्म प्रकारों को संभालता है?
AcroForm अपने सभी रूपों में: टेक्स्ट फ़ील्ड, चेकबॉक्स, रेडियो बटन, ड्रॉपडाउन, सूची बॉक्स, पुश बटन और हस्ताक्षर फ़ील्ड (दृश्य widget, क्रिप्टोग्राफ़िक हस्ताक्षर नहीं)। XFA फॉर्म समर्थित नहीं हैं क्योंकि XFA के गतिशील लेआउट को Adobe की मालिकाना JavaScript और लेआउट इंजन की आवश्यकता है। यदि आपका फॉर्म केवल XFA है, फ्लैट सफल होगा लेकिन फॉर्म इंटरैक्टिव छोड़ देगा; Adobe Acrobat में PDF खोलना और Reader Extended PDF के रूप में सहेजना अधिकांश XFA फॉर्म को AcroForm समकक्षों में बदल देता है जिन्हें यह टूल फिर फ्लैट कर सकता है।
क्या मैं केवल एक पृष्ठ या केवल एक फ़ील्ड को फ्लैट कर सकता हूँ?
नहीं। यह टूल पूरे दस्तावेज़ को फ्लैट करता है। चयनात्मक फ्लैटनिंग (एक बार में एक फ़ील्ड, या एक बार में एक पृष्ठ) के लिए Adobe Acrobat Pro या एक कस्टम स्क्रिप्ट से कॉल की गई डेवलपर लाइब्रेरी की आवश्यकता है। अधिकांश कार्यप्रवाह के लिए, पूरे-दस्तावेज़ का फ्लैट वही है जो आप चाहते हैं वैसे भी, क्योंकि「कुछ फ़ील्ड स्थिर, अन्य संपादन योग्य」शायद ही कभी इरादा होता है।
क्या यह बुकमार्क, मेटाडेटा और संलग्नक संरक्षित करता है?
हाँ बुकमार्क (दस्तावेज़ रूपरेखा), दस्तावेज़ मेटाडेटा (शीर्षक, लेखक, विषय, कीवर्ड, निर्माण और संशोधन तिथियाँ), एम्बेडेड फ़ाइलें और संलग्नक, वैकल्पिक सामग्री समूह (परतें) और गैर-फॉर्म सामग्री के लिए टैग किए गए-PDF पहुँच संरचना के लिए। फॉर्म-संबंधित टैग फ़ील्ड के साथ हटा दिए जाते हैं, जो फ्लैटन के लिए अपेक्षित व्यवहार है। हाइपरलिंक बच जाते हैं जब「एनोटेशन फ्लैट करें」अनचेक होता है; जब दोनों विकल्प चेक होते हैं, Link एनोटेशन हॉटस्पॉट भी हटा दिए जाते हैं (दृश्य रेखांकित टेक्स्ट रहता है)।
पासवर्ड-संरक्षित PDF का क्या?
फ्लैट एक एन्क्रिप्टेड PDF पर नहीं चल सकता: pdf-lib को फॉर्म संरचना पढ़नी होगी, और पढ़ने को डिक्रिप्शन द्वारा रोका गया है। पहले PDF को मुफ़्त PDF अनलॉक ऑनलाइन के साथ अनलॉक करें, फिर फ्लैट करें। यदि आप चाहते हैं कि फ्लैट आउटपुट पासवर्ड-सुरक्षित हो, उसके बाद उसे PDF को पासवर्ड से सुरक्षित करें के माध्यम से चलाएं। तीन-चरण अनलॉक, फ्लैट, सुरक्षा अनुक्रम「अंतिम और पुनः-सुरक्षित」अभिलेखीय पाइपलाइनों के लिए मानक कार्यप्रवाह है।
क्या यह PDF में प्रिंट करने के समान है?
व्यावहारिक रूप से समान, संरचनात्मक रूप से अलग। PDF में प्रिंट करना ऑपरेटिंग सिस्टम की प्रिंट पाइपलाइन के माध्यम से पृष्ठ को रास्टराइज़ या पुनर्आवश्यक करता है, जो आमतौर पर साइड इफ़ेक्ट के रूप में फ़ील्ड फ्लैट करता है लेकिन छवियों को फिर से एन्कोड करता है, फ़ॉन्ट को विभिन्न उपसमुच्चयों में फिर से एम्बेड करता है, और कभी-कभी पृष्ठ आकार या मार्जिन बदलता है। इस टूल का फ्लैट सीधे PDF ऑब्जेक्ट संरचना पर संचालित होता है, मूल छवियों, फ़ॉन्ट और पृष्ठ ज्यामिति को बिल्कुल संरक्षित करता है। जब आप एक ताज़ी रास्टराइज़ की हुई प्रति चाहते हैं तो प्रिंट-टू-PDF का उपयोग करें; जब आप केवल फॉर्म संरचना हटाई हुई मूल PDF चाहते हैं तो फ्लैट का उपयोग करें।
क्या डेस्कटॉप या कमांड-लाइन समकक्ष है?
pdf-lib Node.js में चलता है (npm install pdf-lib) और फ्लैट कॉल समान है: await form.flatten() उसके बाद await pdfDoc.save()। कमांड-लाइन के लिए, qpdf के पास एक आंशिक समकक्ष है (qpdf --flatten-rotation --generate-appearances) जो उपस्थिति पुनर्जनन को संभालता है लेकिन फॉर्म-हटाने का चरण नहीं; pdftk का flatten ऑपरेशन हटाने को करता है लेकिन उपस्थिति पुनर्जनन छोड़ देता है। Adobe Acrobat Pro का「Flatten Fields」मेनू आइटम दोनों चरणों को मूल रूप से संभालता है और व्यवहार समता के लिए संदर्भ है।