उपयोग कैसे करें
- Base64 स्ट्रिंग को इनपुट बॉक्स में पेस्ट करें। चाहें तो data:application/pdf;base64, से शुरू होने वाला पूरा data URI भी पेस्ट कर सकते हैं।
- जाँचें कि फ़ाइल PDF के रूप में पहचानी गई है, और उसे व्यूअर में पढ़ें।
- PDF को अपने डिवाइस पर सहेजने के लिए उसे डाउनलोड करें।
API रिस्पॉन्स से Base64 कॉपी करना
इनवॉइस, शिपिंग लेबल, रिपोर्ट या हस्ताक्षरित अनुबंध बनाने वाली सेवाएँ अक्सर PDF को JSON के अंदर लौटाती हैं, जैसे {"filename": "label.pdf", "data": "JVBERi0..."}। फ़ील्ड के नाम के बाद उद्धरण चिह्नों के बीच का टेक्स्ट ही कॉपी करें, और इन बातों का ध्यान रखें:
- एस्केप किए गए स्लैश। कुछ JSON एनकोडर, जिनमें PHP का
json_encodeभी शामिल है, हर/को\/के रूप में लिखते हैं। चूँकि/Base64 का एक सामान्य अक्षर है, पेस्ट करने से पहले\/को/से बदलें, या पहले JSON पार्स करके मान कॉपी करें। - उद्धरण चिह्न और कॉमा। आसपास के उद्धरण चिह्न और अंत का कोई भी कॉमा छोड़ दें।
- लाइन ब्रेक। Base64 के अंदर स्पेस और असली लाइन ब्रेक, जैसे 76 अक्षरों पर रैप किया गया मान, ठीक हैं और उन्हें हटाने की ज़रूरत नहीं है। रॉ JSON में शाब्दिक
\nया\r\nसीक्वेंस अलग बात है: ये बैकस्लैश वाले अक्षर हैं और इन्हें हटाना ज़रूरी है।
ब्राउज़र के डेवलपर टूल के पार्स किए गए व्यू से मान कॉपी करने पर एस्केपिंग की ये सारी समस्याएँ आती ही नहीं।
ईमेल से PDF अटैचमेंट निकालना
ईमेल अटैचमेंट रॉ संदेश के अंदर Base64 के रूप में रखे जाते हैं। संदेश का सोर्स खोलें (Gmail में "Show original", Thunderbird में "Message Source", Apple Mail में "Raw Source") और वह हिस्सा ढूँढ़ें जिसके हेडर में Content-Type: application/pdf (या .pdf फ़ाइल नाम के साथ application/octet-stream) और Content-Transfer-Encoding: base64 हों। उन हेडर के नीचे की ख़ाली लाइन के बाद से शुरू होकर -- से शुरू होने वाली अगली लाइन से पहले तक का ब्लॉक कॉपी करें; वह लाइन MIME बाउंड्री होती है। उसे यहाँ जैसा है वैसा ही पेस्ट करें; लाइन ब्रेक अनदेखे कर दिए जाते हैं।
अपने वेब ऐप में Base64 PDF दिखाना
जब आपके फ़्रंट एंड को Base64 PDF मिलती है और उसे दिखाना होता है, तो Blob URL, data URI से ज़्यादा भरोसेमंद है, क्योंकि कुछ ब्राउज़र data URI को नए टैब में खोलने से मना कर देते हैं:
const bytes = Uint8Array.from(atob(base64), c => c.charCodeAt(0));
const blob = new Blob([bytes], { type: 'application/pdf' });
const url = URL.createObjectURL(blob);
window.open(url); // या इसे किसी <iframe> के src के रूप में इस्तेमाल करें
दस्तावेज़ की ज़रूरत ख़त्म होने पर मेमोरी ख़ाली करने के लिए URL.revokeObjectURL(url) कॉल करें। ध्यान दें कि atob केवल मानक Base64 वर्णमाला स्वीकार करता है, इसलिए URL-सुरक्षित इनपुट (- और _) को पहले कन्वर्ट करें।
अक्सर पूछे जाने वाले प्रश्न
मेरा Base64 PDF के रूप में क्यों नहीं पहचाना जा रहा?
JVBERi0 से शुरू होती है, जो %PDF- का एनकोड किया गया रूप है। अगर आपकी स्ट्रिंग उद्धरण चिह्न, फ़ील्ड नाम या किसी और टेक्स्ट से शुरू होती है, तो उसे हटा दें। अगर वह SlZCRVJ से शुरू होती है, तो PDF को दो बार Base64 में एनकोड किया गया है: उसे एक बार Base64 डिकोडर से डिकोड करें और परिणाम यहाँ पेस्ट करें। वरना डेटा किसी दूसरे प्रकार की फ़ाइल हो सकता है, जिसे Base64 से फ़ाइल पहचान सकता है।PDF डाउनलोड तो होती है, पर खुलती नहीं। क्या गड़बड़ हुई?
सबसे संभावित कारण यह है कि Base64 कट गया था। लॉग, कंसोल और डेटाबेस टूल अक्सर लंबे मान छोटे कर देते हैं, और जिस PDF का अंतिम हिस्सा गायब हो, उसे पढ़ा नहीं जा सकता, क्योंकि हर पेज की जगह बताने वाली क्रॉस-रेफ़रेंस टेबल फ़ाइल के अंत के पास रखी होती है। पूरा मान फिर से कॉपी करें, बेहतर होगा कि मूल रिस्पॉन्स को किसी फ़ाइल में सहेजकर।
मेरे फ़ोन पर पूर्वावलोकन ख़ाली दिखता है। क्या फ़ाइल ख़राब है?
ज़रूरी नहीं। कुछ मोबाइल ब्राउज़र पेज के अंदर PDF नहीं दिखा सकते। जाँचने के लिए फ़ाइल डाउनलोड करें और उसे किसी PDF रीडर में खोलें।
क्या पासवर्ड से सुरक्षित PDF डिकोड की जा सकती है?
हाँ। डिकोडिंग फ़ाइल को उसके एन्क्रिप्शन सहित बाइट-दर-बाइट वापस बना देती है। पूर्वावलोकन पासवर्ड माँग सकता है या ख़ाली रह सकता है, और डाउनलोड की गई फ़ाइल पासवर्ड डालने के बाद किसी भी PDF रीडर में खुल जाती है।
क्या दस्तावेज़ कहीं अपलोड होता है?
नहीं। डिकोडिंग और पूर्वावलोकन आपके ब्राउज़र में होते हैं, इसलिए अनुबंध, सैलरी स्लिप या मेडिकल रिकॉर्ड जैसी गोपनीय PDF आपके डिवाइस पर ही रहती हैं।