इस पेज का कोड चालू नहीं हुआ।

index.html को सीधे किसी फ़ोल्डर से खोलने पर ब्राउज़र JavaScript मॉड्यूल रोक देता है, इसलिए उसमें क्या जाएगा चुनने पर कुछ नहीं होगा। इसके बजाय फ़ोल्डर को http पर सर्व कीजिए:

powershell -ExecutionPolicy Bypass -File serve.ps1

फिर http://localhost:8080/ खोलिए।

QR और बारकोड — QR कोड या बारकोड बनाइए, ऑफ़लाइन

टाइप कीजिए, और वह कोड बन जाता है। बनाने के लिए कुछ भी कहीं नहीं भेजा जाता।

भाषा: हिन्दी
कोड देखें
यह टूल कोड और उनमें लिखा टेक्स्ट कभी अपलोड नहीं करता। यहाँ कोई सर्वर है ही नहीं।

QR कोड किसी लाइन पर की गई गणित भर है। न भेजने को कोई फ़ाइल, न पूछने को कोई सेवा। मोड चुनना, वर्ज़न तय करना, Reed-Solomon एरर करेक्शन, मास्क, बारकोड की धारियाँ और उसके नीचे का चेक डिजिट, हर कदम इसी पेज की करीब एक हज़ार पंक्ति JavaScript में होता है, जिसे आप पढ़ सकते हैं। इस टूल में किसी भी तरह की कोई नेटवर्क सुविधा है ही नहीं, और यह बात यहाँ ज़्यादातर पेजों से कहीं ज़्यादा मायने रखती है, क्योंकि जो चीज़ एनकोड की जा रही है वह अक्सर Wi-Fi का पासवर्ड होती है।

लाइव जाँच: जाँच जारी…

ऑफ़लाइन: जाँच जारी…

हमारी बात पर भरोसा मत कीजिए। DevTools खोलिए, Network टैब पर नज़र रखिए, और Wi-Fi वाले फ़ॉर्म में कोई पासवर्ड टाइप कीजिए। एक भी रिक्वेस्ट उसका एक अक्षर तक नहीं ढोती। या फिर इंटरनेट काट दीजिए और तब भी कोड बनाकर देखिए।

1 तय कीजिए कि कैसा कोड चाहिए

QR कोड कुछ भी ढो लेता है और फ़ोन का कैमरा उसी को ढूँढ़ता है। बारकोड एक संख्या ढोता है, और आपको कौन-सा चाहिए यह आम तौर पर वही दुकान, गोदाम या शिपिंग कंपनी पहले ही तय कर चुकी होती है जो उसे माँग रही है।

2 बताइए कि उसमें क्या जाएगा

वह ठीक लाइन जो यह कोड ढोएगा
 

3 चुनिए कि यह दिखे कैसा

हाशिया कोड का हिस्सा है, उसके चारों ओर की जगह भर नहीं। विनिर्देश चार मॉड्यूल माँगता है, और किनारे तक काटा गया कोड वह है जिसे बहुत सारे स्कैनर देख ही नहीं पाएँगे।

नीचे अक्षर भी छापिए जब स्कैनर काम न करे तो आदमी क्या पढ़े, यही। दुकान वाले कोड पर अंक हाशियों में भी बैठते हैं, और यह जान-बूझकर है: वे उस सफ़ेद जगह की हद बता देते हैं जिसे किसी को काटना नहीं चाहिए।

कोई चेक कैरेक्टर जोड़िए Code 39 आम तौर पर एक नहीं ढोता। कुछ व्यवस्थाएँ इस पर अड़ती हैं; इसे सिर्फ़ तब जोड़िए जब आपकी अड़ती हो, क्योंकि जो रीडर इसकी उम्मीद नहीं कर रहा वह इसे आखिर में जुड़ा एक अतिरिक्त अक्षर पढ़ लेगा।

बैकग्राउंड बिलकुल नहीं पारदर्शी, ऐसी किसी चीज़ पर रखने के लिए जिसका अपना रंग पहले से है। SVG और PNG दोनों उसे बचाए रखती हैं; पीछे आखिर में जो भी बैठे उसका हल्का होना ज़रूरी है, वरना स्कैनर को कोई अंतर मिलेगा ही नहीं।

QR कोड
रंग और आकार

4 इसे ले जाइए

रखने लायक SVG ही है। वह कोड को पिक्सलों के बजाय निर्देशों के रूप में रखती है, इसलिए किसी भी साइज़ पर बिना नरम पड़े छपती है। यह बात यहाँ ज़्यादातर तस्वीरों से कहीं ज़्यादा मायने रखती है, क्योंकि धुँधला किनारा ठीक वही चीज़ है जिसे स्कैनर सुलझा नहीं पाता।

Markdown के रूप में देखें

बिना कुछ अपलोड किए QR कोड कैसे बनाएँ

  1. तय कीजिए कि कैसा कोड चाहिए। QR कोड कुछ भी ढो लेता है और फ़ोन का कैमरा उसी को ढूँढ़ता है, इसलिए जब तक किसी ने कुछ और न कहा हो, जवाब वही है। बारकोड एक संख्या ढोता है, और आपको कौन-सा चाहिए यह वह तय करता है जो उसे स्कैन करने वाला है। दुकान को EAN-13 या UPC-A चाहिए, माल के कार्टन को ITF-14, और भीतरी कामों के लिए आम तौर पर Code 128।
  2. बताइए कि उसमें क्या जाएगा। आम मामला लिंक का होता है, और उसके ऊपर बने खाने वे दूसरे फ़ॉर्मैट बना देते हैं जिन्हें फ़ोन पहचानते हैं। ऐसा Wi-Fi नेटवर्क जो खुद जुड़ने की पेशकश करता है, ऐसा कॉन्टैक्ट कार्ड जो खुद सहेजे जाने की पेशकश करता है, कोई ईमेल, कोई संदेश, कोई फ़ोन नंबर, नक्शे पर कोई जगह। आप जो भी चुनें, तैयार लाइन पेज पर दिख जाती है, और QR कोड कभी उससे ज़्यादा कुछ ढोता ही नहीं।
  3. तय कीजिए कि यह कितनी चोट सह सके। चारों स्तर उसमें कम या ज़्यादा एरर करेक्शन भरते हैं, और ज़्यादा करेक्शन का मतलब बड़ा और सघन कोड। स्क्रीन के लिए L काफ़ी है, आम कागज़ के लिए M, और उस चीज़ के लिए H जिसे हाथ लगेंगे, जो छोटी छपेगी, या जो धूप में खिड़की पर चिपकेगी। जिस मेन्यू को रोज़ पोंछा जाता है, उस पर लगे कोड के लिए Q या H पैसा वसूल है।
  4. साइज़, हाशिया और रंग तय कीजिए। हाशिया कोड का ही हिस्सा है। विनिर्देश उसके चारों ओर चार मॉड्यूल की खाली जगह माँगता है, और उसे काट देना ही वह सबसे आम अकेली वजह है जिससे छपा हुआ कोड स्कैन नहीं होता। रंग हल्के पर गहरा रखिए, और असली अंतर के साथ। स्कैनर दोनों का फ़र्क पढ़ता है, इसलिए सफ़ेद पर फीका भूरा नहीं चलेगा, और गहरे पर हल्का तो बहुत सारे रीडरों में सिरे से नाकाम रहता है।
  5. जो फ़ोन आपके पास है, उसी से जाँच लीजिए। एक हज़ार कोड छापने से पहले, स्क्रीन पर दिखते एक कोड को स्कैन कर लीजिए। इसमें दस सेकंड लगते हैं, और यह गलतियों की वह पूरी जमात पकड़ लेता है जो प्रीव्यू नहीं पकड़ सकता। ऐसा Wi-Fi पासवर्ड जिसमें कोई अक्षर बचाया जाना चाहिए था, ऐसा लिंक जिसमें https:// छूट गया, ऐसा बारकोड नंबर जो एक अंक छोटा है।
  6. SVG ले जाइए। वह कोड को पिक्सलों के बजाय निर्देशों के रूप में रखती है, इसलिए किसी भी साइज़ पर बिना नरम पड़े छपती है, और नरम किनारा ठीक वही चीज़ है जिसे स्कैनर सुलझा नहीं पाता। आप जहाँ चिपका रहे हैं वह SVG लेता ही न हो, तो PNG भी ले जाइए। वह हर मॉड्यूल पर पूरे-पूरे पिक्सल में खींची जाती है, इसलिए उसके किनारे भी धुँधले नहीं होते।

विस्तार से

ऐसा QR कोड कैसे बनाएँ जो किसी और के फ़ोन पर भी स्कैन हो एरर-करेक्शन का कौन-सा स्तर चुनें, QR कोड के चारों ओर की सफ़ेद हाशिया-पट्टी कोड का ही हिस्सा क्यों है, उसे कितना बड़ा छापें, और मुफ़्त जनरेटर का 'डायनैमिक' कोड आपसे आगे चलकर क्या वसूलता है।

सवाल

क्या मेरा टाइप किया कुछ कहीं भेजा जाता है?

नहीं। QR कोड किसी लाइन पर की गई गणित भर है, और वह गणित आपके अपने ब्राउज़र में, आपकी अपनी मशीन पर चलती है। इस टूल में किसी भी तरह की कोई नेटवर्क सुविधा है ही नहीं, यानी यह न कभी कुछ मँगाता है, न कभी कुछ भेजता है। और पेज की Content-Security-Policy उन सारे पतों के नाम गिना देती है जिनसे यह संपर्क कर सकता है, जिनमें से एक भी इस साइट का नहीं है। यहाँ इसकी कीमत ज़्यादातर पेजों से ज़्यादा है, क्योंकि QR कोड में लोग सबसे अक्सर अपने Wi-Fi का पासवर्ड डालते हैं।

क्या इन कोडों की कोई मियाद होती है, या ये बाद में काम करना बंद कर देते हैं?

नहीं, और ऐसा हो ही नहीं सकता। आप जो टाइप करते हैं, कोड में वही होता है, इसलिए उसे स्कैन करने पर हमेशा ठीक वही लाइन वापस मिलती है। मियाद उन कोडों की होती है जिनके भीतर किसी और का पता होता है। “डायनैमिक” QR कोड में जनरेटर के सर्वर का लिंक होता है, जो आगे आपकी साइट पर भेजता है, यानी वे हर स्कैन गिन सकते हैं, यह बदल सकते हैं कि वह कहाँ जाए, या ट्रायल खत्म होने पर उसे बंद कर सकते हैं। यहाँ कुछ भी किसी के रास्ते से होकर आगे नहीं भेजा जाता।

क्या यह मुफ़्त है, और क्या मैं इसे व्यावसायिक तौर पर इस्तेमाल कर सकता हूँ?

यह मुफ़्त है, यहाँ न कोई खाता है, न वॉटरमार्क, और न इस पर कोई सीमा कि आप कितने बनाएँ। नतीजे को आप किसी उत्पाद, पोस्टर या दुकान के मुख पर लगा सकते हैं। QR Code, Denso Wave का पंजीकृत ट्रेडमार्क है, और उन्होंने कहा है कि वे कोड इस्तेमाल करने वालों के खिलाफ़ उसका इस्तेमाल नहीं करेंगे। विनिर्देश ISO/IEC 18004 के रूप में प्रकाशित है और उसे लागू करना मुफ़्त है, और यह पेज वही करता है। साइट पर विज्ञापन हैं, और खर्च वही उठाते हैं।

मुझे एरर करेक्शन का कौन-सा स्तर चुनना चाहिए?

कोई खास वजह न हो तो M। L सबसे छोटा कोड बनाता है और स्क्रीन पर ठीक रहता है, M आम हाथ-लगाई सह लेता है, और Q तथा H उस कोड के लिए हैं जो छोटा छपेगा, लैमिनेट होगा, खिड़की पर चिपकेगा, या जिसका कुछ हिस्सा किसी लोगो से ढँक जाएगा। हर अगला स्तर उसमें और जाँच-डेटा भरता है, जिसके लिए उतने ही टेक्स्ट पर बड़ा सिंबल चाहिए। L से H पर जाने में उसी लाइन के लिए मॉड्यूल की गिनती लगभग दोगुनी हो जाती है।

एक QR कोड कितना कुछ ढो सकता है?

सबसे बड़े साइज़ पर, यानी 177 मॉड्यूल के वर्ग में, 7,089 अंक तक, 4,296 बड़े अक्षर और अंक तक, या बाकी किसी भी चीज़ के 2,953 बाइट तक। यह सबसे कमज़ोर एरर करेक्शन पर है, और सबसे मज़बूत पर यह इसका करीब एक-तिहाई रह जाता है। व्यवहार में सीमा फ़ॉर्मैट नहीं, स्कैनर लगाता है। कुछ सौ अक्षरों के आगे मॉड्यूल इतने छोटे पड़ जाते हैं कि आम फ़ोन का कैमरा उन्हें हाथ भर दूरी से सुलझा ही नहीं पाता। लंबा कोड आम तौर पर इस बात का संकेत है कि उसमें कोई छोटा लिंक होना चाहिए था।

लिंक को छोटे अक्षरों में लिखने पर मेरा कोड बड़ा क्यों हो जाता है?

क्योंकि QR कोड में बड़े अक्षरों और अंकों के लिए एक मोड होता है जो ग्यारह बिट में दो अक्षर ठूँस देता है, और छोटे अक्षरों के लिए ऐसा कोई मोड नहीं, जिनका हर अक्षर आठ बिट लेता है। HTTPS://EXAMPLE.COM/PAGE लिखा URL उसी URL के छोटे अक्षरों वाले रूप से एक-तिहाई तक छोटा हो सकता है। स्कीम और होस्ट में छोटे-बड़े अक्षर का फ़र्क नहीं पड़ता, इसलिए उन्हें चिल्लाकर लिखने से साइज़ के सिवा कुछ नहीं बदलता। होस्ट के बाद वाले रास्ते में फ़र्क पड़ता है, इसलिए उसे हाथ मत लगाइए।

क्या यह QR कोड बनाने के साथ-साथ पढ़ भी सकता है?

यह पन्ना नहीं, पर बगल वाला हाँ: रीडर कोई फ़ोटो, स्क्रीनशॉट या आपका कैमरा लेता है और उसमें लिखी बात लौटा देता है। कोड बनाने से यह कहीं बड़ा काम है — तस्वीर में सिंबल ढूँढ़ना, जिस कोण से वह खींची गई उसका हिसाब बैठाना और चोट की मरम्मत करना, ये तीन समस्याएँ इस पन्ने के सामने हैं ही नहीं — इसीलिए वह अपना अलग टूल है, यहाँ का कोई बटन नहीं। वह उन्हीं शर्तों पर चलता है जिन पर बाकी सब: कुछ अपलोड नहीं, और कैमरे का कोई फ़्रेम सहेजा नहीं जाता।

हाशिया किस काम का है, और क्या मैं उसे छोटा कर सकता हूँ?

QR कोड के चारों ओर की सफ़ेद जगह कोड का ही हिस्सा है। रीडर उसी से पता लगाता है कि सिंबल कहाँ खत्म होता है, और विनिर्देश हर तरफ़ चार मॉड्यूल माँगता है, जबकि बारकोड को करीब दस चाहिए। आप इसे यहाँ शून्य कर सकते हैं और तस्वीर ज़्यादा सुथरी लगेगी, पर तब बहुत सारे स्कैनर उसे देख ही नहीं पाएँगे, खासकर किसी भरे-भरे बैकग्राउंड पर। दिक्कत जगह की हो, तो हाशिया काटने के बजाय कोड को ही छोटा कर लीजिए।

मुझे कौन-सा बारकोड चाहिए?

वही जो स्कैन करने वाला माँगे। EAN-13 उत्तरी अमेरिका के बाहर की दुकानों वाला बारकोड है और UPC-A उत्तरी अमेरिका वाला। दोनों के लिए GS1 से आपको जारी हुआ नंबर चाहिए, क्योंकि वह नंबर सिर्फ़ उत्पाद की नहीं, आपकी कंपनी की भी पहचान है। EAN-8 छोटे पैकेटों के लिए छोटा रूप है। ITF-14 माल के कार्टन पर जाता है। Code 128 और Code 39 अंकों के साथ टेक्स्ट भी ढोते हैं और उनके लिए कोई पंजीकरण चाहिए ही नहीं, जिससे वे भीतरी हर काम के लिए सही जवाब बन जाते हैं, चाहे वह सामान हो, खाना हो, या काम की पर्चियाँ।

चेक डिजिट क्या है, और टूल ने उसे जोड़ा क्यों?

वह दुकान वाले बारकोड का आखिरी अंक है, जो उससे पहले वाले अंकों से निकाला जाता है, ताकि स्कैनर गलत पढ़े गए और ठीक पढ़े गए में फ़र्क बता सके। EAN-13 को बारह अंक चाहिए और तेरहवाँ वह खुद निकालता है, UPC-A को ग्यारह चाहिए और बारहवाँ वह खुद निकालता है। छोटा नंबर टाइप कीजिए, यह पेज उसे जोड़ देता है। पूरा नंबर टाइप कीजिए, यह आपके दिए अंक की जाँच करता है, और चुपचाप सुधारने के बजाय मना कर देता है। चुपचाप ठीक किया गया गलत अंक ऐसा लेबल बनता है जो किसी और के उत्पाद के रूप में स्कैन होता है।

क्या मैं QR कोड के बीचोंबीच लोगो रख सकता हूँ?

यहाँ नहीं, पर यह जान लेना काम का है कि वह कहीं और चलता क्यों है। उसे मुमकिन बनाता है एरर करेक्शन। H स्तर पर करीब 30% मॉड्यूल तबाह हो जाने पर भी कोड पढ़ा जा सकता है, इसलिए बीच में उससे कुछ कम जगह ढँकने वाला लोगो ऐसी चोट है जिसकी मरम्मत हो जाती है, और बीच में कोई फ़ाइंडर पैटर्न बैठता भी नहीं। कोड को H स्तर पर बनाकर अपने इमेज एडिटर से गुज़ारिए, लोगो को करीब पाँचवें हिस्से से कम रखिए, और उस पर भरोसा करने के बजाय उसे किसी असली फ़ोन से जाँच लीजिए।

SVG, PNG से बेहतर क्यों है?

क्योंकि कोड किनारों से बनता है, और PNG के पास उन्हें बनाने को गिनती के पिक्सल होते हैं। उसे बड़ा कीजिए और हर किनारा नरम पड़ जाता है, और नरम किनारा ठीक वही चीज़ है जिससे स्कैनर को दिक्कत होती है। 1200 dpi वाले प्रिंटर को 512 पिक्सल की PNG देना उससे यह कहना है कि फ़र्क वह खुद गढ़ ले। SVG वर्गों को निर्देशों के रूप में रखती है, इसलिए वह विज़िटिंग कार्ड पर भी उतनी ही साफ़ छपती है और होर्डिंग पर भी। यहाँ की PNG हर मॉड्यूल पर पूरे-पूरे पिक्सल में खींची जाती है, और PNG इससे बेहतर कर भी नहीं सकती।

क्या यह ऑफ़लाइन चलता है?

हाँ। पेज एक बार लोड कर लीजिए, फिर इंटरनेट काट दीजिए, यह चलता रहेगा। कुछ अपलोड नहीं हो रहा, यह साबित करने का सबसे आसान तरीका भी यही है। जो टूल आपका टेक्स्ट कोड बनवाने के लिए कहीं भेजता, वह प्लग निकालते ही रुक जाता।