From bceedc2fb81975c4d367a17e8eef50e95c439fe2 Mon Sep 17 00:00:00 2001 From: Muhammad Adil Date: Wed, 15 Jul 2026 14:55:24 +0000 Subject: [PATCH] Add 1 barcode python tutorials MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Categories: general Source: AI Search API Tutorials: - How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide Auto-generated by Professionalize.Tutorials Agent --- .../_index.md | 310 +++++++++++++++++ .../_index.md | 305 +++++++++++++++++ .../_index.md | 308 +++++++++++++++++ .../_index.md | 314 +++++++++++++++++ .../_index.md | 312 +++++++++++++++++ .../og-image.png | Bin 0 -> 53399 bytes .../_index.md | 314 +++++++++++++++++ .../_index.md | 318 ++++++++++++++++++ .../_index.md | 312 +++++++++++++++++ .../_index.md | 306 +++++++++++++++++ .../_index.md | 305 +++++++++++++++++ .../_index.md | 291 ++++++++++++++++ .../_index.md | 312 +++++++++++++++++ .../_index.md | 292 ++++++++++++++++ .../_index.md | 305 +++++++++++++++++ .../_index.md | 309 +++++++++++++++++ .../_index.md | 295 ++++++++++++++++ .../_index.md | 313 +++++++++++++++++ .../_index.md | 312 +++++++++++++++++ .../_index.md | 311 +++++++++++++++++ .../_index.md | 309 +++++++++++++++++ .../_index.md | 311 +++++++++++++++++ .../_index.md | 282 ++++++++++++++++ .../_index.md | 315 +++++++++++++++++ 24 files changed, 7061 insertions(+) create mode 100644 barcode/arabic/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/chinese/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/czech/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/dutch/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/english/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/english/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/og-image.png create mode 100644 barcode/french/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/german/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/greek/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/hindi/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/hongkong/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/hungarian/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/indonesian/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/italian/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/japanese/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/korean/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/polish/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/portuguese/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/russian/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/spanish/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/swedish/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/thai/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/turkish/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md create mode 100644 barcode/vietnamese/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md diff --git a/barcode/arabic/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/arabic/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..d61250377 --- /dev/null +++ b/barcode/arabic/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,310 @@ +--- +category: general +date: 2026-07-15 +description: كيفية إنشاء صورة رمز QR في بايثون باستخدام Aspose.Barcode. تعلم خطوة + بخطوة إنشاء رمز QR مع نص مشفر موسع، ترميز ECI، ودعم Unicode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: ar +lastmod: 2026-07-15 +og_description: كيفية إنشاء صورة رمز QR في بايثون باستخدام Aspose.Barcode. يوضح هذا + الدليل كيفية إنشاء رموز QR باستخدام النص الموسع، وترميز ECI، وحروف Unicode. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: كيفية إنشاء صورة رمز QR في بايثون – دليل Aspose.Barcode الكامل +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: كيفية إنشاء صورة رمز QR في بايثون باستخدام Aspose.Barcode – دليل كامل +url: /ar/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية إنشاء صورة رمز QR في بايثون باستخدام Aspose.Barcode – دليل كامل + +هل تساءلت يوماً **كيف تنشئ صورة رمز QR** في بايثون دون البحث في عشرات المكتبات؟ لست وحدك. يحتاج العديد من المطورين إلى طريقة موثوقة لتضمين نص متعدد اللغات—مثل الروسية أو العربية أو الرموز التعبيرية—داخل رمز QR، وغالباً ما تقصر المكتبات المدمجة في ذلك. + +الأمر هو أن Aspose.Barcode للبايثون يجعل ذلك سهلًا بشكل غير متوقع. في هذا الدليل سنستعرض الخطوات الدقيقة، من تثبيت الحزمة إلى إنشاء سلسلة نصية موسعة تجمع بين ASCII العادي ونص Unicode مشفر بـ ECI. في النهاية ستحصل على صورة QR جاهزة للاستخدام محفوظة على القرص. + +## ما يغطيه هذا الدليل + +- تثبيت **Aspose.Barcode** للبايثون (متوافق مع Python 3.8+) +- بناء **نص موسع** يجمع بين مقاطع عادية ومقاطع Unicode +- استخدام **ترميز ECI** لتصحيح عرض الأحرف الروسية +- تكوين `BarcodeGenerator` لإنشاء رمز QR +- حفظ الصورة الناتجة بصيغة PNG +- نصائح، أخطاء شائعة، وأفكار للخطوات التالية (مثل إضافة شعارات أو تعديل مستوى تصحيح الأخطاء) + +لا تحتاج إلى أي خبرة سابقة مع Aspose؛ فقط إعداد بايثون أساسي وفضول حول رموز QR. + +--- + +## المتطلبات المسبقة + +قبل أن نبدأ، تأكد من وجود ما يلي: + +1. **Python 3.8 أو أحدث** مثبت على جهازك. +2. **بيئة افتراضية** (اختيارية لكن مستحسنة) للحفاظ على نظافة الاعتمادات. +3. إمكانية الوصول إلى **pip** لتثبيت حزمة `aspose-barcode`. +4. صلاحية كتابة في المجلد الذي سيُحفظ فيه ملف PNG الناتج. + +إذا كان أي من هذه غير مألوف لك، توقف هنا وقم بإعدادها—وبمجرد أن تكون جاهزة، سيكون الباقي سهلًا. + +--- + +## الخطوة 1: تثبيت Aspose.Barcode للبايثون + +العقبة الأولى هي الحصول على المكتبة. تقوم Aspose بنشر حزمها على PyPI، لذا أمر `pip` واحد يكفي: + +```bash +pip install aspose-barcode +``` + +> **نصيحة احترافية:** إذا كنت داخل بيئة افتراضية، ستحافظ على نظافة الحزم العامة. إذا واجهت أخطاء صلاحية، أضف `--user` أو نفّذ الأمر مع `sudo` (على الرغم من أن الأخير نادرًا ما يكون مطلوبًا في الإعدادات الحديثة). + +بعد انتهاء التثبيت، يمكنك التحقق منه باستخدام: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +إذا طُبع الإصدار دون أي شكوى، فأنت جاهز للمتابعة. + +--- + +## الخطوة 2: إنشاء كائن **Extended Codetext Builder** + +توفر Aspose.Barcode الفئة `ExtCodetextBuilder` لتجميع حمولة QR معقدة. فكر فيها كمحرر نص صغير يعرف كيف يضيف الأحرف التحكمية الصحيحة لكل مقطع. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +لماذا نستخدم الـ builder؟ الجمع اليدوي للبايتات عرضة للأخطاء؛ الـ builder يضمن التحولات الصحيحة لـ ECI (Extended Channel Interpretation)، بحيث يستطيع ماسح QR فك تشفير كل لغة بدقة. + +--- + +## الخطوة 3: بدء جديد (اختياري لكن نظيف) + +إذا أعدت استخدام نفس كائن الـ builder، فإن استدعاء `clear()` يمسح أي بيانات سابقة. هذا يُعد شبكة أمان تمنع تسرب المقاطع غير المرغوب فيها إلى رمز QR التالي. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +يمكنك تخطي هذا السطر في المرة الأولى التي تشغّل فيها السكريبت، لكن إبقائه يجعل الكود متطابقًا—مفيد عندما تدمج هذه المنطق داخل دالة قد تُستدعى مرارًا. + +--- + +## الخطوة 4: إضافة مقطع عادي (غير مشفر) + +تبدأ معظم رموز QR بسلسلة ASCII بسيطة—ربما معرف أو رابط. طريقة `add_plain_codetext` تضيف ذلك بالضبط، دون أي علامة ECI. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +في هذا المثال نستخدم `"HelloWorld"` كعنصر نائب. استبدله بأي شيء تحتاجه—مثل SKU منتج أو رسالة قصيرة. + +--- + +## الخطوة 5: إضافة مقطع **مشفر بـ ECI** (UTF‑8 = 26) + +الآن للجزء متعدد اللغات. قيمة ECI **26** تمثل UTF‑8، المعيار الفعلي لـ Unicode. بتمرير `26` مع عبارة روسية، نخبر ماسح QR بالتحول إلى UTF‑8 قبل قراءة الأحرف التالية. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +يمكنك استبدال `26` بقيم ECI أخرى (مثلاً `27` لـ ISO‑8859‑1) إذا احتجت ترميزًا مختلفًا. الـ builder سيضيف الأحرف التحكمية المناسبة تلقائيًا. + +--- + +## الخطوة 6: استرجاع النص الموسع المدمج + +بعد إضافة جميع المقاطع، استخرج السلسلة النهائية التي سيستهلكها مولد QR. هذه السلسلة تحتوي على تسلسلات تحكم غير مرئية، لكن يمكنك طباعتها للتصحيح. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +سيظهر الإخراج في وحدة التحكم مشوشًا (بسبب بايتات التحكم المدمجة)، وهذا طبيعي تمامًا. المهم أن الـ builder جمع بين الجزء العادي والجزء Unicode بشكل صحيح. + +--- + +## الخطوة 7: تكوين مولد الباركود + +الآن نمرر النص الموسع إلى `BarcodeGenerator` من Aspose. اضبط نوع الرمز إلى `QR` وعيّن السلسلة المدمجة إلى `code_text`. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +يمكنك تعديل خصائص إضافية هنا—مثل `resolution`، `error_correction_level`، أو `foreground_color`. تلك الخيارات موثقة في دليل Aspose، لكن للصور الأساسية الإعدادات الافتراضية تكفي. + +--- + +## الخطوة 8: حفظ صورة رمز QR المُولدة + +أخيرًا، اكتب رمز QR إلى القرص. طريقة `save` تقبل مسار ملف وصيغة اختيارية؛ PNG هو الخيار الآمن الافتراضي. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +افتح الملف الناتج `qr_extended.png` بأي عارض صور. مسحه باستخدام هاتف ذكي يجب أن يُظهر رسالتين منفصلتين: “HelloWorld” و “Привет”. معظم قارئات QR الحديثة تتعامل تلقائيًا مع تبديل ECI. + +--- + +## مثال كامل يعمل + +نجمع كل ما سبق في السكريبت الكامل الذي يمكنك نسخه ولصقه وتشغيله: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**الإخراج المتوقع** (وحدة التحكم): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +افتح `qr_extended.png` → امسحه → سترى “HelloWorld” متبوعًا بـ “Привет”. + +--- + +## أسئلة شائعة وحالات خاصة + +### 1. *ماذا لو احتجت إلى أكثر من مقطعين؟* +ما عليك سوى استدعاء `add_plain_codetext` أو `add_eci_codetext` بقدر ما تريد. الـ builder يحافظ على الترتيب الصحيح، لذا سيحتوي رمز QR على كل مقطع بالترتيب الذي تضيفه به. + +### 2. *هل يمكنني تضمين رموز تعبيرية؟* +نعم—الرموز التعبيرية مجرد أحرف Unicode. استخدم ECI UTF‑8 (القيمة 26) ومرّر سلسلة الرمز التعبيري، مثال: `builder.add_eci_codetext(26, "🚀")`. سيظهر رمز الصاروخ على القارئات الداعمة. + +### 3. *ماذا لو أصبح رمز QR كثيفًا جدًا؟* +لرموز QR حدود للإصدار. إذا تجاوزت سعة البيانات، سيقوم Aspose بزيادة الإصدار تلقائيًا إلى الحجم التالي، لكن الصورة قد تصبح أكبر. للتحكم في الحجم، يمكنك خفض مستوى تصحيح الأخطاء: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *هل يجب القلق بشأن مجموعات الأحرف غير UTF‑8؟* +فقط إذا كان لديك أنظمة قديمة تتطلب ترميزًا محددًا (مثل ISO‑8859‑1). في هذه الحالة استبدل `26` بقيمة ECI المناسبة (انظر جدول ECI في Aspose). بالنسبة لمعظم التطبيقات الحديثة، UTF‑8 هو الخيار الأكثر أمانًا. + +### 5. *كيف أضيف شعارًا في الوسط؟* +يدعم Aspose.Barcode الخاصية `barcode.generator.QRCodeParameters.logo_image`. حمّل صورة باستخدام Pillow (`from PIL import Image`) وعيّنها: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +سيُدمج الشعار مع الحفاظ على قابلية القراءة (Aspose يضبط تلقائيًا مناطق الهدوء). + +--- + +## نصائح احترافية للاستخدام في الإنتاج + +- **خزن الـ builder في الذاكرة** إذا كنت تولّد نفس QR بشكل متكرر؛ سيوفر إعادة بناء السلسلة الموسعة في كل مرة. +- **تحقق من المخرجات** باختبار وحدة يستخدم مكتبة فك تشفير QR (مثل `zxing` أو `pyzbar`) للتأكد من صحة تبديلات ECI. +- **استخدم اسم ملف حتمي** (مثلاً تضمين تجزئة للحمولة) لتجنب الكتابة فوق الصور الموجودة. +- **انتبه للترخيص**: Aspose.Barcode برنامج تجاري. النسخة التجريبية مجانية للتطوير، لكن الترخيص مطلوب للنشر في بيئة الإنتاج. + +--- + +## الخطوات التالية والمواضيع ذات الصلة + +الآن بعد أن عرفت **كيفية إنشاء رمز QR** + + +## ما الذي يجب أن تتعلمه بعد ذلك؟ + +الدروس التالية تغطي مواضيع ذات صلة وثيقة تبني على التقنيات التي تم توضيحها في هذا الدليل. كل مصدر يتضمن أمثلة شفرة كاملة مع شروحات خطوة بخطوة لمساعدتك على إتقان ميزات API إضافية واستكشاف أساليب تنفيذ بديلة في مشاريعك. + +- [كيفية إنشاء صورة باركود في جافا باستخدام Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [كيفية إنشاء باركود Aztec بنسبة عرض مخصصة باستخدام Aspose.BarCode لـ .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [كيفية إنشاء نص موسع لباركود dotcode باستخدام Aspose.BarCode لـ .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/chinese/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/chinese/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..9e4ba941e --- /dev/null +++ b/barcode/chinese/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,305 @@ +--- +category: general +date: 2026-07-15 +description: 如何使用 Aspose.Barcode 在 Python 中生成二维码图像。学习逐步创建二维码,包括扩展码文本、ECI 编码和 Unicode + 支持。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: zh +lastmod: 2026-07-15 +og_description: 如何使用 Aspose.Barcode 在 Python 中生成 QR 码图像。本指南将带您了解使用扩展代码文本、ECI 编码和 Unicode + 字符创建 QR 码的过程。 +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: 如何在 Python 中生成二维码图像 – Aspose.Barcode 完整教程 +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: 使用 Aspose.Barcode 在 Python 中生成二维码图像 – 完整指南 +url: /zh/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何使用 Aspose.Barcode 在 Python 中生成 QR 码图像 – 完整指南 + +是否曾经想过 **如何在 Python 中生成 QR 码图像** 而不必搜寻大量库?你并不孤单。许多开发者需要一种可靠的方法在 QR 码中嵌入多语言文本——比如俄语、阿拉伯语或表情符号——而内置库往往力不从心。 + +事实上,Aspose.Barcode for Python 让这件事变得异常轻松。在本教程中,我们将逐步演示完整流程,从安装包到构造混合普通 ASCII 与 ECI 编码 Unicode 的扩展 codetext 字符串。完成后,你将拥有一个可直接使用的 QR 码图像保存在磁盘上。 + +## 本指南涵盖内容 + +- 为 Python(兼容 Python 3.8+)安装 **Aspose.Barcode** +- 构建 **扩展 codetext**,将普通段落与 Unicode 段落组合 +- 使用 **ECI 编码** 正确渲染俄语字符 +- 配置 `BarcodeGenerator` 生成 QR 码 +- 将输出图像保存为 PNG 格式 +- 提示、常见陷阱以及后续思路(如添加徽标或调整纠错级别) + +无需任何 Aspose 经验;只需一个基本的 Python 环境和对 QR 码的好奇心。 + +--- + +## 前置条件 + +在开始之前,请确保你具备以下条件: + +1. **Python 3.8 或更高版本** 已安装在机器上。 +2. **虚拟环境**(可选但推荐),用于保持依赖整洁。 +3. 能使用 **pip** 安装 `aspose-barcode` 包。 +4. 对将要保存生成 PNG 的文件夹拥有写入权限。 + +如果上述任意一点不熟悉,请先停下来完成相应设置——准备好后,接下来的步骤将轻而易举。 + +--- + +## 第一步:安装 Aspose.Barcode for Python + +获取库的第一道门槛是安装它。Aspose 在 PyPI 上发布包,只需一条 `pip` 命令即可完成: + +```bash +pip install aspose-barcode +``` + +> **小贴士**:如果你在虚拟环境中操作,能够保持全局 site‑packages 干净。如果遇到权限错误,可在命令前加 `--user` 或使用 `sudo`(不过在现代环境中很少需要)。 + +安装完成后,可通过以下方式验证: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +如果版本信息正常打印,说明已准备就绪。 + +--- + +## 第二步:创建 **扩展 Codetext Builder** 实例 + +Aspose.Barcode 提供 `ExtCodetextBuilder` 类用于组合复杂的 QR 负载。可以把它看作一个小型文本编辑器,能够为每个段落自动添加正确的控制字符。 + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +为何要使用 Builder?直接拼接原始字节容易出错;Builder 能保证正确的 ECI(Extended Channel Interpretation)切换,从而让 QR 扫描器能够正确解码每种语言。 + +--- + +## 第三步:清空构建器(可选但更整洁) + +如果你重复使用同一个 Builder 实例,调用 `clear()` 可以清除之前的所有数据。这是防止残留段落泄漏到下一个 QR 码中的安全网。 + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +首次运行脚本时可以省略此行,但保留它可以让代码具备幂等性——在函数被多次调用时尤为有用。 + +--- + +## 第四步:添加普通(未编码)段落 + +大多数 QR 码以简单的 ASCII 字符串开头——可能是标识符或 URL。`add_plain_codetext` 方法正是用于添加此类内容,不会附加任何 ECI 标记。 + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +本例中使用 `"HelloWorld"` 作为占位符。请根据实际需求替换为产品 SKU、短消息等。 + +--- + +## 第五步:添加 **ECI 编码** 段落(UTF‑8 = 26) + +下面进入多语言部分。ECI 值 **26** 对应 UTF‑8,这是事实上的 Unicode 标准。将 `26` 与俄语短语一起传入,即可指示 QR 扫描器在读取后续字符前切换到 UTF‑8。 + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +如果需要其他编码,可将 `26` 替换为相应的 ECI 值(例如 `27` 表示 ISO‑8859‑1)。Builder 会自动插入正确的控制字符。 + +--- + +## 第六步:获取合并后的扩展 Codetext + +所有段落添加完毕后,提取最终字符串供 QR 生成器使用。该字符串包含不可见的控制序列,但仍可打印出来用于调试。 + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +控制台输出会出现乱码(因为嵌入了控制字节),这完全正常。关键是 Builder 已经正确地将普通和 Unicode 部分拼接在一起。 + +--- + +## 第七步:配置条形码生成器 + +现在将扩展 codetext 交给 Aspose 的 `BarcodeGenerator`。将符号类型设为 `QR`,并把合并后的字符串赋给 `code_text`。 + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +此处还可以调节其他属性——如 `resolution`、`error_correction_level` 或 `foreground_color`。这些选项在 Aspose 文档中有详细说明,但对于基础图像,默认值已足够。 + +--- + +## 第八步:保存生成的 QR 码图像 + +最后,将 QR 码写入磁盘。`save` 方法接受文件路径和可选的格式;PNG 是安全的默认选择。 + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +使用任意图像查看器打开生成的 `qr_extended.png`。用手机扫描时应能看到两条独立信息:“HelloWorld” 与 “Привет”。大多数现代 QR 读取器会自动处理 ECI 切换。 + +--- + +## 完整工作示例 + +将上述步骤整合,下面是可以直接复制运行的完整脚本: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**预期输出**(控制台): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +打开 `qr_extended.png` → 扫描 → 你将看到 “HelloWorld” 后跟 “Привет”。 + +--- + +## 常见问题与边缘情况 + +### 1. *如果需要超过两个段落怎么办?* +只需多次调用 `add_plain_codetext` 或 `add_eci_codetext`。Builder 会保持正确的顺序,QR 码将按添加顺序包含每个段落。 + +### 2. *可以嵌入表情符号吗?* +可以——表情符号本质上是 Unicode 字符。使用 UTF‑8 ECI(值 26)并传入表情字符串,例如 `builder.add_eci_codetext(26, "🚀")`。支持的扫描器会显示火箭表情。 + +### 3. *如果 QR 码变得太密集怎么办?* +QR 码有版本上限。若数据容量超出,Aspose 会自动提升版本以容纳更多数据,但图像尺寸会增大。若想控制大小,可降低纠错级别: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *是否必须考虑 UTF‑8 之外的字符集?* +仅在需要兼容旧系统且必须使用特定编码(如 ISO‑8859‑1)时才需要。此时将 `26` 替换为相应的 ECI 值(参见 Aspose 的 ECI 表)。对大多数现代应用而言,UTF‑8 是最安全的选择。 + +### 5. *如何在中心添加徽标?* +Aspose.Barcode 支持 `barcode.generator.QRCodeParameters.logo_image`。使用 Pillow 加载图像(`from PIL import Image`),然后赋值: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +徽标会在保持可扫描性的前提下覆盖在中心(Aspose 会自动调整安静区)。 + +--- + +## 生产环境使用的专业建议 + +- **缓存 Builder**:若频繁生成相同 QR,缓存已构建好的扩展字符串可避免重复拼接。 +- **验证输出**:编写单元测试,使用 `zxing` 或 `pyzbar` 解码生成的 QR,确保 ECI 切换正确。 +- **使用确定性文件名**:例如根据负载哈希生成文件名,防止覆盖已有图像。 +- **注意授权**:Aspose.Barcode 为商业软件。免费评估版适用于开发,生产环境需购买授权。 + +--- + +## 后续步骤与相关主题 + +现在你已经掌握了 **如何生成 QR 码** 的全部流程,下面的教程将进一步扩展相关技术: + +- [How to Generate Barcode Image in Java with Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to create dotcode extended codetext with Aspose.BarCode for .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/czech/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/czech/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..bf54f39ad --- /dev/null +++ b/barcode/czech/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,308 @@ +--- +category: general +date: 2026-07-15 +description: Jak vygenerovat obrázek QR kódu v Pythonu pomocí Aspose.Barcode. Naučte + se krok za krokem vytvářet QR kódy s rozšířeným textem kódu, ECI kódováním a podporou + Unicode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: cs +lastmod: 2026-07-15 +og_description: Jak vygenerovat obrázek QR kódu v Pythonu pomocí Aspose.Barcode. Tento + průvodce vás provede vytvářením QR kódů s rozšířeným textem kódu, ECI kódováním + a Unicode znaky. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Jak vygenerovat obrázek QR kódu v Pythonu – Kompletní tutoriál Aspose.Barcode +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Jak vygenerovat QR kód jako obrázek v Pythonu s Aspose.Barcode – kompletní + průvodce +url: /cs/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak vygenerovat obrázek QR kódu v Pythonu s Aspose.Barcode – Kompletní průvodce + +Už jste se někdy zamýšleli **jak vygenerovat obrázek QR kódu** v Pythonu, aniž byste museli prohledávat desítky knihoven? Nejste v tom sami. Mnoho vývojářů potřebuje spolehlivý způsob, jak vložit vícejazyčný text – například ruštinu, arabštinu nebo emoji – do QR kódu, a vestavěné knihovny často nestačí. + +Pravda je taková, že Aspose.Barcode pro Python to dělá neuvěřitelně snadno. V tomto tutoriálu projdeme přesně kroky, od instalace balíčku až po vytvoření rozšířeného řetězce kódu, který kombinuje čistý ASCII s ECI‑kódovaným Unicode. Na konci budete mít připravený obrázek QR kódu uložený na disku. + +## Co tento průvodce pokrývá + +- Instalace **Aspose.Barcode** pro Python (kompatibilní s Python 3.8+) +- Vytvoření **rozšířeného řetězce kódu**, který kombinuje plain a Unicode segmenty +- Použití **ECI kódování** pro správné vykreslení ruských znaků +- Konfigurace `BarcodeGenerator` pro vytvoření QR kódu +- Uložení výstupního obrázku ve formátu PNG +- Tipy, běžné úskalí a nápady na další kroky (např. přidání loga nebo úprava úrovně opravy chyb) + +Předchozí zkušenosti s Aspose nejsou potřeba; stačí základní nastavení Pythonu a zvědavost ohledně QR kódů. + +--- + +## Požadavky + +Než se pustíme do detailů, ujistěte se, že máte: + +1. **Python 3.8 nebo novější** nainstalovaný na vašem počítači. +2. **Virtuální prostředí** (volitelné, ale doporučené) pro udržení závislostí v pořádku. +3. Přístup k **pip**, abyste mohli nainstalovat balíček `aspose-barcode`. +4. Oprávnění k zápisu do složky, kam bude vygenerovaný PNG uložen. + +Pokud vám některý z těchto bodů není známý, zastavte se zde a vše si nastavte – jakmile budete připraveni, zbytek je hračka. + +--- + +## Krok 1: Instalace Aspose.Barcode pro Python + +Prvním překážkou je získat knihovnu. Aspose distribuuje své balíčky na PyPI, takže stačí jediný příkaz `pip`: + +```bash +pip install aspose-barcode +``` + +> **Pro tip:** Pokud pracujete ve virtuálním prostředí, udržíte tak své globální site‑packages čisté. Pokud narazíte na chyby oprávnění, přidejte `--user` nebo příkaz spusťte s `sudo` (i když to na moderních systémech zřídka potřebujete). + +Po dokončení instalace můžete ověřit verzi pomocí: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +Pokud se verze vytiskne bez výčitek, můžete pokračovat. + +--- + +## Krok 2: Vytvoření instance **Extended Codetext Builder** + +Aspose.Barcode poskytuje třídu `ExtCodetextBuilder` pro skládání složitých QR payloadů. Představte si ji jako malý textový editor, který ví, jak předřadit správné řídicí znaky pro každý segment. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +Proč používat builder? Přímé spojování surových bajtů je náchylné k chybám; builder zaručuje správné přepínání ECI (Extended Channel Interpretation), takže váš QR skener dokáže dekódovat každý jazyk správně. + +--- + +## Krok 3: Začít od nuly (volitelné, ale čisté) + +Pokud někdy znovu použijete stejnou instanci builderu, volání `clear()` vymaže všechna předchozí data. Je to pojistka, která zabraňuje úniku segmentů do dalšího QR kódu. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +Tento řádek můžete při prvním spuštění skriptu vynechat, ale jeho zachování dělá kód idempotentním – užitečné, pokud tuto logiku vkládáte do funkce, která může být volána opakovaně. + +--- + +## Krok 4: Přidání plain (nezakódovaného) segmentu + +Většina QR kódů začíná jednoduchým ASCII řetězcem – například identifikátorem nebo URL. Metoda `add_plain_codetext` přidá právě to, bez jakéhokoli ECI markeru. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +V tomto příkladu používáme `"HelloWorld"` jako zástupný text. Nahraďte jej čímkoli potřebujete – např. SKU produktu nebo krátkou zprávou. + +--- + +## Krok 5: Přidání **ECI‑zakódovaného** segmentu (UTF‑8 = 26) + +Nyní k vícejazyčné části. Hodnota ECI **26** odpovídá UTF‑8, de‑facto standardu pro Unicode. Předáním `26` spolu s ruskou frází říkáme QR skeneru, aby před čtením následujících znaků přešel na UTF‑8. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +Můžete vyměnit `26` za jiné hodnoty ECI (např. `27` pro ISO‑8859‑1), pokud potřebujete jiné kódování. Builder automaticky vloží správné řídicí znaky. + +--- + +## Krok 6: Získání kombinovaného rozšířeného řetězce kódu + +Jakmile jsou všechny segmenty přidány, vyvolejte finální řetězec, který QR generátor spotřebuje. Tento řetězec obsahuje neviditelné řídicí sekvence, ale můžete jej stále vytisknout pro ladění. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +Výstup v konzoli bude vypadat rozmazaně (kvůli vloženým řídicím bajtům), což je naprosto normální. Důležité je, že builder správně spojil plain i Unicode část. + +--- + +## Krok 7: Konfigurace Barcode Generatoru + +Nyní předáme rozšířený řetězec kódu do `BarcodeGenerator` od Aspose. Nastavíme symbologii na `QR` a přiřadíme spojený řetězec do `code_text`. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +Zde můžete doladit další vlastnosti – např. `resolution`, `error_correction_level` nebo `foreground_color`. Tyto možnosti jsou popsány v dokumentaci Aspose, ale pro základní obrázek fungují výchozí hodnoty. + +--- + +## Krok 8: Uložení vygenerovaného QR kódu + +Nakonec zapíšeme QR kód na disk. Metoda `save` přijímá cestu k souboru a volitelný formát; PNG je bezpečná výchozí volba. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +Otevřete vzniklý `qr_extended.png` v libovolném prohlížeči obrázků. Naskenováním smartphonem by se měly zobrazit dvě oddělené zprávy: „HelloWorld“ a „Привет“. Většina moderních QR čteček automaticky zvládne ECI přepínač. + +--- + +## Kompletní funkční příklad + +Spojením všech částí získáte kompletní skript, který můžete zkopírovat a spustit: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**Očekávaný výstup** (konzole): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +Otevřete `qr_extended.png` → naskenujte → uvidíte „HelloWorld“ následované „Привет“. + +--- + +## Často kladené otázky a okrajové případy + +### 1. *Co když potřebuji více než dva segmenty?* +Jednoduše volajte `add_plain_codetext` nebo `add_eci_codetext` tolikrát, kolik potřebujete. Builder udržuje správné pořadí, takže QR kód bude obsahovat každý segment v pořadí, ve kterém je přidáte. + +### 2. *Mohu vložit emoji?* +Ano – emoji jsou jen Unicode znaky. Použijte UTF‑8 ECI (hodnota 26) a předávejte řetězec s emoji, např. `builder.add_eci_codetext(26, "🚀")`. QR zobrazí raketu na podporovaných skenerech. + +### 3. *Co když se QR kód stane příliš hustým?* +QR kódy mají limit verze. Pokud překročíte kapacitu, Aspose automaticky zvýší verzi na další velikost, ale obrázek může být větší. Pro kontrolu velikosti můžete snížit úroveň opravy chyb: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *Musím se starat o jiné znakové sady než UTF‑8?* +Pouze pokud máte starší systémy vyžadující specifické kódování (např. ISO‑8859‑1). V takovém případě nahraďte `26` odpovídající hodnotou ECI (viz Aspose tabulka ECI). Pro většinu moderních aplikací je UTF‑8 nejbezpečnější volba. + +### 5. *Jak přidám logo do středu?* +Aspose.Barcode podporuje `barcode.generator.QRCodeParameters.logo_image`. Načtěte obrázek pomocí Pillow (`from PIL import Image`) a přiřaďte jej: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +Logo bude překryto, přičemž Aspose automaticky upraví tzv. quiet zones, aby zůstala čitelnost zachována. + +--- + +## Profesionální tipy pro produkční nasazení + +- **Cacheujte builder**, pokud generujete stejný QR opakovaně; ušetříte tak opakované skládání rozšířeného řetězce. +- **Ověřte výstup** unit testem, který QR dekóduje (např. pomocí `zxing` nebo `pyzbar`), abyste se ujistili, že ECI přepínače jsou správné. +- **Použijte deterministický název souboru** (např. zahrňte hash payloadu), aby nedocházelo k přepisování existujících obrázků. +- **Mějte na paměti licencování**: Aspose.Barcode je komerční software. Bezplatná evaluační verze stačí pro vývoj, ale pro produkční nasazení je vyžadována licence. + +--- + +## Další kroky a související témata + +Nyní, když už víte **jak vygenerovat QR kód**, můžete pokračovat v dalších oblastech: + +- [How to Generate Barcode Image in Java with Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to create dotcode extended codetext with Aspose.BarCode for .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/dutch/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/dutch/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..c8882c892 --- /dev/null +++ b/barcode/dutch/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,314 @@ +--- +category: general +date: 2026-07-15 +description: Hoe QR‑code‑afbeelding te genereren in Python met Aspose.Barcode. Leer + stap‑voor‑stap QR‑code‑creatie met uitgebreide codetekst, ECI‑codering en Unicode‑ondersteuning. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: nl +lastmod: 2026-07-15 +og_description: Hoe QR‑code‑afbeelding te genereren in Python met Aspose.Barcode. + Deze gids leidt je stap voor stap door het maken van QR‑codes met uitgebreide codetekst, + ECI‑codering en Unicode‑tekens. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Hoe een QR-code-afbeelding te genereren in Python – Aspose.Barcode volledige + tutorial +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Hoe een QR‑code afbeelding te genereren in Python met Aspose.Barcode – Volledige + gids +url: /nl/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe QR‑code‑afbeelding te genereren in Python met Aspose.Barcode – Volledige gids + +Heb je je ooit afgevraagd **hoe je een QR‑code‑afbeelding** in Python kunt genereren zonder tientallen bibliotheken te moeten doorzoeken? Je bent niet de enige. Veel ontwikkelaars hebben een betrouwbare manier nodig om meertalige tekst—denk aan Russisch, Arabisch of emoji’s—in een QR‑code te embedden, en de ingebouwde bibliotheken schieten vaak tekort. + +Het punt is: Aspose.Barcode voor Python maakt dit verrassend eenvoudig. In deze tutorial lopen we stap voor stap door het proces, van het installeren van het pakket tot het samenstellen van een uitgebreide codetext‑string die platte ASCII combineert met ECI‑gecodeerde Unicode. Aan het einde heb je een kant‑klaar QR‑code‑beeld op schijf. + +## Wat deze gids behandelt + +- Het installeren van **Aspose.Barcode** voor Python (compatibel met Python 3.8+) +- Het bouwen van een **uitgebreide codetext** die platte en Unicode‑segmenten combineert +- Het gebruik van **ECI‑codering** om Russische tekens correct weer te geven +- Het configureren van de `BarcodeGenerator` om een QR‑code te produceren +- Het opslaan van de uitvoerafbeelding in PNG‑formaat +- Tips, veelvoorkomende valkuilen en vervolgstappen (zoals logo’s toevoegen of foutcorrectie aanpassen) + +Ervaring met Aspose is niet vereist; alleen een basis‑Python‑installatie en nieuwsgierigheid naar QR‑codes. + +--- + +## Vereisten + +Voordat we beginnen, zorg dat je het volgende hebt: + +1. **Python 3.8 of nieuwer** geïnstalleerd op je machine. +2. Een **virtuele omgeving** (optioneel maar aanbevolen) om afhankelijkheden netjes te houden. +3. **pip**‑toegang om het `aspose-barcode`‑pakket te installeren. +4. Schrijfrechten in een map waar de gegenereerde PNG wordt opgeslagen. + +Als een van deze punten onbekend is, pauzeer dan hier en stel ze in—zodra ze klaar zijn, is de rest een eitje. + +--- + +## Stap 1: Installeer Aspose.Barcode voor Python + +De eerste hindernis is het verkrijgen van de bibliotheek. Aspose distribueert haar pakketten op PyPI, dus één `pip`‑commando doet het werk: + +```bash +pip install aspose-barcode +``` + +> **Pro tip:** Als je binnen een virtuele omgeving werkt, houd je je globale site‑packages schoon. Als je permissiefouten krijgt, plaats dan `--user` vóór het commando of voer het uit met `sudo` (hoewel dat zelden nodig is op moderne systemen). + +Na de installatie kun je dit verifiëren met: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +Als de versie zonder klachten wordt weergegeven, ben je klaar om verder te gaan. + +--- + +## Stap 2: Maak een **Extended Codetext Builder**‑instantie + +Aspose.Barcode biedt de klasse `ExtCodetextBuilder` om complexe QR‑payloads samen te stellen. Beschouw het als een kleine teksteditor die de juiste controle‑karakters voor elk segment kan voorvoegen. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +Waarom een builder gebruiken? Het direct samenvoegen van ruwe bytes is foutgevoelig; de builder garandeert de juiste ECI (Extended Channel Interpretation)‑schakelingen, zodat jouw QR‑scanner elke taal correct kan decoderen. + +--- + +## Stap 3: Begin schoon (optioneel maar netjes) + +Als je dezelfde builder‑instantie hergebruikt, wist `clear()` eventuele eerdere data. Het is een vangnet dat voorkomt dat oude segmenten in de volgende QR lekken. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +Je kunt deze regel weglaten bij de eerste uitvoering van het script, maar het behouden maakt de code idempotent—handig wanneer je deze logica in een functie embedt die meerdere keren kan worden aangeroepen. + +--- + +## Stap 4: Voeg een platte (niet‑gecodeerde) segment toe + +De meeste QR‑codes beginnen met een eenvoudige ASCII‑string—bijvoorbeeld een identifier of een URL. De methode `add_plain_codetext` voegt precies dat toe, zonder ECI‑marker. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +In dit voorbeeld gebruiken we `"HelloWorld"` als placeholder. Vervang het door wat je nodig hebt—misschien een product‑SKU of een korte boodschap. + +--- + +## Stap 5: Voeg een **ECI‑gecodeerd** segment toe (UTF‑8 = 26) + +Nu het meertalige deel. De ECI‑waarde **26** correspondeert met UTF‑8, de de‑facto standaard voor Unicode. Door `26` samen met een Russische zin door te geven, vertellen we de QR‑scanner om over te schakelen naar UTF‑8 vóór het lezen van de volgende tekens. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +Je kunt `26` vervangen door andere ECI‑waarden (bijv. `27` voor ISO‑8859‑1) als je een andere codering nodig hebt. De builder voegt automatisch de juiste controle‑karakters in. + +--- + +## Stap 6: Haal de gecombineerde Extended Codetext op + +Zodra alle segmenten zijn toegevoegd, haal je de uiteindelijke string op die de QR‑generator zal gebruiken. Deze string bevat onzichtbare controle‑sequenties, maar je kunt hem nog steeds afdrukken voor debugging. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +De console‑output zal er rommelig uitzien (vanwege de ingebedde controle‑bytes), wat volkomen normaal is. Het belangrijke is dat de builder de platte en Unicode‑delen correct aan elkaar heeft geplakt. + +--- + +## Stap 7: Configureer de Barcode Generator + +Nu geven we de uitgebreide codetext door aan Aspose’s `BarcodeGenerator`. Stel de symbologie in op `QR` en wijs de gecombineerde string toe aan `code_text`. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +Je kunt hier extra eigenschappen aanpassen—zoals `resolution`, `error_correction_level` of `foreground_color`. Die opties staan beschreven in de Aspose‑documentatie, maar voor een basisafbeelding werken de standaardinstellingen prima. + +--- + +## Stap 8: Sla de gegenereerde QR‑code‑afbeelding op + +Tot slot schrijven we de QR‑code naar schijf. De `save`‑methode accepteert een pad en een optioneel formaat; PNG is een veilige standaard. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +Open de resulterende `qr_extended.png` met een willekeurige beeldviewer. Scannen met een smartphone zou twee afzonderlijke berichten moeten tonen: “HelloWorld” en “Привет”. De meeste moderne QR‑readers verwerken de ECI‑schakel automatisch. + +--- + +## Volledig werkend voorbeeld + +Alles bij elkaar, hier is het complete script dat je kunt kopiëren‑plakken en uitvoeren: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**Verwachte output** (console): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +Open `qr_extended.png` → scan → je ziet “HelloWorld” gevolgd door “Привет”. + +--- + +## Veelgestelde vragen & randgevallen + +### 1. *Wat als ik meer dan twee segmenten nodig heb?* +Roep simpelweg `add_plain_codetext` of `add_eci_codetext` zo vaak aan als je wilt. De builder behoudt de juiste volgorde, zodat de QR‑code elk segment in de door jou opgegeven volgorde bevat. + +### 2. *Kan ik emoji’s embedden?* +Ja—emoji’s zijn gewoon Unicode‑tekens. Gebruik de UTF‑8‑ECI (waarde 26) en geef de emoji‑string door, bv. `builder.add_eci_codetext(26, "🚀")`. De QR toont de raket‑emoji op scanners die dit ondersteunen. + +### 3. *Wat als de QR te dicht wordt?* +QR‑codes hebben versie‑limieten. Als je de data‑capaciteit overschrijdt, zal Aspose automatisch de versie verhogen naar een grotere grootte, maar de afbeelding kan dan groter worden. Om de grootte te beheersen, kun je het fout‑correctieniveau verlagen: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *Moet ik me zorgen maken over andere character sets dan UTF‑8?* +Alleen als je legacy‑systemen hebt die een specifieke codering vereisen (bijv. ISO‑8859‑1). In dat geval vervang je `26` door de juiste ECI‑waarde (zie Aspose’s ECI‑tabel). Voor de meeste moderne apps is UTF‑8 de veiligste keuze. + +### 5. *Hoe voeg ik een logo toe in het midden?* +Aspose.Barcode ondersteunt `barcode.generator.QRCodeParameters.logo_image`. Laad een afbeelding met Pillow (`from PIL import Image`) en wijs deze toe: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +Het logo wordt over de QR gelegd terwijl de scanbaarheid behouden blijft (Aspose past automatisch de quiet zones aan). + +--- + +## Pro‑tips voor productie + +- **Cache de builder** als je dezelfde QR herhaaldelijk genereert; dit voorkomt het telkens opnieuw opbouwen van de uitgebreide string. +- **Valideer de output** met een unit‑test die de QR decodeert (bijv. met `zxing` of `pyzbar`) om te controleren of je ECI‑schakelingen correct zijn. +- **Gebruik een deterministische bestandsnaam** (bijvoorbeeld een hash van de payload) om overschrijven van bestaande afbeeldingen te voorkomen. +- **Let op licenties**: Aspose.Barcode is commerciële software. De gratis evaluatie werkt voor ontwikkeling, maar een licentie is vereist voor productie‑implementaties. + +--- + +## Volgende stappen & gerelateerde onderwerpen + +Nu je **weet hoe je een QR‑code genereert** + + +## Wat moet je hierna leren? + + +De volgende tutorials behandelen nauw verwante onderwerpen die voortbouwen op de technieken die in deze gids zijn gedemonstreerd. Elke bron bevat complete werkende code‑voorbeelden met stap‑voor‑stap uitleg om je te helpen extra API‑functies onder de knie te krijgen en alternatieve implementaties in je eigen projecten te verkennen. + +- [How to Generate Barcode Image in Java with Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to create dotcode extended codetext with Aspose.BarCode for .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/english/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/english/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..3fd56e76b --- /dev/null +++ b/barcode/english/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,312 @@ +--- +category: general +date: 2026-07-15 +description: How to generate QR code image in Python using Aspose.Barcode. Learn step‑by‑step + QR code creation with extended codetext, ECI encoding, and Unicode support. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: en +lastmod: 2026-07-15 +og_description: How to generate QR code image in Python with Aspose.Barcode. This + guide walks you through creating QR codes using extended codetext, ECI encoding, + and Unicode characters. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: How to Generate QR Code Image in Python – Aspose.Barcode Complete Tutorial +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide +url: /python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + +Ever wondered **how to generate QR code image** in Python without hunting down dozens of libraries? You're not alone. Many developers need a reliable way to embed multilingual text—think Russian, Arabic, or emoji—inside a QR code, and the built‑in libraries often fall short. + +Here's the thing: Aspose.Barcode for Python makes this surprisingly painless. In this tutorial we'll walk through the exact steps, from installing the package to crafting an extended codetext string that mixes plain ASCII with ECI‑encoded Unicode. By the end you'll have a ready‑to‑use QR code image sitting on disk. + +## What This Guide Covers + +- Installing **Aspose.Barcode** for Python (compatible with Python 3.8+) +- Building an **extended codetext** that combines plain and Unicode segments +- Using **ECI encoding** to correctly render Russian characters +- Configuring the `BarcodeGenerator` to produce a QR code +- Saving the output image in PNG format +- Tips, common pitfalls, and next‑step ideas (like adding logos or tweaking error correction) + +No prior experience with Aspose is required; just a basic Python setup and a curiosity about QR codes. + +--- + +## Prerequisites + +Before we dive in, make sure you have: + +1. **Python 3.8 or newer** installed on your machine. +2. A **virtual environment** (optional but recommended) to keep dependencies tidy. +3. **pip** access to install the `aspose-barcode` package. +4. Write permission to a folder where the generated PNG will be saved. + +If any of those sound unfamiliar, pause here and set them up—once they're ready, the rest is a piece of cake. + +--- + +## Step 1: Install Aspose.Barcode for Python + +The first hurdle is getting the library. Aspose distributes its packages on PyPI, so a single `pip` command does the trick: + +```bash +pip install aspose-barcode +``` + +> **Pro tip:** If you’re inside a virtual environment, you’ll keep your global site‑packages clean. If you hit permission errors, prepend `--user` or run the command with `sudo` (though the latter is rarely needed on modern setups). + +After the install finishes, you can verify it with: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +If the version prints without complaint, you’re good to go. + +--- + +## Step 2: Create an **Extended Codetext Builder** Instance + +Aspose.Barcode provides the `ExtCodetextBuilder` class to compose complex QR payloads. Think of it as a tiny text editor that knows how to prepend the right control characters for each segment. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +Why use a builder? Directly concatenating raw bytes is error‑prone; the builder guarantees the correct ECI (Extended Channel Interpretation) switches, so your QR scanner can decode every language correctly. + +--- + +## Step 3: Start Fresh (Optional but Clean) + +If you ever reuse the same builder instance, calling `clear()` wipes any previous data. It’s a safety net that prevents stray segments from leaking into the next QR. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +You can skip this line the first time you run the script, but keeping it makes the code idempotent—useful when you embed this logic inside a function that might be called repeatedly. + +--- + +## Step 4: Add a Plain (Un‑encoded) Segment + +Most QR codes start with a simple ASCII string—perhaps an identifier or a URL. The `add_plain_codetext` method adds exactly that, without any ECI marker. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +In this example we use `"HelloWorld"` as a placeholder. Replace it with whatever you need—maybe a product SKU or a short message. + +--- + +## Step 5: Add an **ECI‑Encoded** Segment (UTF‑8 = 26) + +Now for the multilingual part. The ECI value **26** corresponds to UTF‑8, the de‑facto standard for Unicode. By passing `26` together with a Russian phrase, we tell the QR scanner to switch to UTF‑8 before reading the following characters. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +You can swap `26` for other ECI values (e.g., `27` for ISO‑8859‑1) if you need a different encoding. The builder will automatically insert the proper control characters. + +--- + +## Step 6: Retrieve the Combined Extended Codetext + +Once all segments are added, pull the final string that the QR generator will consume. This string contains invisible control sequences, but you can still print it for debugging. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +The console output will look garbled (because of embedded control bytes), which is perfectly normal. The important part is that the builder has stitched the plain and Unicode parts together correctly. + +--- + +## Step 7: Configure the Barcode Generator + +Now we hand the extended codetext to Aspose’s `BarcodeGenerator`. Set the symbology to `QR` and assign the combined string to `code_text`. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +You can tweak additional properties here—like `resolution`, `error_correction_level`, or `foreground_color`. Those options are covered in the Aspose docs, but for a basic image the defaults work well. + +--- + +## Step 8: Save the Generated QR Code Image + +Finally, write the QR code to disk. The `save` method accepts a file path and an optional format; PNG is a safe default. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +Open the resulting `qr_extended.png` with any image viewer. Scanning it with a smartphone should reveal two separate messages: “HelloWorld” and “Привет”. Most modern QR readers automatically handle the ECI switch. + +--- + +## Full Working Example + +Putting it all together, here’s the complete script you can copy‑paste and run: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**Expected output** (console): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +Open `qr_extended.png` → scan → you’ll see “HelloWorld” followed by “Привет”. + +--- + +## Common Questions & Edge Cases + +### 1. *What if I need more than two segments?* +Simply call `add_plain_codetext` or `add_eci_codetext` as many times as you like. The builder maintains the correct ordering, so the QR code will contain each segment in the sequence you add them. + +### 2. *Can I embed emojis?* +Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and pass the emoji string, e.g., `builder.add_eci_codetext(26, "🚀")`. The QR will display the rocket emoji on supporting scanners. + +### 3. *What if the QR becomes too dense?* +QR codes have version limits. If you exceed the data capacity, Aspose will automatically bump the version up to the next size, but the image might become larger. To control size, you can lower the error correction level: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *Do I need to worry about character sets other than UTF‑8?* +Only if you have legacy systems that require a specific encoding (e.g., ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + +### 5. *How do I add a logo in the center?* +Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. Load an image with Pillow (`from PIL import Image`) and assign it: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +The logo will be overlaid while preserving scannability (Aspose automatically adjusts quiet zones). + +--- + +## Pro Tips for Production Use + +- **Cache the builder** if you generate the same QR repeatedly; it avoids rebuilding the extended string each time. +- **Validate the output** with a unit test that decodes the QR (e.g., using `zxing` or `pyzbar`) to ensure your ECI switches are correct. +- **Set a deterministic file name** (maybe include a hash of the payload) to avoid overwriting existing images. +- **Mind the licensing**: Aspose.Barcode is commercial software. The free evaluation works for development, but a license is required for production deployment. + +--- + +## Next Steps & Related Topics + +Now that you know **how to generate QR code + + +## What Should You Learn Next? + + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [How to Generate Barcode Image in Java with Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to create dotcode extended codetext with Aspose.BarCode for .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/english/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/og-image.png b/barcode/english/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..1f3b4aab55dc5e7fdee49bf9b28c482d17a9f2ca GIT binary patch literal 53399 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 literal 0 HcmV?d00001 diff --git a/barcode/french/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/french/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..177c94643 --- /dev/null +++ b/barcode/french/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,314 @@ +--- +category: general +date: 2026-07-15 +description: Comment générer une image de code QR en Python avec Aspose.Barcode. Apprenez + la création de code QR étape par étape avec un texte codé étendu, l’encodage ECI + et la prise en charge Unicode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: fr +lastmod: 2026-07-15 +og_description: Comment générer une image de code QR en Python avec Aspose.Barcode. + Ce guide vous explique comment créer des codes QR en utilisant un texte de code + étendu, l’encodage ECI et les caractères Unicode. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Comment générer une image de code QR en Python – Tutoriel complet Aspose.Barcode +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Comment générer une image de code QR en Python avec Aspose.Barcode – Guide + complet +url: /fr/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment générer une image de QR Code en Python avec Aspose.Barcode – Guide complet + +Vous vous êtes déjà demandé **comment générer une image de QR code** en Python sans devoir fouiller des dizaines de bibliothèques ? Vous n'êtes pas seul. De nombreux développeurs ont besoin d’une méthode fiable pour intégrer du texte multilingue—par exemple du russe, de l’arabe ou des emojis—dans un QR code, et les bibliothèques natives sont souvent insuffisantes. + +Voici le point clé : Aspose.Barcode pour Python rend cela étonnamment simple. Dans ce tutoriel, nous passerons en revue les étapes exactes, de l’installation du package à la création d’une chaîne de texte étendue qui mélange du ASCII simple avec du Unicode encodé en ECI. À la fin, vous disposerez d’une image QR prête à l’emploi sur le disque. + +## Ce que couvre ce guide + +- Installation de **Aspose.Barcode** pour Python (compatible avec Python 3.8+) +- Construction d’un **texte de code étendu** combinant des segments ASCII et Unicode +- Utilisation du **codage ECI** pour rendre correctement les caractères russes +- Configuration du `BarcodeGenerator` pour produire un QR code +- Enregistrement de l’image au format PNG +- Astuces, pièges courants et idées de prochaines étapes (comme ajouter des logos ou ajuster le niveau de correction d’erreur) + +Aucune expérience préalable avec Aspose n’est requise ; il suffit d’une configuration Python de base et d’une curiosité pour les QR codes. + +--- + +## Prérequis + +Avant de commencer, assurez‑vous d’avoir : + +1. **Python 3.8 ou plus récent** installé sur votre machine. +2. Un **environnement virtuel** (optionnel mais recommandé) pour garder les dépendances propres. +3. Un accès **pip** pour installer le package `aspose-barcode`. +4. Le droit d’écriture dans un dossier où le PNG généré sera sauvegardé. + +Si l’un de ces points vous est inconnu, faites une pause ici et configurez‑le — une fois prêt, le reste est un jeu d’enfant. + +--- + +## Étape 1 : Installer Aspose.Barcode pour Python + +Le premier obstacle consiste à obtenir la bibliothèque. Aspose distribue ses packages sur PyPI, donc une simple commande `pip` suffit : + +```bash +pip install aspose-barcode +``` + +> **Astuce pro :** Si vous travaillez dans un environnement virtuel, vous garderez vos packages globaux propres. En cas d’erreurs de permission, préfixez la commande avec `--user` ou exécutez‑la avec `sudo` (bien que ce dernier soit rarement nécessaire sur les configurations modernes). + +Après l’installation, vous pouvez vérifier avec : + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +Si la version s’affiche sans problème, vous êtes prêt à continuer. + +--- + +## Étape 2 : Créer une instance du **Extended Codetext Builder** + +Aspose.Barcode fournit la classe `ExtCodetextBuilder` pour composer des charges utiles QR complexes. Pensez‑y comme à un petit éditeur de texte qui sait préfixer les bons caractères de contrôle pour chaque segment. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +Pourquoi utiliser un builder ? Concaténer directement des octets bruts est source d’erreurs ; le builder garantit les bons basculements ECI (Extended Channel Interpretation), de sorte que votre lecteur QR puisse décoder chaque langue correctement. + +--- + +## Étape 3 : Commencer frais (optionnel mais propre) + +Si vous réutilisez la même instance du builder, appeler `clear()` efface les données précédentes. C’est un filet de sécurité qui empêche des segments résiduels de se retrouver dans le QR suivant. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +Vous pouvez ignorer cette ligne lors de la première exécution du script, mais la conserver rend le code idempotent—utile lorsqu’on intègre cette logique dans une fonction pouvant être appelée plusieurs fois. + +--- + +## Étape 4 : Ajouter un segment simple (non encodé) + +La plupart des QR codes commencent par une chaîne ASCII simple—peut‑être un identifiant ou une URL. La méthode `add_plain_codetext` ajoute exactement cela, sans aucun marqueur ECI. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +Dans cet exemple nous utilisons `"HelloWorld"` comme espace réservé. Remplacez‑le par ce dont vous avez besoin—peut‑être un SKU produit ou un court message. + +--- + +## Étape 5 : Ajouter un segment **ECI‑encodé** (UTF‑8 = 26) + +Passons maintenant à la partie multilingue. La valeur ECI **26** correspond à UTF‑8, le standard de facto pour Unicode. En passant `26` avec une phrase russe, nous indiquons au lecteur QR de basculer en UTF‑8 avant de lire les caractères suivants. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +Vous pouvez remplacer `26` par d’autres valeurs ECI (par ex., `27` pour ISO‑8859‑1) si vous avez besoin d’un encodage différent. Le builder insérera automatiquement les bons caractères de contrôle. + +--- + +## Étape 6 : Récupérer le texte de code étendu combiné + +Une fois tous les segments ajoutés, récupérez la chaîne finale que le générateur QR consommera. Cette chaîne contient des séquences de contrôle invisibles, mais vous pouvez tout de même l’imprimer pour le débogage. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +La sortie console apparaîtra brouillée (à cause des octets de contrôle intégrés), ce qui est tout à fait normal. L’important est que le builder ait correctement assemblé les parties ASCII et Unicode. + +--- + +## Étape 7 : Configurer le générateur de code‑barres + +Nous transmettons maintenant le texte de code étendu à `BarcodeGenerator` d’Aspose. Définissez la symbologie sur `QR` et assignez la chaîne combinée à `code_text`. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +Vous pouvez ajuster d’autres propriétés ici—comme `resolution`, `error_correction_level` ou `foreground_color`. Ces options sont détaillées dans la documentation Aspose, mais pour une image basique les valeurs par défaut suffisent. + +--- + +## Étape 8 : Enregistrer l’image QR générée + +Enfin, écrivez le QR code sur le disque. La méthode `save` accepte un chemin de fichier et un format optionnel ; PNG est une valeur sûre. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +Ouvrez le fichier `qr_extended.png` avec n’importe quel visualiseur d’images. Le scanner de votre smartphone devrait révéler deux messages distincts : “HelloWorld” et “Привет”. La plupart des lecteurs QR modernes gèrent automatiquement le basculement ECI. + +--- + +## Exemple complet fonctionnel + +En rassemblant le tout, voici le script complet que vous pouvez copier‑coller et exécuter : + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**Sortie attendue** (console) : + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +Ouvrez `qr_extended.png` → scannez → vous verrez “HelloWorld” suivi de “Привет”. + +--- + +## Questions fréquentes & cas particuliers + +### 1. *Et si j’ai besoin de plus de deux segments ?* +Il suffit d’appeler `add_plain_codetext` ou `add_eci_codetext` autant de fois que nécessaire. Le builder maintient l’ordre correct, de sorte que le QR code contiendra chaque segment dans la séquence que vous avez définie. + +### 2. *Puis‑je intégrer des emojis ?* +Oui—les emojis sont simplement des caractères Unicode. Utilisez l’ECI UTF‑8 (valeur 26) et passez la chaîne emoji, par ex., `builder.add_eci_codetext(26, "🚀")`. Le QR affichera l’emoji fusée sur les lecteurs compatibles. + +### 3. *Que faire si le QR devient trop dense ?* +Les QR codes ont des limites de version. Si vous dépassez la capacité de données, Aspose augmentera automatiquement la version au prochain niveau, mais l’image pourra devenir plus grande. Pour contrôler la taille, vous pouvez réduire le niveau de correction d’erreur : + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *Dois‑je me soucier d’autres jeux de caractères que UTF‑8 ?* +Seulement si vous avez des systèmes hérités nécessitant un encodage spécifique (par ex., ISO‑8859‑1). Dans ce cas, remplacez `26` par la valeur ECI appropriée (voir le tableau ECI d’Aspose). Pour la plupart des applications modernes, UTF‑8 reste le choix le plus sûr. + +### 5. *Comment ajouter un logo au centre ?* +Aspose.Barcode supporte `barcode.generator.QRCodeParameters.logo_image`. Chargez une image avec Pillow (`from PIL import Image`) et assignez‑la : + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +Le logo sera superposé tout en préservant la lisibilité (Aspose ajuste automatiquement les zones calmes). + +--- + +## Astuces pro pour la production + +- **Mettez en cache le builder** si vous générez le même QR de façon répétée ; cela évite de reconstruire la chaîne étendue à chaque appel. +- **Validez la sortie** avec un test unitaire qui décode le QR (par ex., avec `zxing` ou `pyzbar`) afin de garantir que vos basculements ECI sont corrects. +- **Utilisez un nom de fichier déterministe** (par exemple en incluant un hash du payload) pour éviter d’écraser des images existantes. +- **Pensez à la licence** : Aspose.Barcode est un logiciel commercial. L’évaluation gratuite suffit pour le développement, mais une licence est requise pour le déploiement en production. + +--- + +## Prochaines étapes & sujets associés + +Maintenant que vous savez **comment générer un QR code** + + +## Que devriez‑vous apprendre ensuite ? + + +Les tutoriels suivants couvrent des sujets étroitement liés qui s’appuient sur les techniques présentées dans ce guide. Chaque ressource inclut des exemples de code complets avec des explications pas à pas pour vous aider à maîtriser d’autres fonctionnalités de l’API et à explorer des approches alternatives dans vos projets. + +- [How to Generate Barcode Image in Java with Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to create dotcode extended codetext with Aspose.BarCode for .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/german/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/german/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..29acf8925 --- /dev/null +++ b/barcode/german/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,318 @@ +--- +category: general +date: 2026-07-15 +description: Wie man ein QR‑Code‑Bild in Python mit Aspose.Barcode erzeugt. Lernen + Sie die schrittweise QR‑Code‑Erstellung mit erweitertem Codetext, ECI‑Codierung + und Unicode‑Unterstützung. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: de +lastmod: 2026-07-15 +og_description: Wie man ein QR‑Code‑Bild in Python mit Aspose.Barcode generiert. Dieser + Leitfaden führt Sie durch die Erstellung von QR‑Codes mit erweitertem Codetext, + ECI‑Codierung und Unicode‑Zeichen. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Wie man ein QR‑Code‑Bild in Python erzeugt – Aspose.Barcode vollständiges + Tutorial +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Wie man ein QR‑Code‑Bild in Python mit Aspose.Barcode erzeugt – Vollständige + Anleitung +url: /de/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man QR-Code-Bild in Python mit Aspose.Barcode erzeugt – Vollständige Anleitung + +Schon mal überlegt, **wie man ein QR-Code-Bild** in Python erzeugt, ohne Dutzende von Bibliotheken zu durchsuchen? Sie sind nicht allein. Viele Entwickler benötigen eine zuverlässige Methode, mehrsprachigen Text – etwa Russisch, Arabisch oder Emojis – in einen QR-Code einzubetten, und die integrierten Bibliotheken reichen oft nicht aus. + +Das ist das Fazit: Aspose.Barcode für Python macht das überraschend einfach. In diesem Tutorial gehen wir die genauen Schritte durch, von der Installation des Pakets bis zum Erstellen einer erweiterten Codetext‑Zeichenkette, die plain ASCII mit ECI‑kodiertem Unicode kombiniert. Am Ende haben Sie ein einsatzbereites QR-Code‑Bild auf der Festplatte. + +## Was dieser Leitfaden abdeckt + +- Installation von **Aspose.Barcode** für Python (kompatibel mit Python 3.8+) +- Erstellen eines **extended codetext**, das plain und Unicode‑Segmente kombiniert +- Verwendung von **ECI encoding**, um russische Zeichen korrekt darzustellen +- Konfiguration des `BarcodeGenerator`, um einen QR-Code zu erzeugen +- Speichern des Ausgabe‑Bildes im PNG‑Format +- Tipps, häufige Fallstricke und nächste‑Schritt‑Ideen (wie das Hinzufügen von Logos oder das Anpassen der Fehlerkorrektur) + +Vorkenntnisse mit Aspose sind nicht erforderlich; nur ein grundlegendes Python‑Setup und Neugier auf QR-Codes. + +--- + +## Voraussetzungen + +Bevor wir beginnen, stellen Sie sicher, dass Sie folgendes haben: + +1. **Python 3.8 oder neuer** auf Ihrem Rechner installiert. +2. Eine **virtuelle Umgebung** (optional, aber empfohlen), um Abhängigkeiten sauber zu halten. +3. **pip**‑Zugriff, um das `aspose-barcode`‑Paket zu installieren. +4. Schreibrechte für einen Ordner, in dem das erzeugte PNG gespeichert wird. + +Falls Ihnen etwas davon unbekannt ist, halten Sie hier an und richten Sie es ein – sobald alles bereit ist, ist der Rest ein Kinderspiel. + +--- + +## Schritt 1: Aspose.Barcode für Python installieren + +Das erste Hindernis ist das Beschaffen der Bibliothek. Aspose verteilt seine Pakete auf PyPI, sodass ein einziger `pip`‑Befehl ausreicht: + +```bash +pip install aspose-barcode +``` + +> **Pro‑Tipp:** Wenn Sie sich in einer virtuellen Umgebung befinden, halten Sie Ihre globalen site‑packages sauber. Bei Berechtigungsfehlern fügen Sie `--user` hinzu oder führen den Befehl mit `sudo` aus (obwohl Letzteres bei modernen Setups selten nötig ist). + +Nach Abschluss der Installation können Sie dies überprüfen mit: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +Wenn die Versionsnummer ohne Fehlermeldung ausgegeben wird, können Sie loslegen. + +--- + +## Schritt 2: Eine **Extended Codetext Builder**‑Instanz erstellen + +Aspose.Barcode stellt die Klasse `ExtCodetextBuilder` bereit, um komplexe QR‑Payloads zusammenzusetzen. Denken Sie an sie wie an einen kleinen Texteditor, der weiß, wie die richtigen Steuerzeichen für jedes Segment vorangestellt werden. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +Warum einen Builder verwenden? Das direkte Zusammenfügen von Rohbytes ist fehleranfällig; der Builder garantiert die korrekten ECI‑ (Extended Channel Interpretation) Umschaltungen, sodass Ihr QR‑Scanner jede Sprache korrekt dekodieren kann. + +--- + +## Schritt 3: Neu starten (optional, aber sauber) + +Wenn Sie dieselbe Builder‑Instanz wiederverwenden, löscht ein Aufruf von `clear()` alle vorherigen Daten. Das ist ein Sicherheitsnetz, das verhindert, dass verirrte Segmente in den nächsten QR‑Code gelangen. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +Sie können diese Zeile beim ersten Ausführen des Skripts überspringen, aber das Beibehalten macht den Code idempotent – nützlich, wenn Sie diese Logik in einer Funktion einbetten, die mehrfach aufgerufen werden könnte. + +--- + +## Schritt 4: Ein plain (nicht kodiertes) Segment hinzufügen + +Die meisten QR‑Codes beginnen mit einer einfachen ASCII‑Zeichenkette – vielleicht ein Identifier oder eine URL. Die Methode `add_plain_codetext` fügt genau das hinzu, ohne einen ECI‑Marker. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +In diesem Beispiel verwenden wir `"HelloWorld"` als Platzhalter. Ersetzen Sie es durch das, was Sie benötigen – vielleicht eine Produkt‑SKU oder eine kurze Nachricht. + +--- + +## Schritt 5: Ein **ECI‑kodiertes** Segment hinzufügen (UTF‑8 = 26) + +Jetzt zum mehrsprachigen Teil. Der ECI‑Wert **26** entspricht UTF‑8, dem de‑facto Standard für Unicode. Indem wir `26` zusammen mit einer russischen Phrase übergeben, sagen wir dem QR‑Scanner, vor dem Lesen der folgenden Zeichen zu UTF‑8 zu wechseln. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +Sie können `26` durch andere ECI‑Werte ersetzen (z. B. `27` für ISO‑8859‑1), wenn Sie eine andere Kodierung benötigen. Der Builder fügt automatisch die richtigen Steuerzeichen ein. + +--- + +## Schritt 6: Den kombinierten erweiterten Codetext abrufen + +Sobald alle Segmente hinzugefügt wurden, holen Sie die endgültige Zeichenkette, die der QR‑Generator verwendet. Diese Zeichenkette enthält unsichtbare Steuersequenzen, aber Sie können sie trotzdem zum Debuggen ausgeben. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +Die Konsolenausgabe wird wirr aussehen (wegen eingebetteter Steuerbytes), was völlig normal ist. Wichtig ist, dass der Builder die plain‑ und Unicode‑Teile korrekt zusammengefügt hat. + +--- + +## Schritt 7: Den Barcode‑Generator konfigurieren + +Jetzt übergeben wir den erweiterten Codetext an Aspose’s `BarcodeGenerator`. Setzen Sie die Symbolik auf `QR` und weisen Sie die kombinierte Zeichenkette `code_text` zu. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +Sie können hier weitere Eigenschaften anpassen – wie `resolution`, `error_correction_level` oder `foreground_color`. Diese Optionen werden in der Aspose‑Dokumentation behandelt, aber für ein einfaches Bild funktionieren die Standardwerte gut. + +--- + +## Schritt 8: Das erzeugte QR‑Code‑Bild speichern + +Schließlich schreiben wir den QR‑Code auf die Festplatte. Die Methode `save` akzeptiert einen Dateipfad und ein optionales Format; PNG ist ein sicherer Standard. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +Öffnen Sie das resultierende `qr_extended.png` mit einem beliebigen Bildbetrachter. Das Scannen mit einem Smartphone sollte zwei separate Nachrichten zeigen: „HelloWorld“ und „Привет“. Die meisten modernen QR‑Reader handhaben den ECI‑Umschalter automatisch. + +--- + +## Vollständiges funktionierendes Beispiel + +Alles zusammengefügt, hier das komplette Skript, das Sie kopieren und ausführen können: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**Erwartete Ausgabe** (Konsole): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +Öffnen Sie `qr_extended.png` → scannen → Sie sehen „HelloWorld“ gefolgt von „Привет“. + +--- + +## Häufige Fragen & Sonderfälle + +### 1. *Was, wenn ich mehr als zwei Segmente brauche?* + +Rufen Sie einfach `add_plain_codetext` oder `add_eci_codetext` so oft auf, wie Sie möchten. Der Builder behält die korrekte Reihenfolge bei, sodass der QR‑Code jedes Segment in der von Ihnen hinzugefügten Reihenfolge enthält. + +### 2. *Kann ich Emojis einbetten?* + +Ja – Emojis sind einfach Unicode‑Zeichen. Verwenden Sie das UTF‑8‑ECI (Wert 26) und übergeben Sie die Emoji‑Zeichenkette, z. B. `builder.add_eci_codetext(26, "🚀")`. Der QR‑Code zeigt das Raketen‑Emoji auf unterstützenden Scannern. + +### 3. *Was, wenn der QR zu dicht wird?* + +QR‑Codes haben Versionsgrenzen. Wenn Sie die Datenkapazität überschreiten, erhöht Aspose automatisch die Version auf die nächste Größe, aber das Bild kann größer werden. Um die Größe zu kontrollieren, können Sie das Fehlerkorrektur‑Level senken: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *Muss ich mir Gedanken über andere Zeichensätze als UTF‑8 machen?* + +Nur wenn Sie Altsysteme haben, die eine bestimmte Kodierung benötigen (z. B. ISO‑8859‑1). In diesem Fall ersetzen Sie `26` durch den entsprechenden ECI‑Wert (siehe Aspose‑ECI‑Tabelle). Für die meisten modernen Apps ist UTF‑8 die sicherste Wahl. + +### 5. *Wie füge ich ein Logo in der Mitte hinzu?* + +Aspose.Barcode unterstützt `barcode.generator.QRCodeParameters.logo_image`. Laden Sie ein Bild mit Pillow (`from PIL import Image`) und weisen Sie es zu: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +Das Logo wird überlagert, wobei die Scanbarkeit erhalten bleibt (Aspose passt die Quiet‑Zones automatisch an). + +--- + +## Pro‑Tipps für den Produktionseinsatz + +- **Cache den Builder**, wenn Sie denselben QR‑Code wiederholt erzeugen; das verhindert das erneute Erstellen der erweiterten Zeichenkette jedes Mal. +- **Validieren Sie die Ausgabe** mit einem Unit‑Test, der den QR dekodiert (z. B. mit `zxing` oder `pyzbar`), um sicherzustellen, dass Ihre ECI‑Umschaltungen korrekt sind. +- **Verwenden Sie einen deterministischen Dateinamen** (vielleicht einen Hash des Payloads einbinden), um das Überschreiben vorhandener Bilder zu vermeiden. +- **Beachten Sie die Lizenzierung**: Aspose.Barcode ist kommerzielle Software. Die kostenlose Evaluation funktioniert für die Entwicklung, aber für den Produktionseinsatz ist eine Lizenz erforderlich. + +--- + +## Nächste Schritte & verwandte Themen + +Jetzt, da Sie wissen **wie man QR‑Code erzeugt** + +## Was sollten Sie als Nächstes lernen? + +Die folgenden Tutorials behandeln eng verwandte Themen, die auf den in diesem Leitfaden gezeigten Techniken aufbauen. Jede Ressource enthält vollständige, funktionierende Code‑Beispiele mit Schritt‑für‑Schritt‑Erklärungen, um Ihnen zu helfen, weitere API‑Funktionen zu meistern und alternative Implementierungsansätze in Ihren eigenen Projekten zu erkunden. + +- [Wie man Barcode‑Bild in Java mit Aspose.BarCode erzeugt](/barcode/english/java/barcode-rendering-techniques/) +- [Wie man Aztec‑Barcode mit benutzerdefiniertem Seitenverhältnis mit Aspose.BarCode für .NET erzeugt](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Wie man Dotcode‑Extended‑Codetext mit Aspose.BarCode für .NET erstellt](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/greek/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/greek/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..5712dab5c --- /dev/null +++ b/barcode/greek/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,312 @@ +--- +category: general +date: 2026-07-15 +description: Πώς να δημιουργήσετε εικόνα QR κώδικα σε Python χρησιμοποιώντας το Aspose.Barcode. + Μάθετε βήμα‑βήμα τη δημιουργία QR κώδικα με εκτεταμένο κείμενο κώδικα, κωδικοποίηση + ECI και υποστήριξη Unicode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: el +lastmod: 2026-07-15 +og_description: Πώς να δημιουργήσετε εικόνα QR code σε Python με Aspose.Barcode. Αυτός + ο οδηγός σας καθοδηγεί στη δημιουργία QR code χρησιμοποιώντας εκτεταμένο κείμενο + κώδικα, κωδικοποίηση ECI και χαρακτήρες Unicode. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Πώς να δημιουργήσετε εικόνα QR Code σε Python – Πλήρης οδηγός Aspose.Barcode +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Πώς να δημιουργήσετε εικόνα QR Code σε Python με το Aspose.Barcode – Πλήρης + οδηγός +url: /el/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να Δημιουργήσετε Εικόνα QR Code σε Python με το Aspose.Barcode – Πλήρης Οδηγός + +Έχετε αναρωτηθεί ποτέ **πώς να δημιουργήσετε εικόνα QR code** σε Python χωρίς να ψάχνετε δεκάδες βιβλιοθήκες; Δεν είστε μόνοι. Πολλοί προγραμματιστές χρειάζονται έναν αξιόπιστο τρόπο να ενσωματώσουν πολυγλωσσικό κείμενο—π.χ. ρωσικά, αραβικά ή emoji—μέσα σε ένα QR code, και οι ενσωματωμένες βιβλιοθήκες συχνά αποτυγχάνουν. + +Το θέμα είναι το εξής: το Aspose.Barcode για Python κάνει αυτή τη διαδικασία απίστευτα εύκολη. Σε αυτόν τον οδηγό θα περάσουμε βήμα‑βήμα, από την εγκατάσταση του πακέτου μέχρι τη δημιουργία μιας επεκταμένης συμβολοσειράς codetext που συνδυάζει απλό ASCII με Unicode κωδικοποιημένο με ECI. Στο τέλος θα έχετε μια έτοιμη για χρήση εικόνα QR code αποθηκευμένη στο δίσκο. + +## Τι Καλύπτει Αυτός ο Οδηγός + +- Εγκατάσταση του **Aspose.Barcode** για Python (συμβατό με Python 3.8+) +- Δημιουργία ενός **extended codetext** που συνδυάζει τμήματα plain και Unicode +- Χρήση **ECI encoding** για σωστή απόδοση ρωσικών χαρακτήρων +- Διαμόρφωση του `BarcodeGenerator` για παραγωγή QR code +- Αποθήκευση της εικόνας εξόδου σε μορφή PNG +- Συμβουλές, κοινά προβλήματα και ιδέες για τα επόμενα βήματα (όπως προσθήκη λογοτύπων ή ρύθμιση του error correction) + +Δεν απαιτείται προηγούμενη εμπειρία με το Aspose· Απλώς μια βασική εγκατάσταση Python και περιέργεια για τα QR codes. + +--- + +## Προαπαιτούμενα + +Πριν ξεκινήσουμε, βεβαιωθείτε ότι έχετε: + +1. **Python 3.8 ή νεότερο** εγκατεστημένο στο σύστημά σας. +2. Ένα **virtual environment** (προαιρετικό αλλά συνιστάται) για να διατηρείτε τις εξαρτήσεις οργανωμένες. +3. **pip** πρόσβαση για την εγκατάσταση του πακέτου `aspose-barcode`. +4. Δικαίωμα εγγραφής σε φάκελο όπου θα αποθηκευτεί το παραγόμενο PNG. + +Αν κάποιο από αυτά σας είναι άγνωστο, κάντε παύση εδώ και ρυθμίστε τα—μόλις είναι έτοιμα, τα υπόλοιπα είναι παιχνιδάκι. + +--- + +## Βήμα 1: Εγκατάσταση Aspose.Barcode για Python + +Το πρώτο εμπόδιο είναι η λήψη της βιβλιοθήκης. Το Aspose διανέμει τα πακέτα του στο PyPI, οπότε μια εντολή `pip` κάνει τη δουλειά: + +```bash +pip install aspose-barcode +``` + +> **Συμβουλή:** Αν βρίσκεστε μέσα σε virtual environment, θα διατηρήσετε τα global site‑packages σας καθαρά. Αν αντιμετωπίσετε σφάλματα δικαιωμάτων, προσθέστε `--user` ή εκτελέστε την εντολή με `sudo` (αν και το τελευταίο σπάνια χρειάζεται σε σύγχρονες ρυθμίσεις). + +Αφού ολοκληρωθεί η εγκατάσταση, μπορείτε να το επαληθεύσετε με: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +Αν η έκδοση εμφανιστεί χωρίς προβλήματα, είστε έτοιμοι. + +--- + +## Βήμα 2: Δημιουργία ενός **Extended Codetext Builder** Αντικειμένου + +Το Aspose.Barcode παρέχει την κλάση `ExtCodetextBuilder` για τη σύνθεση πολύπλοκων φορτίων QR. Σκεφτείτε το ως έναν μικρό επεξεργαστή κειμένου που ξέρει πώς να προσθέτει τους σωστούς χαρακτήρες ελέγχου για κάθε τμήμα. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +Γιατί να χρησιμοποιήσετε έναν builder; Η άμεση συνένωση ακατέργαστων bytes είναι επιρρεπής σε σφάλματα· ο builder εγγυάται τις σωστές εναλλαγές ECI (Extended Channel Interpretation), ώστε ο QR scanner σας να μπορεί να αποκωδικοποιήσει κάθε γλώσσα σωστά. + +--- + +## Βήμα 3: Ξεκινήστε Καθαρά (Προαιρετικό αλλά Καθαρό) + +Αν ποτέ επαναχρησιμοποιήσετε το ίδιο αντικείμενο builder, η κλήση `clear()` αφαιρεί τυχόν προηγούμενα δεδομένα. Είναι ένα δίχτυ ασφαλείας που αποτρέπει τυχαία τμήματα να διαρρεύσουν στο επόμενο QR. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +Μπορείτε να παραλείψετε αυτή τη γραμμή την πρώτη φορά που τρέχετε το script, αλλά η διατήρησή της κάνει τον κώδικα αμετάβλητο—χρήσιμο όταν ενσωματώνετε αυτή τη λογική μέσα σε συνάρτηση που μπορεί να κληθεί επανειλημμένα. + +--- + +## Βήμα 4: Προσθήκη Απλού (Μη Κωδικοποιημένου) Τμήματος + +Τα περισσότερα QR codes ξεκινούν με μια απλή συμβολοσειρά ASCII—ίσως ένα αναγνωριστικό ή ένα URL. Η μέθοδος `add_plain_codetext` προσθέτει ακριβώς αυτό, χωρίς κανένα marker ECI. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +Σε αυτό το παράδειγμα χρησιμοποιούμε το `"HelloWorld"` ως placeholder. Αντικαταστήστε το με ό,τι χρειάζεστε—ίσως ένα SKU προϊόντος ή ένα σύντομο μήνυμα. + +--- + +## Βήμα 5: Προσθήκη **ECI‑Κωδικοποιημένου** Τμήματος (UTF‑8 = 26) + +Τώρα για το πολυγλωσσικό μέρος. Η τιμή ECI **26** αντιστοιχεί σε UTF‑8, το de‑facto πρότυπο για Unicode. Με τη μεταβίβαση του `26` μαζί με μια ρωσική φράση, λέμε στον QR scanner να μεταβεί σε UTF‑8 πριν διαβάσει τους επόμενους χαρακτήρες. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +Μπορείτε να αντικαταστήσετε το `26` με άλλες τιμές ECI (π.χ., `27` για ISO‑8859‑1) αν χρειάζεστε διαφορετική κωδικοποίηση. Ο builder θα εισάγει αυτόματα τους κατάλληλους χαρακτήρες ελέγχου. + +--- + +## Βήμα 6: Ανάκτηση του Συνδυασμένου Extended Codetext + +Μόλις προστεθούν όλα τα τμήματα, πάρτε τη τελική συμβολοσειρά που θα καταναλώσει ο QR generator. Αυτή η συμβολοσειρά περιέχει αόρατες ακολουθίες ελέγχου, αλλά μπορείτε ακόμα να την εκτυπώσετε για εντοπισμό σφαλμάτων. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +Η έξοδος της κονσόλας θα φαίνεται ακατάληπτη (λόγω των ενσωματωμένων bytes ελέγχου), κάτι που είναι απολύτως φυσιολογικό. Το σημαντικό είναι ότι ο builder έχει συνδέσει σωστά τα plain και Unicode τμήματα. + +--- + +## Βήμα 7: Διαμόρφωση του Barcode Generator + +Τώρα παραδίδουμε το extended codetext στο `BarcodeGenerator` του Aspose. Ορίστε τη συμβολική μορφή σε `QR` και εκχωρήστε τη συνδυασμένη συμβολοσειρά στο `code_text`. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +Μπορείτε να ρυθμίσετε επιπλέον ιδιότητες εδώ—όπως `resolution`, `error_correction_level` ή `foreground_color`. Αυτές οι επιλογές καλύπτονται στα έγγραφα του Aspose, αλλά για μια βασική εικόνα οι προεπιλογές λειτουργούν καλά. + +--- + +## Βήμα 8: Αποθήκευση της Παραγόμενης Εικόνας QR Code + +Τέλος, γράψτε το QR code στο δίσκο. Η μέθοδος `save` δέχεται διαδρομή αρχείου και προαιρετική μορφή· το PNG είναι μια ασφαλής προεπιλογή. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +Ανοίξτε το παραγόμενο `qr_extended.png` με οποιονδήποτε προβολέα εικόνας. Σαρώνοντας το με ένα smartphone θα πρέπει να εμφανίσει δύο ξεχωριστά μηνύματα: “HelloWorld” και “Привет”. Οι περισσότεροι σύγχρονοι QR αναγνώστες διαχειρίζονται αυτόματα την εναλλαγή ECI. + +--- + +## Πλήρες Παράδειγμα Εργασίας + +Συνδυάζοντας όλα τα παραπάνω, εδώ είναι το πλήρες script που μπορείτε να αντιγράψετε‑επικολλήσετε και να τρέξετε: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**Αναμενόμενη έξοδος** (κονσόλα): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +Ανοίξτε το `qr_extended.png` → σαρώστε → θα δείτε “HelloWorld” ακολουθούμενο από “Привет”. + +--- + +## Συχνές Ερωτήσεις & Ακραίες Περιπτώσεις + +### 1. *Τι γίνεται αν χρειάζομαι περισσότερα από δύο τμήματα;* +Απλώς καλέστε `add_plain_codetext` ή `add_eci_codetext` όσες φορές θέλετε. Ο builder διατηρεί τη σωστή σειρά, έτσι το QR code θα περιέχει κάθε τμήμα με τη σειρά που τα προσθέτετε. + +### 2. *Μπορώ να ενσωματώσω emojis;* +Ναι—τα emojis είναι απλώς χαρακτήρες Unicode. Χρησιμοποιήστε το UTF‑8 ECI (τιμή 26) και περάστε τη συμβολοσειρά emoji, π.χ., `builder.add_eci_codetext(26, "🚀")`. Το QR θα εμφανίσει το emoji του πυραύλου σε scanners που το υποστηρίζουν. + +### 3. *Τι γίνεται αν το QR γίνει πολύ πυκνό;* +Οι QR codes έχουν όρια έκδοσης. Αν υπερβείτε τη χωρητικότητα δεδομένων, το Aspose θα αυξήσει αυτόματα την έκδοση στο επόμενο μέγεθος, αλλά η εικόνα μπορεί να γίνει μεγαλύτερη. Για να ελέγξετε το μέγεθος, μπορείτε να μειώσετε το επίπεδο error correction: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *Πρέπει να ανησυχήσω για σύνολα χαρακτήρων διαφορετικά από το UTF‑8;* +Μόνο αν έχετε παλαιά συστήματα που απαιτούν συγκεκριμένη κωδικοποίηση (π.χ., ISO‑8859‑1). Σε αυτή την περίπτωση, αντικαταστήστε το `26` με την αντίστοιχη τιμή ECI (δείτε τον πίνακα ECI του Aspose). Για τις περισσότερες σύγχρονες εφαρμογές, το UTF‑8 είναι η ασφαλέστερη επιλογή. + +### 5. *Πώς να προσθέσω λογότυπο στο κέντρο;* +Το Aspose.Barcode υποστηρίζει `barcode.generator.QRCodeParameters.logo_image`. Φορτώστε μια εικόνα με Pillow (`from PIL import Image`) και την εκχωρήστε: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +Το λογότυπο θα τοποθετηθεί επάνω στην εικόνα διατηρώντας τη δυνατότητα σάρωσης (το Aspose προσαρμόζει αυτόματα τις ζώνες ησυχίας). + +--- + +## Συμβουλές για Παραγωγική Χρήση + +- **Cache το builder** αν δημιουργείτε το ίδιο QR επανειλημμένα· αποφεύγει την επαναδημιουργία της extended συμβολοσειράς κάθε φορά. +- **Επαληθεύστε την έξοδο** με μια μονάδα δοκιμής που αποκωδικοποιεί το QR (π.χ., χρησιμοποιώντας `zxing` ή `pyzbar`) για να διασφαλίσετε ότι οι εναλλαγές ECI είναι σωστές. +- **Ορίστε ένα ντετερμινιστικό όνομα αρχείου** (ίσως να περιλαμβάνει hash του payload) για να μην αντικαθιστάτε υπάρχουσες εικόνες. +- **Προσέξτε την άδεια χρήσης**: το Aspose.Barcode είναι εμπορικό λογισμικό. Η δωρεάν αξιολόγηση λειτουργεί για ανάπτυξη, αλλά απαιτείται άδεια για παραγωγική χρήση. + +--- + +## Επόμενα Βήματα & Σχετικά Θέματα + +Τώρα που ξέρετε **πώς να δημιουργήσετε QR code** + +## Τι Πρέπει Να Μάθετε Στη Σύντομη Μελλοντική Περίοδο; + +Τα παρακάτω tutorials καλύπτουν στενά σχετιζόμενα θέματα που βασίζονται στις τεχνικές που παρουσιάστηκαν σε αυτόν τον οδηγό. Κάθε πόρος περιλαμβάνει πλήρη παραδείγματα κώδικα με βήμα‑βήμα εξηγήσεις για να σας βοηθήσουν να κατακτήσετε πρόσθετες δυνατότητες του API και να εξερευνήσετε εναλλακτικές προσεγγίσεις υλοποίησης στα δικά σας έργα. + +- [How to Generate Barcode Image in Java with Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to create dotcode extended codetext with Aspose.BarCode for .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hindi/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/hindi/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..0b7cf3855 --- /dev/null +++ b/barcode/hindi/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,306 @@ +--- +category: general +date: 2026-07-15 +description: Python में Aspose.Barcode का उपयोग करके QR कोड इमेज कैसे बनाएं। विस्तारित + कोडटेक्स्ट, ECI एन्कोडिंग और यूनिकोड समर्थन के साथ चरण‑दर‑चरण QR कोड निर्माण सीखें। +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: hi +lastmod: 2026-07-15 +og_description: Aspose.Barcode के साथ Python में QR कोड इमेज कैसे बनाएं। यह गाइड आपको + विस्तारित कोडटेक्स्ट, ECI एन्कोडिंग और यूनिकोड अक्षरों का उपयोग करके QR कोड बनाने + की प्रक्रिया में मार्गदर्शन करता है। +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Python में QR कोड इमेज कैसे जनरेट करें – Aspose.Barcode पूर्ण ट्यूटोरियल +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Aspose.Barcode के साथ Python में QR कोड इमेज कैसे जनरेट करें – पूर्ण गाइड +url: /hi/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Python में Aspose.Barcode के साथ QR Code Image कैसे जनरेट करें – पूर्ण गाइड + +क्या आपने कभी **Python में QR code image** जनरेट करने के बारे में सोचा है बिना कई लाइब्रेरीज़ की खोज किए? आप अकेले नहीं हैं। कई डेवलपर्स को मल्टीलिंगुअल टेक्स्ट—जैसे रूसी, अरबी, या इमोजी—को QR कोड में एम्बेड करने का भरोसेमंद तरीका चाहिए, और बिल्ट‑इन लाइब्रेरीज़ अक्सर पर्याप्त नहीं होतीं। + +बात यह है कि Aspose.Barcode for Python इसे आश्चर्यजनक रूप से आसान बनाता है। इस ट्यूटोरियल में हम ठीक‑ठीक कदमों से गुजरेंगे, पैकेज को इंस्टॉल करने से लेकर एक विस्तारित कोडटेक्स्ट स्ट्रिंग बनाने तक जो साधारण ASCII को ECI‑एन्कोडेड Unicode के साथ मिलाता है। अंत तक आपके पास डिस्क पर तैयार‑to‑use QR code image होगा। + +## इस गाइड में क्या कवर किया गया है + +- Python के लिए **Aspose.Barcode** को इंस्टॉल करना (Python 3.8+ के साथ संगत) +- एक **विस्तारित कोडटेक्स्ट** बनाना जो साधारण और Unicode सेगमेंट को मिलाता है +- **ECI एन्कोडिंग** का उपयोग करके रूसी अक्षरों को सही ढंग से रेंडर करना +- `BarcodeGenerator` को कॉन्फ़िगर करके QR code जनरेट करना +- आउटपुट इमेज को PNG फ़ॉर्मेट में सेव करना +- टिप्स, सामान्य pitfalls, और अगले‑स्टेप आइडियाज़ (जैसे लोगो जोड़ना या एरर करेक्शन को ट्यून करना) + +Aspose का कोई पूर्व अनुभव आवश्यक नहीं है; बस एक बेसिक Python सेटअप और QR कोड्स में जिज्ञासा चाहिए। + +--- + +## प्री‑रिक्विज़िट्स + +शुरू करने से पहले सुनिश्चित करें कि आपके पास निम्नलिखित हैं: + +1. आपके मशीन पर **Python 3.8 या नया** इंस्टॉल हो। +2. एक **वर्चुअल एनवायरनमेंट** (वैकल्पिक लेकिन अनुशंसित) ताकि डिपेंडेंसीज़ साफ़ रहें। +3. `aspose-barcode` पैकेज इंस्टॉल करने के लिए **pip** एक्सेस। +4. उस फ़ोल्डर में लिखने की अनुमति जहाँ जनरेटेड PNG सेव किया जाएगा। + +यदि इनमें से कोई भी अज्ञात लग रहा है, तो यहाँ रुकें और सेटअप कर लें—एक बार तैयार हो जाने पर बाकी काम आसान है। + +--- + +## चरण 1: Python के लिए Aspose.Barcode इंस्टॉल करें + +पहला कदम है लाइब्रेरी प्राप्त करना। Aspose अपने पैकेज PyPI पर वितरित करता है, इसलिए एक ही `pip` कमांड काम कर देगा: + +```bash +pip install aspose-barcode +``` + +> **Pro tip:** यदि आप वर्चुअल एनवायरनमेंट के अंदर हैं, तो आपका ग्लोबल site‑packages साफ़ रहेगा। यदि परमिशन एरर आता है, तो `--user` जोड़ें या `sudo` के साथ चलाएँ (हालांकि आधुनिक सेटअप में यह अक्सर आवश्यक नहीं होता)। + +इंस्टॉल समाप्त होने के बाद आप इसे इस तरह वेरिफ़ाई कर सकते हैं: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +यदि संस्करण बिना किसी शिकायत के प्रिंट हो जाता है, तो आप तैयार हैं। + +--- + +## चरण 2: **Extended Codetext Builder** इंस्टेंस बनाएं + +Aspose.Barcode `ExtCodetextBuilder` क्लास प्रदान करता है जिससे जटिल QR पेलोड्स को कॉम्पोज़ किया जा सकता है। इसे ऐसे समझें जैसे एक छोटा टेक्स्ट एडिटर जो प्रत्येक सेगमेंट के लिए सही कंट्रोल कैरेक्टर्स प्री‑पेंड कर देता है। + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +बिल्डर क्यों उपयोग करें? सीधे रॉ बाइट्स को कॉनकैटनेट करना त्रुटिप्रवण होता है; बिल्डर सही ECI (Extended Channel Interpretation) स्विचेस की गारंटी देता है, जिससे आपका QR स्कैनर हर भाषा को सही ढंग से डिकोड कर सके। + +--- + +## चरण 3: नई शुरुआत (वैकल्पिक लेकिन साफ़) + +यदि आप कभी भी वही बिल्डर इंस्टेंस री‑यूज़ करते हैं, तो `clear()` कॉल करने से पिछला डेटा मिट जाता है। यह एक सुरक्षा जाल है जो अनचाहे सेगमेंट्स को अगले QR में लीक होने से रोकता है। + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +पहली बार स्क्रिप्ट चलाते समय आप इस लाइन को स्किप कर सकते हैं, लेकिन इसे रखना कोड को आइडेम्पोटेंट बनाता है—विशेषकर जब आप इस लॉजिक को किसी फ़ंक्शन में एम्बेड करते हैं जो कई बार कॉल हो सकता है। + +--- + +## चरण 4: एक Plain (Un‑encoded) सेगमेंट जोड़ें + +अधिकांश QR कोड्स एक साधारण ASCII स्ट्रिंग से शुरू होते हैं—शायद एक आइडेंटिफ़ायर या URL। `add_plain_codetext` मेथड ठीक वही जोड़ता है, बिना किसी ECI मार्कर के। + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +इस उदाहरण में हम `"HelloWorld"` को प्लेसहोल्डर के रूप में उपयोग कर रहे हैं। इसे अपनी ज़रूरत के अनुसार बदलें—जैसे प्रोडक्ट SKU या छोटा मैसेज। + +--- + +## चरण 5: एक **ECI‑Encoded** सेगमेंट जोड़ें (UTF‑8 = 26) + +अब मल्टीलिंगुअल भाग आता है। ECI वैल्यू **26** UTF‑8 से मेल खाती है, जो Unicode का डि‑फैक्टो मानक है। `26` को रूसी वाक्यांश के साथ पास करके हम QR स्कैनर को बताते हैं कि आगे के कैरेक्टर्स को UTF‑8 में पढ़ना है। + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +यदि आपको अलग एन्कोडिंग चाहिए, तो `26` को अन्य ECI वैल्यूज़ (जैसे `27` ISO‑8859‑1 के लिए) से बदल सकते हैं। बिल्डर स्वचालित रूप से उचित कंट्रोल कैरेक्टर्स इन्सर्ट कर देगा। + +--- + +## चरण 6: संयुक्त Extended Codetext प्राप्त करें + +सभी सेगमेंट जोड़ने के बाद, अंतिम स्ट्रिंग को प्राप्त करें जिसे QR जेनरेटर उपयोग करेगा। इस स्ट्रिंग में अदृश्य कंट्रोल सीक्वेंसेज़ होते हैं, लेकिन आप डिबगिंग के लिए इसे प्रिंट कर सकते हैं। + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +कंसोल आउटपुट गड़बड़ दिखेगा (कंट्रोल बाइट्स के कारण), जो बिल्कुल सामान्य है। महत्वपूर्ण बात यह है कि बिल्डर ने साधारण और Unicode भागों को सही ढंग से जोड़ दिया है। + +--- + +## चरण 7: Barcode Generator कॉन्फ़िगर करें + +अब हम विस्तारित कोडटेक्स्ट को Aspose के `BarcodeGenerator` को देते हैं। सिम्बोलॉजी को `QR` सेट करें और संयुक्त स्ट्रिंग को `code_text` में असाइन करें। + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +आप यहाँ अतिरिक्त प्रॉपर्टीज़ भी ट्यून कर सकते हैं—जैसे `resolution`, `error_correction_level`, या `foreground_color`। ये विकल्प Aspose डॉक्यूमेंटेशन में कवर किए गए हैं, लेकिन बेसिक इमेज के लिए डिफ़ॉल्ट्स पर्याप्त हैं। + +--- + +## चरण 8: जनरेटेड QR Code Image को सेव करें + +अंत में, QR कोड को डिस्क पर लिखें। `save` मेथड फ़ाइल पाथ और वैकल्पिक फ़ॉर्मेट लेता है; PNG एक सुरक्षित डिफ़ॉल्ट है। + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +जनरेटेड `qr_extended.png` को किसी भी इमेज व्यूअर से खोलें। इसे स्मार्टफ़ोन से स्कैन करने पर दो अलग‑अलग संदेश दिखेंगे: “HelloWorld” और “Привет”。 अधिकांश आधुनिक QR रीडर्स स्वचालित रूप से ECI स्विच को हैंडल कर लेते हैं। + +--- + +## पूर्ण कार्यशील उदाहरण + +सब कुछ मिलाकर, यहाँ पूरा स्क्रिप्ट है जिसे आप कॉपी‑पेस्ट करके चला सकते हैं: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**अपेक्षित आउटपुट** (कंसोल): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +`qr_extended.png` खोलें → स्कैन करें → आपको “HelloWorld” के बाद “Привет” दिखेगा। + +--- + +## सामान्य प्रश्न एवं एज केस + +### 1. *अगर मुझे दो से अधिक सेगमेंट चाहिए?* +सिर्फ `add_plain_codetext` या `add_eci_codetext` को जितनी बार चाहें कॉल करें। बिल्डर सही क्रम बनाए रखेगा, इसलिए QR कोड में प्रत्येक सेगमेंट उसी क्रम में रहेगा जैसा आप जोड़ते हैं। + +### 2. *क्या मैं इमोजी एम्बेड कर सकता हूँ?* +हाँ—इमोजी भी Unicode कैरेक्टर्स होते हैं। UTF‑8 ECI (वैल्यू 26) उपयोग करें और इमोजी स्ट्रिंग पास करें, जैसे `builder.add_eci_codetext(26, "🚀")`। समर्थित स्कैनर्स पर QR रॉकेट इमोजी दिखाएगा। + +### 3. *अगर QR बहुत डेंस हो जाए?* +QR कोड के संस्करण सीमाएँ होती हैं। यदि डेटा क्षमता से अधिक हो जाता है, तो Aspose स्वचालित रूप से अगला बड़ा संस्करण ले लेगा, लेकिन इमेज बड़ा हो सकता है। आकार को कंट्रोल करने के लिए एरर करेक्शन लेवल कम करें: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *क्या मुझे UTF‑8 के अलावा अन्य कैरेक्टर सेट की चिंता करनी पड़ेगी?* +सिर्फ तभी जब आपके लेगेसी सिस्टम को विशेष एन्कोडिंग चाहिए (जैसे ISO‑8859‑1)। ऐसे में `26` को उपयुक्त ECI वैल्यू से बदलें (Aspose की ECI टेबल देखें)। अधिकांश आधुनिक एप्लिकेशन के लिए UTF‑8 सबसे सुरक्षित विकल्प है। + +### 5. *मैं QR के केंद्र में लोगो कैसे जोड़ूँ?* +Aspose.Barcode `barcode.generator.QRCodeParameters.logo_image` को सपोर्ट करता है। Pillow (`from PIL import Image`) से इमेज लोड करें और असाइन करें: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +लोगो ओवरले हो जाएगा जबकि स्कैनबिलिटी बनी रहेगी (Aspose स्वचालित रूप से क्वाइट ज़ोन एडजस्ट करता है)। + +--- + +## प्रोडक्शन उपयोग के लिए प्रो टिप्स + +- **बिल्डर को कैश करें** यदि आप एक ही QR बार‑बार जनरेट करते हैं; इससे हर बार विस्तारित स्ट्रिंग री‑बिल्ड करने की जरूरत नहीं पड़ेगी। +- **आउटपुट को वैलिडेट करें** यूनिट टेस्ट के साथ जो QR को डिकोड करता है (जैसे `zxing` या `pyzbar`) ताकि आपके ECI स्विच सही हों। +- **डिटर्मिनिस्टिक फ़ाइल नाम** सेट करें (शायद पेलोड का हैश शामिल करके) ताकि मौजूदा इमेज ओवरराइट न हों। +- **लाइसेंसिंग का ध्यान रखें**: Aspose.Barcode एक कमर्शियल सॉफ़्टवेयर है। फ्री इवैल्यूएशन डेवलपमेंट के लिए काम करता है, लेकिन प्रोडक्शन में लाइसेंस आवश्यक है। + +--- + +## अगले कदम एवं संबंधित टॉपिक्स + +अब आप **QR code जनरेट करने** के तरीके जानते हैं, तो आगे आप ये ट्यूटोरियल देख सकते हैं जो इस गाइड में दिखाए गए तकनीकों को आगे बढ़ाते हैं। प्रत्येक रिसोर्स में पूर्ण कार्यशील कोड उदाहरण और स्टेप‑बाय‑स्टेप एक्सप्लेनेशन है ताकि आप अतिरिक्त API फीचर्स को मास्टर कर सकें और अपने प्रोजेक्ट्स में वैकल्पिक इम्प्लीमेंटेशन अप्रोचेज़ को एक्सप्लोर कर सकें। + +- [How to Generate Barcode Image in Java with Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to create dotcode extended codetext with Aspose.BarCode for .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hongkong/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/hongkong/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..4eac70d82 --- /dev/null +++ b/barcode/hongkong/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,305 @@ +--- +category: general +date: 2026-07-15 +description: 如何在 Python 中使用 Aspose.Barcode 產生 QR Code 圖像。一步一步學習 QR Code 的建立,支援擴充編碼文字、ECI + 編碼及 Unicode。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: zh-hant +lastmod: 2026-07-15 +og_description: 如何在 Python 中使用 Aspose.Barcode 產生 QR Code 圖像。本指南將逐步說明如何使用擴展碼文字、ECI + 編碼和 Unicode 字元來建立 QR Code。 +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: 如何在 Python 中生成 QR 碼圖像 – Aspose.Barcode 完整教學 +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: 如何在 Python 中使用 Aspose.Barcode 產生 QR Code 圖像 – 完整指南 +url: /zh-hant/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 Python 中使用 Aspose.Barcode 產生 QR Code 圖片 – 完整指南 + +有沒有想過 **如何在 Python 中產生 QR code 圖片**,卻不必搜尋上百個函式庫?你並不孤單。許多開發者需要可靠的方式在 QR code 中嵌入多語言文字——例如俄文、阿拉伯文或表情符號——而內建的函式庫往往無法滿足需求。 + +事實上,Aspose.Barcode for Python 讓這件事變得相當簡單。在本教學中,我們將逐步說明從安裝套件到打造結合普通 ASCII 與 ECI 編碼 Unicode 的延伸編碼文字(extended codetext)字串。完成後,你將得到一張可直接使用的 QR code 圖片,已儲存於磁碟上。 + +## 本指南涵蓋內容 + +- 安裝 **Aspose.Barcode** for Python(相容於 Python 3.8 以上) +- 建立結合普通與 Unicode 區段的 **extended codetext** +- 使用 **ECI 編碼** 正確呈現俄文字符 +- 設定 `BarcodeGenerator` 產生 QR code +- 以 PNG 格式儲存輸出圖像 +- 小技巧、常見陷阱與後續想法(例如加入商標或調整錯誤更正等) + +不需要任何 Aspose 使用經驗;只要有基本的 Python 環境與對 QR code 的好奇心即可。 + +--- + +## 前置條件 + +在開始之前,請確保你已具備以下條件: + +1. 已在機器上安裝 **Python 3.8 或更新版本**。 +2. **虛擬環境**(非必須但建議)以保持相依套件整潔。 +3. 能使用 **pip** 安裝 `aspose-barcode` 套件。 +4. 具有寫入權限的資料夾,用來儲存產生的 PNG 檔案。 + +如果上述任一項你不熟悉,請先暫停並完成設定——一旦準備就緒,接下來的步驟會非常簡單。 + +--- + +## 步驟 1:安裝 Aspose.Barcode for Python + +第一件事是取得函式庫。Aspose 於 PyPI 發佈套件,只要執行以下 `pip` 指令即可: + +```bash +pip install aspose-barcode +``` + +> **Pro tip:** 若你在虛擬環境中執行,能避免汙染全域 site‑packages。若遇到權限錯誤,可在指令前加上 `--user`,或使用 `sudo`(但在現代環境中通常不需要)。 + +安裝完成後,可使用以下指令驗證版本: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +若能順利印出版本號,代表安裝成功,接下來就可以繼續。 + +--- + +## 步驟 2:建立 **Extended Codetext Builder** 實例 + +Aspose.Barcode 提供 `ExtCodetextBuilder` 類別,用來組合複雜的 QR 負載。它就像一個小型文字編輯器,會自動在每個區段前加上正確的控制字元。 + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +為什麼要使用 Builder?直接手動串接原始位元組非常容易出錯;Builder 會保證正確的 ECI(Extended Channel Interpretation)切換,讓 QR 掃描器能正確解碼每種語言。 + +--- + +## 步驟 3:重新開始(可選,但建議) + +如果你重複使用同一個 Builder 實例,呼叫 `clear()` 會清除先前的資料。這是一層安全網,避免舊有區段意外流入下一個 QR。 + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +第一次執行腳本時可以省略這行,但保留它能讓程式具備冪等性——在函式內部被多次呼叫時特別有用。 + +--- + +## 步驟 4:加入普通(未編碼)區段 + +大多數 QR code 會以簡單的 ASCII 字串開頭——可能是識別碼或 URL。`add_plain_codetext` 方法正是用來加入這類文字,且不會加入任何 ECI 標記。 + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +此範例使用 `"HelloWorld"` 作為佔位字串。請自行替換成你需要的內容,例如產品 SKU 或簡短訊息。 + +--- + +## 步驟 5:加入 **ECI‑編碼** 區段(UTF‑8 = 26) + +接下來處理多語言部分。ECI 值 **26** 代表 UTF‑8,這是 Unicode 的事實標準。將 `26` 與俄文片語一起傳入,即可告訴 QR 掃描器在讀取後續字符前切換至 UTF‑8。 + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +若需其他編碼,可將 `26` 換成其他 ECI 值(例如 `27` 代表 ISO‑8859‑1),Builder 會自動插入正確的控制字元。 + +--- + +## 步驟 6:取得合併後的 Extended Codetext + +所有區段加入完畢後,取回最終字串供 QR 產生器使用。此字串內含不可見的控制序列,仍可列印以供除錯。 + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +在主控台上會看到雜亂的字元(因為內嵌了控制位元組),這是正常現象。關鍵是 Builder 已正確把普通與 Unicode 部分串接在一起。 + +--- + +## 步驟 7:設定 Barcode Generator + +現在把延伸編碼文字交給 Aspose 的 `BarcodeGenerator`。將條碼類型設為 `QR`,並把合併後的字串指派給 `code_text`。 + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +此處亦可調整其他屬性,例如 `resolution`、`error_correction_level` 或 `foreground_color`。這些選項在 Aspose 文件中都有說明,但對於基本圖像而言,預設值已足夠。 + +--- + +## 步驟 8:儲存產生的 QR Code 圖片 + +最後,將 QR code 寫入磁碟。`save` 方法接受檔案路徑與可選的格式;PNG 是最安全的預設。 + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +使用任何影像檢視器開啟 `qr_extended.png`。用智慧型手機掃描,應會分別顯示兩段訊息:「HelloWorld」與「Привет」。大多數現代 QR 讀取器會自動處理 ECI 切換。 + +--- + +## 完整範例程式 + +以下是可直接複製貼上執行的完整腳本: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**預期輸出**(主控台): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +開啟 `qr_extended.png` → 掃描 → 會看到「HelloWorld」接著「Привет」。 + +--- + +## 常見問題與邊緣案例 + +### 1. *如果需要超過兩個區段怎麼辦?* +只要多次呼叫 `add_plain_codetext` 或 `add_eci_codetext` 即可。Builder 會維持正確的順序,QR code 會依加入的順序呈現每個區段。 + +### 2. *可以嵌入表情符號嗎?* +可以——表情符號本身就是 Unicode 字元。使用 UTF‑8 ECI(值 26)並傳入表情字串,例如 `builder.add_eci_codetext(26, "🚀")`。支援的掃描器會顯示火箭表情。 + +### 3. *如果 QR 變得太密集怎麼處理?* +QR code 有版本上限。若資料容量超過,Aspose 會自動升級至較大的版本,但圖像尺寸會變大。若想控制大小,可降低錯誤更正等級: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *除了 UTF‑8,還需要考慮其他字元集嗎?* +只有在必須配合舊系統使用特定編碼(例如 ISO‑8859‑1)時才需要。此時將 `26` 換成相對應的 ECI 值(請參考 Aspose 的 ECI 表)。對於大多數現代應用,UTF‑8 是最安全的選擇。 + +### 5. *如何在中心加入商標?* +Aspose.Barcode 支援 `barcode.generator.QRCodeParameters.logo_image`。先用 Pillow 載入圖像(`from PIL import Image`),再指派: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +商標會被疊加,同時 Aspose 會自動調整安靜區以維持可掃描性。 + +--- + +## 生產環境使用小技巧 + +- **快取 Builder**:若同一筆資料會重複產生 QR,快取已建好的 Builder 可避免每次重新組合字串。 +- **驗證輸出**:使用單元測試搭配 `zxing` 或 `pyzbar` 解碼 QR,確保 ECI 切換正確。 +- **使用決定性的檔名**:可將 payload 的雜湊值加入檔名,避免覆寫既有圖檔。 +- **注意授權**:Aspose.Barcode 為商業軟體。開發階段的免費評估版足以測試,正式上線前需購買授權。 + +--- + +## 後續步驟與相關主題 + +現在你已掌握 **如何產生 QR code**,以下教學提供進一步的技巧與替代實作方式,幫助你在專案中發揮更多 API 功能。 + +- [如何在 Java 中使用 Aspose.BarCode 產生條碼圖片](/barcode/english/java/barcode-rendering-techniques/) +- [如何在 .NET 中使用 Aspose.BarCode 產生自訂長寬比例的 Aztec 條碼](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [如何在 .NET 中使用 Aspose.BarCode 建立 dotcode 延伸編碼文字](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hungarian/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/hungarian/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..04e2504c0 --- /dev/null +++ b/barcode/hungarian/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,291 @@ +--- +category: general +date: 2026-07-15 +description: Hogyan generáljunk QR‑kód képet Pythonban az Aspose.Barcode használatával. + Tanulja meg lépésről‑lépésre a QR‑kód létrehozását kiterjesztett kódszöveggel, ECI‑kódolással + és Unicode‑támogatással. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: hu +lastmod: 2026-07-15 +og_description: Hogyan generáljunk QR-kód képet Pythonban az Aspose.Barcode segítségével. + Ez az útmutató végigvezet a QR-kódok létrehozásán kiterjesztett kódszöveg, ECI kódolás + és Unicode karakterek használatával. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Hogyan generáljunk QR‑kód képet Pythonban – Aspose.Barcode teljes útmutató +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Hogyan generáljunk QR‑kód képet Pythonban az Aspose.Barcode segítségével – + Teljes útmutató +url: /hu/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan generáljunk QR kód képet Pythonban az Aspose.Barcode segítségével – Teljes útmutató + +Gondolkodtál már azon, **hogyan generálj QR kód képet** Pythonban anélkül, hogy tucatnyi könyvtárat kellene keresgélned? Nem vagy egyedül. Sok fejlesztőnek megbízható módra van szüksége, hogy többnyelvű szöveget – például oroszt, arabot vagy emojikat – ágyazzon egy QR kódba, és a beépített könyvtárak gyakran nem elegendőek. + +A lényeg: az Aspose.Barcode for Python ezt meglepően egyszerűvé teszi. Ebben a tutorialban lépésről lépésre végigvezetünk a csomag telepítésétől az kiterjesztett codetext karakterlánc összeállításáig, amely egyszerű ASCII‑t kever ECI‑kódolt Unicode‑dal. A végére egy azonnal használható QR kód kép lesz a lemezen. + +## Amit ez az útmutató lefed + +- Az **Aspose.Barcode** telepítése Pythonhoz (kompatibilis a Python 3.8+ verzióval) +- **Kiterjesztett codetext** felépítése, amely egyszerű és Unicode szegmenseket kombinál +- **ECI kódolás** használata az orosz karakterek helyes megjelenítéséhez +- A `BarcodeGenerator` konfigurálása QR kód előállításához +- A kimeneti kép mentése PNG formátumban +- Tippek, gyakori buktatók és további ötletek (például logók hozzáadása vagy hibajavítás beállítása) + +Nem szükséges előzetes tapasztalat az Aspose‑szal; elegendő egy alap Python környezet és egy kis kíváncsiság a QR kódok iránt. + +--- + +## Előfeltételek + +Mielőtt belevágnánk, győződj meg róla, hogy a következők rendelkezésre állnak: + +1. **Python 3.8 vagy újabb** telepítve van a gépeden. +2. **Virtuális környezet** (opcionális, de ajánlott) a függőségek rendezett kezelése érdekében. +3. **pip** hozzáférés a `aspose-barcode` csomag telepítéséhez. +4. Írási jogosultság egy olyan mappához, ahol a generált PNG‑t menteni fogod. + +Ha valamelyik pont ismeretlennek tűnik, állj meg itt, és állítsd be őket – ha készen állsz, a többi már könnyedén megy. + +--- + +## 1. lépés: Az Aspose.Barcode telepítése Pythonhoz + +Az első akadály a könyvtár beszerzése. Az Aspose a csomagjait a PyPI‑n teszi közzé, így egyetlen `pip` parancs elég: + +```bash +pip install aspose-barcode +``` + +> **Pro tipp:** Ha virtuális környezetben dolgozol, a globális site‑packages tisztán marad. Ha jogosultsági hibát kapsz, előzd meg a parancsot `--user` kapcsolóval vagy futtasd `sudo`‑val (bár a modern környezetekben ez ritkán szükséges). + +A telepítés befejezése után ellenőrizheted: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +Ha a verzió hiba nélkül kiíródik, minden rendben van. + +## 2. lépés: **Extended Codetext Builder** példány létrehozása + +Az Aspose.Barcode biztosítja az `ExtCodetextBuilder` osztályt a komplex QR payloadok összeállításához. Olyan, mint egy kis szövegszerkesztő, amely tudja, hogyan kell a megfelelő vezérlőkaraktereket előállítani minden szegmenshez. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +Miért használjunk builder‑t? A nyers bájtok közvetlen összefűzése hibára hajlamos; a builder garantálja a helyes ECI (Extended Channel Interpretation) váltásokat, így a QR‑olvasó minden nyelvet helyesen dekódol. + +## 3. lépés: Friss kezdés (opcionális, de tiszta) + +Ha újrahasználsz egy builder példányt, a `clear()` hívás eltávolítja az előző adatokat. Ez egy biztonsági háló, amely megakadályozza, hogy korábbi szegmensek bekerüljenek a következő QR‑be. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +Az első futtatáskor kihagyhatod ezt a sort, de a megtartása idempotenssé teszi a kódot – hasznos, ha ezt a logikát egy olyan függvényben használod, amelyet többször hívhatnak. + +## 4. lépés: Egyszerű (nem kódolt) szegmens hozzáadása + +A legtöbb QR kód egyszerű ASCII szöveggel kezdődik – például egy azonosítóval vagy URL‑lel. Az `add_plain_codetext` metódus pontosan ezt adja hozzá, ECI jelző nélkül. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +Ebben a példában a `"HelloWorld"` helyőrzőt használjuk. Cseréld le arra, amire szükséged van – például egy termék SKU‑ra vagy rövid üzenetre. + +## 5. lépés: **ECI‑kódolt** szegmens hozzáadása (UTF‑8 = 26) + +Most jön a többnyelvű rész. A **26** ECI érték az UTF‑8‑nak felel meg, ami a de‑facto Unicode szabvány. A `26` és egy orosz kifejezés átadásával azt mondjuk a QR‑olvasónak, hogy UTF‑8‑ra váltson a következő karakterek előtt. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +A `26` helyett más ECI értékeket is használhatsz (például `27` ISO‑8859‑1‑hez), ha más kódolásra van szükséged. A builder automatikusan beilleszti a megfelelő vezérlőkaraktereket. + +## 6. lépés: Az egyesített kiterjesztett codetext lekérése + +Miután minden szegmens hozzá lett adva, kérd le a végső karakterláncot, amelyet a QR generátor felhasznál. Ez a string láthatatlan vezérlőszekvenciákat tartalmaz, de a hibakereséshez nyugodtan kiírhatod. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +A konzol kimenete összezavartnak tűnik (a beágyazott vezérlőbájtok miatt), ami teljesen normális. A lényeg, hogy a builder helyesen összefűzte az egyszerű és Unicode részeket. + +## 7. lépés: A Barcode Generator konfigurálása + +Most átadjuk a kiterjesztett codetext‑et az Aspose `BarcodeGenerator`‑nek. Állítsuk be a szimbólumot `QR`‑ra, és rendeljük hozzá a kombinált stringet a `code_text`‑hez. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +Itt további tulajdonságokat is finomhangolhatsz – például `resolution`, `error_correction_level` vagy `foreground_color`. Ezeket az Aspose dokumentációja részletezi, de egy alap képhez a default beállítások is megfelelőek. + +## 8. lépés: A generált QR kód kép mentése + +Végül írjuk a QR kódot a lemezre. A `save` metódus egy fájlútvonalat és opcionálisan egy formátumot fogad; a PNG egy biztonságos alapértelmezés. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +Nyisd meg a keletkezett `qr_extended.png` fájlt bármely képmegjelenítővel. Ha okostelefonnal szkennelöd, két külön üzenetet kell látnod: „HelloWorld” és „Привет”. A legtöbb modern QR‑olvasó automatikusan kezeli az ECI‑váltást. + +## Teljes működő példa + +Összegezve, itt a teljes szkript, amelyet egyszerűen másolj‑be és futtass: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**Várható kimenet** (konzol): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +Nyisd meg a `qr_extended.png`‑t → szkennelj → a „HelloWorld” után a „Привет” jelenik meg. + +## Gyakori kérdések és szélhelyzetek + +### 1. *Mi van, ha több mint két szegmensre van szükségem?* +Egyszerűen hívd meg az `add_plain_codetext` vagy `add_eci_codetext` metódust annyiszor, ahányra szükséged van. A builder megőrzi a helyes sorrendet, így a QR kód a hozzáadott szegmenseket a megadott sorrendben tartalmazza. + +### 2. *Beágyazhatok‑e emojikat?* +Igen – az emojik is Unicode karakterek. Használd az UTF‑8 ECI‑t (26) és add át az emoji stringet, például `builder.add_eci_codetext(26, "🚀")`. A QR a rakéta emojit jeleníti meg a támogatott olvasókban. + +### 3. *Mi van, ha a QR túl sűrű lesz?* +A QR kódok verziókorlátokkal rendelkeznek. Ha túlléped az adatkapacitást, az Aspose automatikusan a következő méretre lépteti a verziót, de a kép nagyobb lesz. A méret szabályozásához csökkentheted a hibajavítási szintet: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *Aggódom-e más karakterkészletek miatt, mint az UTF‑8?* +Csak akkor, ha olyan régi rendszerekkel dolgozol, amelyeknek konkrét kódolásra van szükségük (például ISO‑8859‑1). Ebben az esetben cseréld a `26`‑ot a megfelelő ECI értékre (lásd az Aspose ECI táblázatát). A legtöbb modern alkalmazásnál az UTF‑8 a legbiztonságosabb választás. + +### 5. *Hogyan adhatok hozzá logót a közepébe?* +Az Aspose.Barcode támogatja a `barcode.generator.QRCodeParameters.logo_image` beállítást. Tölts be egy képet a Pillow‑val (`from PIL import Image`) és rendeld hozzá: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +A logó a QR kódra kerül, miközben a leolvashatóság megmarad (az Aspose automatikusan beállítja a quiet zone‑t). + +## Pro tippek a termeléshez + +- **Cache‑eld a builder‑t**, ha ugyanazt a QR‑t gyakran generálod; így elkerülöd a kiterjesztett string újbóli összeállítását. +- **Validáld a kimenetet** egy egységteszttel, amely dekódolja a QR‑t (például `zxing` vagy `pyzbar` használatával), hogy biztosan helyesek legyenek az ECI‑váltások. +- **Határozott fájlnév** használata (például a payload hash‑e) megakadályozza a meglévő képek felülírását. +- **Figyelj a licencelésre**: az Aspose.Barcode kereskedelmi szoftver. A ingyenes értékelő verzió fejlesztéshez elegendő, de a termeléshez licenc szükséges. + +## Következő lépések és kapcsolódó témák + +Most, hogy már tudod **hogyan generálj QR kódot** + + +## Mit tanulj meg legközelebb? + +Az alábbi tutorialok szorosan kapcsolódó témákat fednek le, amelyek a jelen útmutatóban bemutatott technikákra épülnek. Minden forrás teljes, működő kódrészleteket és lépésről‑lépésre magyarázatokat tartalmaz, hogy további API‑funkciókat saját projektjeidben is könnyedén alkalmazhasd. + +- [How to Generate Barcode Image in Java with Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to create dotcode extended codetext with Aspose.BarCode for .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/indonesian/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/indonesian/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..ea8d759d4 --- /dev/null +++ b/barcode/indonesian/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,312 @@ +--- +category: general +date: 2026-07-15 +description: Cara menghasilkan gambar QR code di Python menggunakan Aspose.Barcode. + Pelajari langkah demi langkah pembuatan QR code dengan codetext yang diperluas, + enkoding ECI, dan dukungan Unicode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: id +lastmod: 2026-07-15 +og_description: Cara menghasilkan gambar kode QR di Python dengan Aspose.Barcode. + Panduan ini memandu Anda melalui pembuatan kode QR menggunakan codetext yang diperluas, + enkoding ECI, dan karakter Unicode. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Cara Menghasilkan Gambar Kode QR di Python – Tutorial Lengkap Aspose.Barcode +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Cara Membuat Gambar QR Code di Python dengan Aspose.Barcode – Panduan Lengkap +url: /id/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Menghasilkan Gambar QR Code di Python dengan Aspose.Barcode – Panduan Lengkap + +Pernah bertanya-tanya **cara menghasilkan gambar QR code** di Python tanpa harus mencari puluhan pustaka? Anda tidak sendirian. Banyak pengembang membutuhkan cara yang andal untuk menyematkan teks multibahasa—misalnya Rusia, Arab, atau emoji—di dalam QR code, dan pustaka bawaan seringkali tidak memadai. + +Berikut faktanya: Aspose.Barcode untuk Python membuat proses ini terasa sangat mudah. Dalam tutorial ini kami akan membimbing Anda melalui langkah‑langkah tepat, mulai dari menginstal paket hingga membuat string extended codetext yang menggabungkan ASCII biasa dengan Unicode yang dienkode ECI. Pada akhir tutorial Anda akan memiliki gambar QR code siap pakai yang tersimpan di disk. + +## Apa yang Dibahas dalam Panduan Ini + +- Menginstal **Aspose.Barcode** untuk Python (kompatibel dengan Python 3.8+) +- Membuat **extended codetext** yang menggabungkan segmen plain dan Unicode +- Menggunakan **ECI encoding** untuk menampilkan karakter Rusia dengan benar +- Mengonfigurasi `BarcodeGenerator` untuk menghasilkan QR code +- Menyimpan gambar output dalam format PNG +- Tips, jebakan umum, dan ide langkah selanjutnya (seperti menambahkan logo atau menyesuaikan error correction) + +Tidak diperlukan pengalaman sebelumnya dengan Aspose; cukup dengan setup Python dasar dan rasa ingin tahu tentang QR code. + +--- + +## Prasyarat + +Sebelum kita mulai, pastikan Anda memiliki: + +1. **Python 3.8 atau lebih baru** terpasang di mesin Anda. +2. **Virtual environment** (opsional namun disarankan) untuk menjaga ketergantungan tetap rapi. +3. Akses **pip** untuk menginstal paket `aspose-barcode`. +4. Izin menulis ke folder tempat PNG yang dihasilkan akan disimpan. + +Jika ada yang belum familiar, berhentilah sejenak dan siapkan dulu—setelah semuanya siap, sisanya sangat mudah. + +--- + +## Langkah 1: Instal Aspose.Barcode untuk Python + +Rintangan pertama adalah mendapatkan pustaka tersebut. Aspose mendistribusikan paketnya di PyPI, jadi satu perintah `pip` sudah cukup: + +```bash +pip install aspose-barcode +``` + +> **Pro tip:** Jika Anda berada di dalam virtual environment, Anda akan menjaga site‑packages global tetap bersih. Jika muncul error izin, tambahkan `--user` atau jalankan perintah dengan `sudo` (meskipun biasanya tidak diperlukan pada setup modern). + +Setelah instalasi selesai, Anda dapat memverifikasinya dengan: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +Jika versi tercetak tanpa keluhan, Anda siap melanjutkan. + +--- + +## Langkah 2: Buat Instance **Extended Codetext Builder** + +Aspose.Barcode menyediakan kelas `ExtCodetextBuilder` untuk menyusun payload QR yang kompleks. Anggaplah ini sebagai editor teks kecil yang tahu cara menambahkan karakter kontrol yang tepat untuk setiap segmen. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +Mengapa menggunakan builder? Menggabungkan byte mentah secara langsung rawan kesalahan; builder menjamin pergantian ECI (Extended Channel Interpretation) yang benar, sehingga pemindai QR Anda dapat mendekode setiap bahasa dengan tepat. + +--- + +## Langkah 3: Mulai dari Awal (Opsional tapi Bersih) + +Jika Anda pernah menggunakan kembali instance builder yang sama, memanggil `clear()` akan menghapus data sebelumnya. Ini berfungsi sebagai jaring pengaman yang mencegah segmen lama masuk ke QR berikutnya. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +Anda dapat melewatkan baris ini pada kali pertama menjalankan skrip, tetapi menyimpannya membuat kode menjadi idempotent—berguna ketika logika ini dibungkus dalam fungsi yang dipanggil berulang kali. + +--- + +## Langkah 4: Tambahkan Segmen Plain (Tidak Dienkode) + +Sebagian besar QR code dimulai dengan string ASCII sederhana—mungkin sebuah identifier atau URL. Metode `add_plain_codetext` menambahkan tepat itu, tanpa penanda ECI. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +Dalam contoh ini kami memakai `"HelloWorld"` sebagai placeholder. Ganti dengan apa pun yang Anda butuhkan—mungkin SKU produk atau pesan singkat. + +--- + +## Langkah 5: Tambahkan Segmen **ECI‑Encoded** (UTF‑8 = 26) + +Sekarang bagian multibahasa. Nilai ECI **26** mengacu pada UTF‑8, standar de‑facto untuk Unicode. Dengan memberikan `26` bersama frasa Rusia, kami memberi tahu pemindai QR untuk beralih ke UTF‑8 sebelum membaca karakter berikutnya. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +Anda dapat mengganti `26` dengan nilai ECI lain (misalnya `27` untuk ISO‑8859‑1) jika memerlukan enkoding berbeda. Builder secara otomatis menyisipkan karakter kontrol yang tepat. + +--- + +## Langkah 6: Dapatkan Extended Codetext yang Digabungkan + +Setelah semua segmen ditambahkan, ambil string akhir yang akan dikonsumsi oleh generator QR. String ini berisi urutan kontrol tak terlihat, tetapi Anda tetap dapat mencetaknya untuk debugging. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +Output di konsol akan terlihat berantakan (karena byte kontrol tertanam), hal ini normal. Yang penting, builder telah menyatukan bagian plain dan Unicode dengan benar. + +--- + +## Langkah 7: Konfigurasikan Barcode Generator + +Sekarang kami menyerahkan extended codetext ke `BarcodeGenerator` milik Aspose. Atur symbology menjadi `QR` dan berikan string gabungan ke `code_text`. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +Anda dapat menyesuaikan properti tambahan di sini—seperti `resolution`, `error_correction_level`, atau `foreground_color`. Opsi‑opsi tersebut dibahas di dokumentasi Aspose, tetapi untuk gambar dasar nilai default sudah cukup baik. + +--- + +## Langkah 8: Simpan Gambar QR Code yang Dihasilkan + +Akhirnya, tulis QR code ke disk. Metode `save` menerima path file dan format opsional; PNG adalah pilihan aman. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +Buka `qr_extended.png` dengan penampil gambar apa pun. Memindainya menggunakan smartphone harus menampilkan dua pesan terpisah: “HelloWorld” dan “Привет”. Kebanyakan pembaca QR modern secara otomatis menangani pergantian ECI. + +--- + +## Contoh Lengkap yang Berfungsi + +Berikut skrip lengkap yang dapat Anda salin‑tempel dan jalankan: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**Output yang diharapkan** (konsol): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +Buka `qr_extended.png` → pindai → Anda akan melihat “HelloWorld” diikuti oleh “Привет”. + +--- + +## Pertanyaan Umum & Kasus Edge + +### 1. *Bagaimana jika saya membutuhkan lebih dari dua segmen?* +Cukup panggil `add_plain_codetext` atau `add_eci_codetext` sebanyak yang Anda perlukan. Builder menjaga urutan yang benar, sehingga QR code akan berisi setiap segmen sesuai urutan penambahan. + +### 2. *Apakah saya bisa menyematkan emoji?* +Ya—emoji hanyalah karakter Unicode. Gunakan ECI UTF‑8 (nilai 26) dan berikan string emoji, misalnya `builder.add_eci_codetext(26, "🚀")`. QR akan menampilkan emoji roket pada pemindai yang mendukungnya. + +### 3. *Bagaimana jika QR menjadi terlalu padat?* +QR code memiliki batas versi. Jika Anda melampaui kapasitas data, Aspose secara otomatis akan meningkatkan versi ke ukuran berikutnya, namun gambar mungkin menjadi lebih besar. Untuk mengontrol ukuran, Anda dapat menurunkan level error correction: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *Apakah saya harus khawatir tentang set karakter selain UTF‑8?* +Hanya jika Anda memiliki sistem legacy yang memerlukan enkoding khusus (misalnya ISO‑8859‑1). Dalam kasus tersebut, ganti `26` dengan nilai ECI yang sesuai (lihat tabel ECI Aspose). Untuk kebanyakan aplikasi modern, UTF‑8 adalah pilihan paling aman. + +### 5. *Bagaimana cara menambahkan logo di tengah?* +Aspose.Barcode mendukung `barcode.generator.QRCodeParameters.logo_image`. Muat gambar dengan Pillow (`from PIL import Image`) dan tetapkan: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +Logo akan ditumpangkan sambil tetap menjaga kemampuan pemindaian (Aspose secara otomatis menyesuaikan quiet zone). + +--- + +## Pro Tips untuk Penggunaan di Produksi + +- **Cache builder** jika Anda menghasilkan QR yang sama berulang kali; ini menghindari pembuatan ulang string extended setiap kali. +- **Validasi output** dengan unit test yang mendekode QR (misalnya menggunakan `zxing` atau `pyzbar`) untuk memastikan pergantian ECI Anda tepat. +- **Gunakan nama file deterministik** (misalnya sertakan hash dari payload) agar tidak menimpa gambar yang sudah ada. +- **Perhatikan lisensi**: Aspose.Barcode adalah perangkat lunak komersial. Evaluasi gratis cukup untuk pengembangan, tetapi lisensi diperlukan untuk deployment produksi. + +--- + +## Langkah Selanjutnya & Topik Terkait + +Sekarang Anda sudah tahu **cara menghasilkan QR code** + + +## Apa yang Harus Anda Pelajari Selanjutnya? + +Tutorial berikut mencakup topik terkait yang membangun teknik yang ditunjukkan dalam panduan ini. Setiap sumber menyertakan contoh kode lengkap dengan penjelasan langkah‑demi‑langkah untuk membantu Anda menguasai fitur API tambahan dan mengeksplorasi pendekatan implementasi alternatif dalam proyek Anda. + +- [How to Generate Barcode Image in Java with Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to create dotcode extended codetext with Aspose.BarCode for .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/italian/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/italian/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..e0636ea9f --- /dev/null +++ b/barcode/italian/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,292 @@ +--- +category: general +date: 2026-07-15 +description: Come generare un'immagine QR code in Python usando Aspose.Barcode. Impara + passo passo la creazione di QR code con codetext esteso, codifica ECI e supporto + Unicode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: it +lastmod: 2026-07-15 +og_description: Come generare un'immagine di codice QR in Python con Aspose.Barcode. + Questa guida ti accompagna nella creazione di codici QR utilizzando codetext esteso, + codifica ECI e caratteri Unicode. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Come generare un'immagine QR Code in Python – Tutorial completo di Aspose.Barcode +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Come generare un'immagine QR Code in Python con Aspose.Barcode – Guida completa +url: /it/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come generare un'immagine QR Code in Python con Aspose.Barcode – Guida completa + +Ti sei mai chiesto **come generare un'immagine QR code** in Python senza dover cercare tra decine di librerie? Non sei solo. Molti sviluppatori hanno bisogno di un modo affidabile per incorporare testo multilingue — pensa a russo, arabo o emoji — all'interno di un QR code, e le librerie integrate spesso non sono sufficienti. + +Ecco la questione: Aspose.Barcode per Python rende tutto sorprendentemente semplice. In questo tutorial percorreremo passo passo le istruzioni, dall'installazione del pacchetto alla creazione di una stringa di codetext esteso che mescola ASCII semplice con Unicode codificato ECI. Alla fine avrai un'immagine QR code pronta all'uso salvata su disco. + +## Cosa copre questa guida + +- Installazione di **Aspose.Barcode** per Python (compatibile con Python 3.8+) +- Creazione di un **extended codetext** che combina segmenti plain e Unicode +- Utilizzo della **ECI encoding** per rendere correttamente i caratteri russi +- Configurazione del `BarcodeGenerator` per produrre un QR code +- Salvataggio dell'immagine di output in formato PNG +- Suggerimenti, errori comuni e idee per i prossimi passi (come aggiungere loghi o modificare il livello di correzione degli errori) + +Non è necessaria alcuna esperienza pregressa con Aspose; basta una configurazione Python di base e la curiosità per i QR code. + +--- + +## Prerequisiti + +Prima di immergerci, assicurati di avere: + +1. **Python 3.8 o più recente** installato sulla tua macchina. +2. Un **ambiente virtuale** (opzionale ma consigliato) per mantenere ordinate le dipendenze. +3. Accesso a **pip** per installare il pacchetto `aspose-barcode`. +4. Permessi di scrittura su una cartella dove verrà salvato il PNG generato. + +Se qualcuno di questi punti ti è sconosciuto, fermati qui e configurali — una volta pronti, il resto è un gioco da ragazzi. + +## Passo 1: Installare Aspose.Barcode per Python + +Il primo ostacolo è ottenere la libreria. Aspose distribuisce i suoi pacchetti su PyPI, quindi un singolo comando `pip` fa al caso tuo: + +```bash +pip install aspose-barcode +``` + +> **Pro tip:** Se sei all'interno di un ambiente virtuale, manterrai puliti i tuoi site‑packages globali. Se incontri errori di permesso, anteponi `--user` o esegui il comando con `sudo` (anche se quest'ultimo è raramente necessario nei setup moderni). + +Dopo che l'installazione è terminata, puoi verificarla con: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +Se la versione viene stampata senza problemi, sei pronto per procedere. + +## Passo 2: Creare un'istanza **Extended Codetext Builder** + +Aspose.Barcode fornisce la classe `ExtCodetextBuilder` per comporre payload QR complessi. Pensala come un piccolo editor di testo che sa come anteporre i giusti caratteri di controllo per ogni segmento. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +Perché usare un builder? Concatenare direttamente byte grezzi è soggetto a errori; il builder garantisce i corretti switch ECI (Extended Channel Interpretation), così il tuo scanner QR può decodificare correttamente ogni lingua. + +## Passo 3: Iniziare da zero (Opzionale ma pulito) + +Se riutilizzi la stessa istanza del builder, chiamare `clear()` elimina tutti i dati precedenti. È una rete di sicurezza che impedisce a segmenti residui di infiltrarsi nel QR successivo. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +Puoi saltare questa riga la prima volta che esegui lo script, ma mantenerla rende il codice idempotente — utile quando incapsuli questa logica in una funzione che potrebbe essere chiamata più volte. + +## Passo 4: Aggiungere un segmento Plain (non codificato) + +La maggior parte dei QR code inizia con una semplice stringa ASCII — magari un identificatore o un URL. Il metodo `add_plain_codetext` aggiunge esattamente questo, senza alcun marcatore ECI. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +In questo esempio usiamo `"HelloWorld"` come segnaposto. Sostituiscilo con ciò che ti serve — forse un SKU prodotto o un breve messaggio. + +## Passo 5: Aggiungere un segmento **ECI‑Encoded** (UTF‑8 = 26) + +Ora arriva la parte multilingue. Il valore ECI **26** corrisponde a UTF‑8, lo standard de‑facto per Unicode. Passando `26` insieme a una frase russa, indichiamo allo scanner QR di passare a UTF‑8 prima di leggere i caratteri successivi. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +Puoi sostituire `26` con altri valori ECI (ad esempio `27` per ISO‑8859‑1) se ti serve una codifica diversa. Il builder inserirà automaticamente i corretti caratteri di controllo. + +## Passo 6: Recuperare il Codetext Esteso combinato + +Una volta aggiunti tutti i segmenti, estrai la stringa finale che il generatore QR consumerà. Questa stringa contiene sequenze di controllo invisibili, ma puoi comunque stamparla per il debug. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +L'output della console apparirà confuso (a causa dei byte di controllo incorporati), il che è perfettamente normale. La parte importante è che il builder ha unito correttamente le parti plain e Unicode. + +## Passo 7: Configurare il Barcode Generator + +Ora passiamo il codetext esteso a `BarcodeGenerator` di Aspose. Imposta la simbologia su `QR` e assegna la stringa combinata a `code_text`. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +Puoi modificare altre proprietà qui — come `resolution`, `error_correction_level` o `foreground_color`. Quelle opzioni sono descritte nella documentazione Aspose, ma per un'immagine di base i valori predefiniti funzionano bene. + +## Passo 8: Salvare l'immagine QR Code generata + +Infine, scrivi il QR code su disco. Il metodo `save` accetta un percorso file e un formato opzionale; PNG è un valore sicuro di default. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +Apri il file `qr_extended.png` con qualsiasi visualizzatore di immagini. Scansionandolo con uno smartphone dovresti vedere due messaggi separati: “HelloWorld” e “Привет”. La maggior parte dei lettori QR moderni gestisce automaticamente lo switch ECI. + +## Esempio completo funzionante + +Mettendo tutto insieme, ecco lo script completo che puoi copiare‑incollare ed eseguire: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**Output atteso** (console): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +Apri `qr_extended.png` → scansiona → vedrai “HelloWorld” seguito da “Привет”. + +## Domande comuni e casi limite + +### 1. *E se ho bisogno di più di due segmenti?* + +Basta chiamare `add_plain_codetext` o `add_eci_codetext` tutte le volte che desideri. Il builder mantiene l'ordine corretto, così il QR code conterrà ogni segmento nella sequenza in cui li aggiungi. + +### 2. *Posso incorporare emoji?* + +Sì — le emoji sono semplicemente caratteri Unicode. Usa l'ECI UTF‑8 (valore 26) e passa la stringa emoji, ad esempio `builder.add_eci_codetext(26, "🚀")`. Il QR mostrerà l'emoji razzo su scanner che la supportano. + +### 3. *Cosa succede se il QR diventa troppo denso?* + +I QR code hanno limiti di versione. Se superi la capacità dati, Aspose aumenterà automaticamente la versione alla successiva dimensione, ma l'immagine potrebbe diventare più grande. Per controllare le dimensioni, puoi abbassare il livello di correzione degli errori: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *Devo preoccuparmi di set di caratteri diversi da UTF‑8?* + +Solo se hai sistemi legacy che richiedono una codifica specifica (ad esempio ISO‑8859‑1). In tal caso, sostituisci `26` con il valore ECI appropriato (vedi la tabella ECI di Aspose). Per la maggior parte delle app moderne, UTF‑8 è la scelta più sicura. + +### 5. *Come aggiungere un logo al centro?* + +Aspose.Barcode supporta `barcode.generator.QRCodeParameters.logo_image`. Carica un'immagine con Pillow (`from PIL import Image`) e assegnala: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +Il logo verrà sovrapposto mantenendo la scansionabilità (Aspose regola automaticamente le zone quiet). + +## Consigli professionali per l'uso in produzione + +- **Cache the builder** se generi lo stesso QR più volte; evita di ricostruire la stringa estesa ad ogni esecuzione. +- **Validate the output** con un test unitario che decodifica il QR (ad es. usando `zxing` o `pyzbar`) per assicurarti che gli switch ECI siano corretti. +- **Set a deterministic file name** (magari includendo un hash del payload) per evitare di sovrascrivere immagini esistenti. +- **Mind the licensing**: Aspose.Barcode è software commerciale. La valutazione gratuita funziona per lo sviluppo, ma è necessaria una licenza per il deployment in produzione. + +## Prossimi passi e argomenti correlati + +Ora che sai **come generare QR code + +## Cosa dovresti imparare dopo? + +I tutorial seguenti trattano argomenti strettamente correlati che si basano sulle tecniche dimostrate in questa guida. Ogni risorsa include esempi di codice completi con spiegazioni passo‑passo per aiutarti a padroneggiare funzionalità API aggiuntive ed esplorare approcci di implementazione alternativi nei tuoi progetti. + +- [How to Generate Barcode Image in Java with Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to create dotcode extended codetext with Aspose.BarCode for .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/japanese/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/japanese/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..815251f4f --- /dev/null +++ b/barcode/japanese/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,305 @@ +--- +category: general +date: 2026-07-15 +description: Aspose.Barcode を使用して Python で QR コード画像を生成する方法。拡張コードテキスト、ECI エンコーディング、Unicode + 対応のステップバイステップ QR コード作成を学びましょう。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: ja +lastmod: 2026-07-15 +og_description: Aspose.Barcode を使用して Python で QR コード画像を生成する方法。このガイドでは、拡張コードテキスト、ECI + エンコーディング、Unicode 文字を使用した QR コードの作成手順を説明します。 +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: PythonでQRコード画像を生成する方法 – Aspose.Barcode 完全チュートリアル +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Aspose.Barcode を使用した Python での QR コード画像生成方法 – 完全ガイド +url: /ja/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Python で Aspose.Barcode を使用して QR コード画像を生成する方法 – 完全ガイド + +何十ものライブラリを探さずに **Python で QR コード画像を生成する方法** を知りたくありませんか? あなたは一人ではありません。多くの開発者が、ロシア語、アラビア語、絵文字などの多言語テキストを QR コードに埋め込む信頼できる方法を必要としており、標準ライブラリだけでは足りないことが多いです。 + +実は、Aspose.Barcode for Python を使えば驚くほど簡単に実現できます。このチュートリアルでは、パッケージのインストールから、プレーン ASCII と ECI エンコードされた Unicode を混在させた拡張コードテキスト文字列の作成まで、正確な手順を順に解説します。最後には、ディスク上に保存された使用可能な QR コード画像が手に入ります。 + +## 本ガイドでカバーする内容 + +- Python 用 **Aspose.Barcode** のインストール(Python 3.8+ 対応) +- プレーンと Unicode セグメントを組み合わせた **拡張コードテキスト** の構築 +- ロシア語文字を正しく表示するための **ECI エンコード** の使用 +- QR コード生成のための `BarcodeGenerator` の設定 +- PNG 形式での出力画像の保存 +- ヒント、よくある落とし穴、次のステップのアイデア(ロゴの追加や誤り訂正レベルの調整など) + +Aspose の事前知識は不要です。基本的な Python 環境と QR コードへの興味さえあれば始められます。 + +--- + +## 前提条件 + +作業を始める前に、以下を確認してください。 + +1. **Python 3.8 以上** がマシンにインストールされていること。 +2. **仮想環境**(任意だが推奨)を使用して依存関係を整理できること。 +3. `aspose-barcode` パッケージをインストールできる **pip** のアクセス権があること。 +4. 生成した PNG を保存するフォルダーへの書き込み権限があること。 + +これらに心当たりがない場合は、ここで一度設定を済ませてください。準備が整えば、後は簡単です。 + +--- + +## 手順 1: Aspose.Barcode for Python をインストール + +最初のハードルはライブラリの取得です。Aspose は PyPI にパッケージを配布しているので、`pip` コマンド一つで完了します。 + +```bash +pip install aspose-barcode +``` + +> **プロのコツ:** 仮想環境内で実行すれば、グローバルの site‑packages を汚さずに済みます。権限エラーが出た場合は `--user` を付けるか、`sudo` で実行してください(ただし、最新の環境ではほとんど必要ありません)。 + +インストールが完了したら、以下で確認できます。 + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +バージョンが問題なく表示されれば、準備完了です。 + +--- + +## 手順 2: **拡張コードテキスト ビルダー** インスタンスを作成 + +Aspose.Barcode には、複雑な QR ペイロードを組み立てるための `ExtCodetextBuilder` クラスが用意されています。各セグメントに適切な制御文字を自動で付加してくれる、ミニテキストエディタのようなものです。 + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +ビルダーを使う理由は何ですか? 生のバイト列を手作業で連結するとミスが起きやすいですが、ビルダーは正しい ECI(拡張チャネル解釈)スイッチを保証するので、スキャナがすべての言語を正しくデコードできます。 + +--- + +## 手順 3: 新規作成(任意だがクリーンに) + +同じビルダーインスタンスを再利用する場合は、`clear()` を呼び出すことで以前のデータをすべて消去できます。これにより、前回のセグメントが次の QR に混入するのを防げます。 + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +最初の実行時にこの行を省いても構いませんが、関数内で繰り返し呼び出す場合は冪等性を保つために残しておくと便利です。 + +--- + +## 手順 4: プレーン(エンコードなし)セグメントを追加 + +多くの QR コードはシンプルな ASCII 文字列から始まります。たとえば識別子や URL です。`add_plain_codetext` メソッドは、ECI マーカーを付けずにその文字列を追加します。 + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +この例ではプレースホルダーとして `"HelloWorld"` を使用しています。必要に応じて製品 SKU や短いメッセージに置き換えてください。 + +--- + +## 手順 5: **ECI エンコード** セグメントを追加(UTF‑8 = 26) + +ここから多言語対応です。ECI 値 **26** は UTF‑8 に対応しており、Unicode の事実上の標準です。`26` とロシア語フレーズを渡すことで、QR スキャナに UTF‑8 に切り替えてから文字を読むよう指示します。 + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +別のエンコードが必要な場合は、たとえば ISO‑8859‑1 用に `27` など、他の ECI 値に置き換えてください。ビルダーが自動で適切な制御文字を挿入します。 + +--- + +## 手順 6: 結合された拡張コードテキストを取得 + +すべてのセグメントを追加したら、QR ジェネレータが使用する最終文字列を取得します。この文字列には目に見えない制御シーケンスが含まれますが、デバッグ用に出力は可能です。 + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +コンソールには文字化けしたように見えるはずです(制御バイトが埋め込まれているため)。重要なのは、ビルダーがプレーン部分と Unicode 部分を正しくつなげていることです。 + +--- + +## 手順 7: バーコードジェネレータを設定 + +拡張コードテキストを Aspose の `BarcodeGenerator` に渡します。シンボロジーを `QR` に設定し、結合文字列を `code_text` に割り当てます。 + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +ここで `resolution`、`error_correction_level`、`foreground_color` などの追加プロパティも調整できます。基本的な画像生成ではデフォルトで十分です。 + +--- + +## 手順 8: 生成した QR コード画像を保存 + +最後に QR コードをディスクに書き出します。`save` メソッドはファイルパスとオプションのフォーマットを受け取り、PNG が安全なデフォルトです。 + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +生成された `qr_extended.png` を任意の画像ビューアで開き、スマートフォンでスキャンすると、2 つのメッセージ「HelloWorld」と「Привет」が表示されます。ほとんどの最新 QR リーダーは自動で ECI スイッチを処理します。 + +--- + +## 完全動作サンプル + +以下に、コピー&ペーストしてそのまま実行できる完全なスクリプトを示します。 + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**期待されるコンソール出力**: + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +`qr_extended.png` を開き → スキャン → 「HelloWorld」に続いて「Привет」が表示されます。 + +--- + +## よくある質問とエッジケース + +### 1. *セグメントが 2 つ以上必要な場合は?* +`add_plain_codetext` または `add_eci_codetext` を好きなだけ呼び出せば OK です。ビルダーは順序を正しく保持するので、追加した順に QR に埋め込まれます。 + +### 2. *絵文字を埋め込めますか?* +可能です。絵文字も Unicode 文字です。UTF‑8 ECI(値 26)を使い、たとえば `builder.add_eci_codetext(26, "🚀")` とすれば、対応スキャナでロケット絵文字が表示されます。 + +### 3. *QR が密すぎる場合は?* +QR にはバージョン上限があります。データ容量を超えると Aspose が自動で次のバージョンに拡大しますが、画像が大きくなることがあります。サイズを抑えたい場合は誤り訂正レベルを下げてみてください。 + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *UTF‑8 以外の文字セットは必要ですか?* +レガシーシステムで特定のエンコードが要求される場合を除き、ほとんどの現代アプリでは UTF‑8 が最適です。その場合は適切な ECI 値に置き換えてください(Aspose の ECI テーブル参照)。 + +### 5. *中央にロゴを入れるには?* +Aspose.Barcode は `barcode.generator.QRCodeParameters.logo_image` をサポートしています。Pillow で画像を読み込み、次のように設定します。 + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +ロゴは自動で静寂領域(quiet zone)を調整し、スキャン可能性を保ちます。 + +--- + +## 本番環境でのプロ向けヒント + +- 同じ QR を頻繁に生成する場合は **ビルダーをキャッシュ** して、毎回文字列を再構築しないようにしましょう。 +- `zxing` や `pyzbar` を使ったユニットテストで出力をデコードし、ECI スイッチが正しいか検証してください。 +- ペイロードのハッシュをファイル名に含めるなど、**決定的なファイル名**を設定して上書きを防止します。 +- **ライセンスに注意**: Aspose.Barcode は商用ソフトウェアです。開発段階は無料評価版で動作しますが、本番デプロイにはライセンスが必要です。 + +--- + +## 次のステップ & 関連トピック + +今や **QR コードの生成方法** をマスターしたので、以下のチュートリアルでさらにスキルを広げましょう。各リソースは完全なコード例とステップバイステップの解説が付属しています。 + +- [How to Generate Barcode Image in Java with Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to create dotcode extended codetext with Aspose.BarCode for .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/korean/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/korean/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..f17f01cd0 --- /dev/null +++ b/barcode/korean/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,309 @@ +--- +category: general +date: 2026-07-15 +description: Aspose.Barcode를 사용하여 Python에서 QR 코드 이미지를 생성하는 방법. 확장된 코드텍스트, ECI 인코딩 + 및 유니코드 지원을 포함한 단계별 QR 코드 생성 방법을 배워보세요. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: ko +lastmod: 2026-07-15 +og_description: Aspose.Barcode를 사용하여 Python에서 QR 코드 이미지를 생성하는 방법. 이 가이드는 확장된 코드텍스트, + ECI 인코딩 및 유니코드 문자를 사용하여 QR 코드를 만드는 과정을 안내합니다. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Python에서 QR 코드 이미지 생성 방법 – Aspose.Barcode 완전 튜토리얼 +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Aspose.Barcode를 사용하여 Python에서 QR 코드 이미지 생성 방법 – 전체 가이드 +url: /ko/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Python에서 Aspose.Barcode으로 QR 코드 이미지 생성 방법 – 전체 가이드 + +수십 개의 라이브러리를 찾아다니지 않고도 Python에서 **QR 코드 이미지를 생성하는 방법**을 궁금해 본 적 있나요? 당신만 그런 것이 아닙니다. 많은 개발자들이 러시아어, 아랍어, 이모지와 같은 다국어 텍스트를 QR 코드에 삽입할 신뢰할 수 있는 방법을 필요로 하는데, 기본 제공 라이브러리들은 종종 부족합니다. + +핵심은 이렇습니다: Aspose.Barcode for Python을 사용하면 이 과정이 놀라울 정도로 간단합니다. 이 튜토리얼에서는 패키지 설치부터 일반 ASCII와 ECI‑인코딩된 Unicode를 혼합한 확장 코드텍스트 문자열을 만드는 단계까지 정확히 안내합니다. 마지막에는 디스크에 저장된 바로 사용할 수 있는 QR 코드 이미지를 얻게 됩니다. + +## 이 가이드에서 다루는 내용 + +- Python용 **Aspose.Barcode** 설치 (Python 3.8 이상 호환) +- 일반 텍스트와 Unicode 세그먼트를 결합한 **확장 코드텍스트** 만들기 +- 러시아어 문자를 올바르게 표시하기 위한 **ECI 인코딩** 사용 +- QR 코드를 생성하도록 `BarcodeGenerator` 구성 +- PNG 형식으로 출력 이미지 저장 +- 팁, 흔히 발생하는 문제점, 다음 단계 아이디어(예: 로고 삽입 또는 오류 정정 수준 조정) + +Aspose 사용 경험이 없어도 괜찮습니다; 기본적인 Python 환경만 있으면 QR 코드에 대해 궁금해 하는 모든 것을 배울 수 있습니다. + +--- + +## 사전 요구 사항 + +시작하기 전에 다음을 확인하세요: + +1. **Python 3.8 이상**이 머신에 설치되어 있어야 합니다. +2. **가상 환경**(선택 사항이지만 권장)으로 의존성을 깔끔하게 관리하세요. +3. `aspose-barcode` 패키지를 설치할 수 있는 **pip** 접근 권한. +4. 생성된 PNG 파일을 저장할 폴더에 대한 **쓰기 권한**. + +위 항목 중 익숙하지 않은 것이 있다면 여기서 멈추고 설정을 마친 뒤 진행하세요—준비가 되면 나머지는 아주 쉬워집니다. + +--- + +## Step 1: Install Aspose.Barcode for Python + +첫 번째 관문은 라이브러리를 가져오는 것입니다. Aspose는 패키지를 PyPI에 배포하므로 `pip` 한 줄로 설치하면 됩니다: + +```bash +pip install aspose-barcode +``` + +> **프로 팁:** 가상 환경 안에서 실행하면 전역 site‑packages를 깨끗하게 유지할 수 있습니다. 권한 오류가 발생하면 `--user` 옵션을 앞에 붙이거나 `sudo`로 실행하세요(현대 환경에서는 거의 필요하지 않습니다). + +설치가 끝나면 다음 명령으로 확인할 수 있습니다: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +버전이 오류 없이 출력되면 준비 완료입니다. + +--- + +## Step 2: Create an **Extended Codetext Builder** Instance + +Aspose.Barcode은 복잡한 QR 페이로드를 구성하기 위해 `ExtCodetextBuilder` 클래스를 제공합니다. 이는 각 세그먼트에 맞는 제어 문자를 자동으로 앞에 붙여주는 작은 텍스트 편집기와 같습니다. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +왜 빌더를 사용하나요? 원시 바이트를 직접 연결하면 오류가 발생하기 쉽습니다. 빌더는 올바른 ECI(Extended Channel Interpretation) 전환을 보장하므로 QR 스캐너가 모든 언어를 정확히 해석할 수 있습니다. + +--- + +## Step 3: Start Fresh (Optional but Clean) + +같은 빌더 인스턴스를 재사용할 경우 `clear()`를 호출하면 이전 데이터가 모두 삭제됩니다. 이는 다음 QR에 불필요한 세그먼트가 섞이는 것을 방지하는 안전망입니다. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +스크립트를 처음 실행할 때는 이 줄을 생략해도 되지만, 코드를 함수 안에 넣어 여러 번 호출할 경우 idempotent(멱등)하게 유지할 수 있어 좋습니다. + +--- + +## Step 4: Add a Plain (Un‑encoded) Segment + +대부분의 QR 코드는 간단한 ASCII 문자열—예를 들어 식별자나 URL—로 시작합니다. `add_plain_codetext` 메서드는 ECI 마커 없이 바로 해당 문자열을 추가합니다. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +예시에서는 `"HelloWorld"`를 사용했지만, 필요에 따라 제품 SKU나 짧은 메시지 등으로 교체하면 됩니다. + +--- + +## Step 5: Add an **ECI‑Encoded** Segment (UTF‑8 = 26) + +이제 다국어 부분을 추가합니다. ECI 값 **26**은 UTF‑8을 의미하며, 이는 Unicode의 사실상 표준 인코딩입니다. `26`과 러시아어 구문을 함께 전달하면 QR 스캐너가 해당 문자들을 읽기 전에 UTF‑8 모드로 전환하도록 지시합니다. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +다른 인코딩이 필요하면 `27`(ISO‑8859‑1) 등 다른 ECI 값으로 교체하면 됩니다. 빌더가 자동으로 올바른 제어 문자를 삽입합니다. + +--- + +## Step 6: Retrieve the Combined Extended Codetext + +모든 세그먼트를 추가한 뒤, QR 생성기가 사용할 최종 문자열을 가져옵니다. 이 문자열에는 눈에 보이지 않는 제어 시퀀스가 포함되지만, 디버깅을 위해 출력해 볼 수 있습니다. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +콘솔 출력은 제어 바이트 때문에 깨져 보이지만 정상입니다. 중요한 것은 빌더가 일반 텍스트와 Unicode 부분을 올바르게 연결했는지 확인하는 것입니다. + +--- + +## Step 7: Configure the Barcode Generator + +이제 확장 코드텍스트를 Aspose의 `BarcodeGenerator`에 전달합니다. 심볼로지를 `QR`로 설정하고, 결합된 문자열을 `code_text`에 할당합니다. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +여기서 `resolution`, `error_correction_level`, `foreground_color` 등 추가 속성을 조정할 수 있습니다. 자세한 옵션은 Aspose 문서를 참고하세요; 기본값만으로도 충분히 좋은 이미지가 생성됩니다. + +--- + +## Step 8: Save the Generated QR Code Image + +마지막으로 QR 코드를 디스크에 저장합니다. `save` 메서드는 파일 경로와 선택적인 포맷을 받으며, PNG가 안전한 기본값입니다. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +생성된 `qr_extended.png`를 이미지 뷰어로 열어보세요. 스마트폰으로 스캔하면 두 개의 메시지—“HelloWorld”와 “Привет”—가 순차적으로 표시됩니다. 최신 QR 리더는 자동으로 ECI 전환을 처리합니다. + +--- + +## Full Working Example + +전체 흐름을 한 번에 보여주는 스크립트입니다. 복사‑붙여넣기 후 바로 실행해 보세요: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**예상 콘솔 출력**: + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +`qr_extended.png`를 열고 → 스캔 → “HelloWorld” 뒤에 “Привет”가 나타나는 것을 확인하세요. + +--- + +## Common Questions & Edge Cases + +### 1. *What if I need more than two segments?* +Simply call `add_plain_codetext` or `add_eci_codetext` as many times as you like. The builder maintains the correct ordering, so the QR code will contain each segment in the sequence you add them. + +### 2. *Can I embed emojis?* +Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and pass the emoji string, e.g., `builder.add_eci_codetext(26, "🚀")`. The QR will display the rocket emoji on supporting scanners. + +### 3. *What if the QR becomes too dense?* +QR codes have version limits. If you exceed the data capacity, Aspose will automatically bump the version up to the next size, but the image might become larger. To control size, you can lower the error correction level: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *Do I need to worry about character sets other than UTF‑8?* +Only if you have legacy systems that require a specific encoding (e.g., ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + +### 5. *How do I add a logo in the center?* +Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. Load an image with Pillow (`from PIL import Image`) and assign it: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +The logo will be overlaid while preserving scannability (Aspose automatically adjusts quiet zones). + +--- + +## Pro Tips for Production Use + +- **Cache the builder** if you generate the same QR repeatedly; it avoids rebuilding the extended string each time. +- **Validate the output** with a unit test that decodes the QR (e.g., using `zxing` or `pyzbar`) to ensure your ECI switches are correct. +- **Set a deterministic file name** (maybe include a hash of the payload) to avoid overwriting existing images. +- **Mind the licensing**: Aspose.Barcode is commercial software. The free evaluation works for development, but a license is required for production deployment. + +--- + +## Next Steps & Related Topics + +Now that you know **how to generate QR code + +## What Should You Learn Next? + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [Java에서 Aspose.BarCode으로 바코드 이미지 생성 방법](/barcode/english/java/barcode-rendering-techniques/) +- [Aspose.BarCode for .NET에서 사용자 정의 종횡비로 Aztec 바코드 생성 방법](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [.NET용 Aspose.BarCode으로 dotcode 확장 코드텍스트 구성 방법](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/polish/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/polish/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..456be6dcc --- /dev/null +++ b/barcode/polish/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,295 @@ +--- +category: general +date: 2026-07-15 +description: Jak wygenerować obraz kodu QR w Pythonie przy użyciu Aspose.Barcode. + Dowiedz się krok po kroku, jak tworzyć kody QR z rozszerzonym tekstem kodu, kodowaniem + ECI i obsługą Unicode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: pl +lastmod: 2026-07-15 +og_description: Jak wygenerować obraz kodu QR w Pythonie przy użyciu Aspose.Barcode. + Ten przewodnik krok po kroku pokazuje, jak tworzyć kody QR z rozszerzonym tekstem + kodu, kodowaniem ECI i znakami Unicode. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Jak wygenerować obraz kodu QR w Pythonie – Kompletny samouczek Aspose.Barcode +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Jak wygenerować obraz kodu QR w Pythonie przy użyciu Aspose.Barcode – pełny + przewodnik +url: /pl/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak wygenerować obraz kodu QR w Pythonie przy użyciu Aspose.Barcode – Pełny przewodnik + +Zastanawiałeś się kiedyś **jak wygenerować obraz kodu QR** w Pythonie bez przeszukiwania dziesiątek bibliotek? Nie jesteś sam. Wielu programistów potrzebuje niezawodnego sposobu na osadzenie wielojęzycznego tekstu — myśl o rosyjskim, arabskim lub emoji — w kodzie QR, a wbudowane biblioteki często zawodzą. + +Otóż Aspose.Barcode dla Pythona sprawia, że jest to zaskakująco proste. W tym poradniku przeprowadzimy Cię przez dokładne kroki, od instalacji pakietu po stworzenie rozszerzonego ciągu kodowego, który miesza zwykły ASCII z kodowanym Unicode ECI. Po zakończeniu będziesz mieć gotowy do użycia obraz kodu QR zapisany na dysku. + +## Co obejmuje ten przewodnik + +- Instalacja **Aspose.Barcode** dla Pythona (kompatybilna z Python 3.8+) +- Tworzenie **rozszerzonego ciągu kodowego** łączącego segmenty zwykłe i Unicode +- Użycie **kodowania ECI** do poprawnego renderowania rosyjskich znaków +- Konfiguracja `BarcodeGenerator` do generowania kodu QR +- Zapisywanie obrazu wyjściowego w formacie PNG +- Porady, typowe pułapki i pomysły na kolejne kroki (np. dodawanie logo lub dostosowywanie poziomu korekcji błędów) + +Nie wymagana jest wcześniejsza znajomość Aspose; wystarczy podstawowa konfiguracja Pythona i ciekawość dotycząca kodów QR. + +--- + +## Wymagania wstępne + +Zanim zanurkujemy, upewnij się, że masz: + +1. **Python 3.8 lub nowszy** zainstalowany na twoim komputerze. +2. **Środowisko wirtualne** (opcjonalne, ale zalecane), aby utrzymać zależności w porządku. +3. Dostęp do **pip**, aby zainstalować pakiet `aspose-barcode`. +4. Uprawnienia do zapisu w folderze, w którym zostanie zapisany wygenerowany PNG. + +Jeśli któreś z powyższych jest Ci nieznane, zatrzymaj się tutaj i skonfiguruj je — gdy będą gotowe, reszta będzie bułką z masłem. + +--- + +## Krok 1: Zainstaluj Aspose.Barcode dla Pythona + +Pierwszą przeszkodą jest pobranie biblioteki. Aspose dystrybuuje swoje pakiety na PyPI, więc pojedyncze polecenie `pip` wystarczy: + +```bash +pip install aspose-barcode +``` + +> **Wskazówka:** Jeśli pracujesz w środowisku wirtualnym, zachowasz czystość globalnych site‑packages. Jeśli napotkasz błędy uprawnień, dodaj `--user` lub uruchom polecenie z `sudo` (choć to rzadko potrzebne w nowoczesnych konfiguracjach). + +Po zakończeniu instalacji możesz to zweryfikować za pomocą: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +Jeśli wersja zostanie wypisana bez skarg, wszystko gotowe. + +## Krok 2: Utwórz instancję **Extended Codetext Builder** + +Aspose.Barcode udostępnia klasę `ExtCodetextBuilder` do komponowania złożonych ładunków QR. Traktuj ją jak mały edytor tekstu, który wie, jak dodać odpowiednie znaki kontrolne dla każdego segmentu. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +Dlaczego używać buildera? Bezpośrednie łączenie surowych bajtów jest podatne na błędy; builder zapewnia prawidłowe przełączniki ECI (Extended Channel Interpretation), dzięki czemu skaner QR może poprawnie odczytać każdy język. + +## Krok 3: Rozpocznij od nowa (opcjonalnie, ale czysto) + +Jeśli ponownie używasz tej samej instancji buildera, wywołanie `clear()` usuwa wszystkie poprzednie dane. To zabezpieczenie zapobiega przedostawaniu się niechcianych segmentów do kolejnego kodu QR. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +Możesz pominąć tę linię przy pierwszym uruchomieniu skryptu, ale jej pozostawienie sprawia, że kod jest idempotentny — przydatne, gdy wbudowujesz tę logikę w funkcję, która może być wywoływana wielokrotnie. + +## Krok 4: Dodaj zwykły (niezakodowany) segment + +Większość kodów QR zaczyna się od prostego ciągu ASCII — może to być identyfikator lub URL. Metoda `add_plain_codetext` dodaje dokładnie to, bez żadnego znacznika ECI. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +W tym przykładzie używamy `"HelloWorld"` jako placeholdera. Zamień go na to, czego potrzebujesz — może to być SKU produktu lub krótkie wiadomość. + +## Krok 5: Dodaj segment **zakodowany ECI** (UTF‑8 = 26) + +Teraz część wielojęzyczna. Wartość ECI **26** odpowiada UTF‑8, de‑facto standardowi Unicode. Przekazując `26` razem z rosyjskim zwrotem, informujemy skaner QR, aby przełączył się na UTF‑8 przed odczytaniem kolejnych znaków. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +Możesz zamienić `26` na inne wartości ECI (np. `27` dla ISO‑8859‑1), jeśli potrzebujesz innego kodowania. Builder automatycznie wstawi odpowiednie znaki kontrolne. + +## Krok 6: Pobierz połączony rozszerzony ciąg kodowy + +Gdy wszystkie segmenty zostaną dodane, pobierz ostateczny ciąg, którego użyje generator QR. Ten ciąg zawiera niewidoczne sekwencje kontrolne, ale nadal możesz go wydrukować w celach debugowania. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +Wyjście w konsoli będzie wyglądać na zniekształcone (z powodu wbudowanych bajtów kontrolnych), co jest całkowicie normalne. Ważne, że builder poprawnie połączył części zwykłe i Unicode. + +## Krok 7: Skonfiguruj generator kodów kreskowych + +Teraz przekazujemy rozszerzony ciąg kodowy do `BarcodeGenerator` Aspose. Ustaw symbologię na `QR` i przypisz połączony ciąg do `code_text`. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +Możesz tutaj dostosować dodatkowe właściwości — takie jak `resolution`, `error_correction_level` czy `foreground_color`. Opcje te są opisane w dokumentacji Aspose, ale dla podstawowego obrazu domyślne ustawienia działają dobrze. + +## Krok 8: Zapisz wygenerowany obraz kodu QR + +Na koniec zapisz kod QR na dysku. Metoda `save` przyjmuje ścieżkę pliku i opcjonalny format; PNG jest bezpiecznym domyślnym wyborem. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +Otwórz powstały `qr_extended.png` w dowolnej przeglądarce obrazów. Zeskanowanie go smartfonem powinno wyświetlić dwie oddzielne wiadomości: „HelloWorld” i „Привет”. Większość nowoczesnych czytników QR automatycznie obsługuje przełączenie ECI. + +## Pełny działający przykład + +Łącząc wszystko razem, oto kompletny skrypt, który możesz skopiować i uruchomić: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**Oczekiwane wyjście** (konsola): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +Otwórz `qr_extended.png` → zeskanuj → zobaczysz „HelloWorld” a następnie „Привет”. + +## Częste pytania i przypadki brzegowe + +### 1. *Co zrobić, jeśli potrzebuję więcej niż dwóch segmentów?* + +Po prostu wywołaj `add_plain_codetext` lub `add_eci_codetext` dowolną liczbę razy. Builder zachowuje prawidłową kolejność, więc kod QR będzie zawierał każdy segment w kolejności, w której go dodasz. + +### 2. *Czy mogę osadzić emoji?* + +Tak — emoji to po prostu znaki Unicode. Użyj ECI UTF‑8 (wartość 26) i przekaż ciąg emoji, np. `builder.add_eci_codetext(26, "🚀")`. QR wyświetli emoji rakiety na obsługujących je skanerach. + +### 3. *Co zrobić, jeśli QR stanie się zbyt gęsty?* + +Kody QR mają ograniczenia wersji. Jeśli przekroczysz pojemność danych, Aspose automatycznie zwiększy wersję do kolejnego rozmiaru, ale obraz może stać się większy. Aby kontrolować rozmiar, możesz obniżyć poziom korekcji błędów: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *Czy muszę martwić się o zestawy znaków inne niż UTF‑8?* + +Tylko jeśli masz starsze systemy wymagające konkretnego kodowania (np. ISO‑8859‑1). W takim wypadku zamień `26` na odpowiednią wartość ECI (zobacz tabelę ECI Aspose). Dla większości nowoczesnych aplikacji UTF‑8 jest najbezpieczniejszy. + +### 5. *Jak dodać logo w centrum?* + +Aspose.Barcode obsługuje `barcode.generator.QRCodeParameters.logo_image`. Wczytaj obraz za pomocą Pillow (`from PIL import Image`) i przypisz go: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +Logo zostanie nałożone, zachowując możliwość skanowania (Aspose automatycznie dostosowuje strefy ciszy). + +## Profesjonalne wskazówki dla środowiska produkcyjnego + +- **Cache'uj builder** jeśli generujesz ten sam QR wielokrotnie; unika to ponownego budowania rozszerzonego ciągu przy każdym wywołaniu. +- **Waliduj wynik** przy pomocy testu jednostkowego, który dekoduje QR (np. używając `zxing` lub `pyzbar`), aby upewnić się, że przełączniki ECI są prawidłowe. +- **Ustaw deterministyczną nazwę pliku** (np. zawierającą hash ładunku), aby uniknąć nadpisywania istniejących obrazów. +- **Zwróć uwagę na licencjonowanie**: Aspose.Barcode jest oprogramowaniem komercyjnym. Darmowa wersja ewaluacyjna działa w środowisku deweloperskim, ale licencja jest wymagana przy wdrożeniu produkcyjnym. + +## Kolejne kroki i powiązane tematy + +Teraz, gdy wiesz **jak generować kod QR**, możesz zagłębić się w dalsze tematy. + +## Co powinieneś się nauczyć dalej? + +Poniższe poradniki obejmują ściśle powiązane tematy, które rozwijają techniki przedstawione w tym przewodniku. Każde źródło zawiera kompletne działające przykłady kodu z wyjaśnieniami krok po kroku, aby pomóc Ci opanować dodatkowe funkcje API i odkrywać alternatywne podejścia implementacyjne w własnych projektach. + +- [Jak wygenerować obraz kodu kreskowego w Javie przy użyciu Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [Jak wygenerować kod Aztec z niestandardowym współczynnikiem proporcji przy użyciu Aspose.BarCode dla .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Jak stworzyć rozszerzony ciąg kodowy dotcode przy użyciu Aspose.BarCode dla .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/portuguese/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/portuguese/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..fd947db7b --- /dev/null +++ b/barcode/portuguese/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,313 @@ +--- +category: general +date: 2026-07-15 +description: Como gerar imagem de código QR em Python usando Aspose.Barcode. Aprenda + passo a passo a criação de código QR com texto estendido, codificação ECI e suporte + a Unicode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: pt +lastmod: 2026-07-15 +og_description: Como gerar imagem de código QR em Python com Aspose.Barcode. Este + guia orienta você na criação de códigos QR usando texto de código estendido, codificação + ECI e caracteres Unicode. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Como gerar imagem de código QR em Python – Tutorial completo do Aspose.Barcode +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Como gerar imagem de código QR em Python com Aspose.Barcode – Guia completo +url: /pt/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como Gerar Imagem de Código QR em Python com Aspose.Barcode – Guia Completo + +Já se perguntou **como gerar imagem de código QR** em Python sem precisar vasculhar dezenas de bibliotecas? Você não está sozinho. Muitos desenvolvedores precisam de uma forma confiável de incorporar texto multilíngue — pense em russo, árabe ou emoji — dentro de um QR code, e as bibliotecas nativas frequentemente ficam aquém. + +A verdade é que o Aspose.Barcode para Python torna isso surpreendentemente simples. Neste tutorial vamos percorrer os passos exatos, desde a instalação do pacote até a criação de uma string de codetexto estendido que mistura ASCII puro com Unicode codificado em ECI. Ao final, você terá uma imagem de QR code pronta para uso gravada no disco. + +## O Que Este Guia Cobre + +- Instalação do **Aspose.Barcode** para Python (compatível com Python 3.8+) +- Construção de um **codetexto estendido** que combina segmentos plain e Unicode +- Uso da **codificação ECI** para renderizar corretamente caracteres russos +- Configuração do `BarcodeGenerator` para produzir um QR code +- Salvamento da imagem de saída em formato PNG +- Dicas, armadilhas comuns e ideias para próximos passos (como adicionar logos ou ajustar a correção de erro) + +Nenhuma experiência prévia com Aspose é necessária; basta uma configuração básica de Python e curiosidade sobre QR codes. + +--- + +## Pré‑requisitos + +Antes de mergulharmos, certifique‑se de que você tem: + +1. **Python 3.8 ou mais recente** instalado na sua máquina. +2. Um **ambiente virtual** (opcional, mas recomendado) para manter as dependências organizadas. +3. Acesso ao **pip** para instalar o pacote `aspose-barcode`. +4. Permissão de escrita em uma pasta onde o PNG gerado será salvo. + +Se algum desses itens lhe for desconhecido, pause aqui e configure‑os — quando estiverem prontos, o resto será simples como uma torta. + +--- + +## Etapa 1: Instalar Aspose.Barcode para Python + +O primeiro obstáculo é obter a biblioteca. Aspose distribui seus pacotes no PyPI, então um único comando `pip` resolve tudo: + +```bash +pip install aspose-barcode +``` + +> **Dica profissional:** Se você estiver dentro de um ambiente virtual, manterá seus site‑packages globais limpos. Se encontrar erros de permissão, adicione `--user` ou execute o comando com `sudo` (embora este último raramente seja necessário em configurações modernas). + +Após a instalação terminar, você pode verificá‑la com: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +Se a versão for exibida sem reclamações, está tudo pronto. + +--- + +## Etapa 2: Criar uma Instância do **Extended Codetext Builder** + +Aspose.Barcode fornece a classe `ExtCodetextBuilder` para compor cargas úteis de QR complexas. Pense nela como um pequeno editor de texto que sabe como prefixar os caracteres de controle corretos para cada segmento. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +Por que usar um builder? Concatenar bytes brutos diretamente é propenso a erros; o builder garante as trocas corretas de ECI (Extended Channel Interpretation), de modo que seu scanner de QR decode cada idioma corretamente. + +--- + +## Etapa 3: Começar do Zero (Opcional, mas Limpo) + +Se você reutilizar a mesma instância do builder, chamar `clear()` limpa quaisquer dados anteriores. É uma rede de segurança que impede que segmentos residuais vaze para o próximo QR. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +Você pode pular esta linha na primeira execução do script, mas mantê‑la torna o código idempotente — útil quando você incorpora essa lógica dentro de uma função que pode ser chamada repetidamente. + +--- + +## Etapa 4: Adicionar um Segmento Plain (Não Codificado) + +A maioria dos QR codes começa com uma simples string ASCII — talvez um identificador ou uma URL. O método `add_plain_codetext` adiciona exatamente isso, sem nenhum marcador ECI. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +Neste exemplo usamos `"HelloWorld"` como placeholder. Substitua‑o pelo que precisar — talvez um SKU de produto ou uma mensagem curta. + +--- + +## Etapa 5: Adicionar um Segmento **Codificado em ECI** (UTF‑8 = 26) + +Agora vem a parte multilíngue. O valor ECI **26** corresponde ao UTF‑8, o padrão de fato para Unicode. Ao passar `26` junto com uma frase em russo, informamos ao scanner de QR para mudar para UTF‑8 antes de ler os caracteres seguintes. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +Você pode trocar `26` por outros valores ECI (por exemplo, `27` para ISO‑8859‑1) se precisar de uma codificação diferente. O builder inserirá automaticamente os caracteres de controle adequados. + +--- + +## Etapa 6: Recuperar o Codetexto Estendido Combinado + +Depois que todos os segmentos forem adicionados, recupere a string final que o gerador de QR consumirá. Essa string contém sequências de controle invisíveis, mas ainda pode ser impressa para depuração. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +A saída no console aparecerá embaralhada (por causa dos bytes de controle embutidos), o que é perfeitamente normal. O importante é que o builder juntou as partes plain e Unicode corretamente. + +--- + +## Etapa 7: Configurar o Barcode Generator + +Agora entregamos o codetexto estendido ao `BarcodeGenerator` da Aspose. Defina a simbologia para `QR` e atribua a string combinada a `code_text`. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +Você pode ajustar propriedades adicionais aqui — como `resolution`, `error_correction_level` ou `foreground_color`. Essas opções estão cobertas na documentação da Aspose, mas para uma imagem básica os padrões funcionam bem. + +--- + +## Etapa 8: Salvar a Imagem do QR Code Gerada + +Por fim, grave o QR code no disco. O método `save` aceita um caminho de arquivo e um formato opcional; PNG é um padrão seguro. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +Abra o `qr_extended.png` resultante com qualquer visualizador de imagens. Escaneá‑lo com um smartphone deve revelar duas mensagens separadas: “HelloWorld” e “Привет”. A maioria dos leitores modernos de QR lida automaticamente com a troca de ECI. + +--- + +## Exemplo Completo em Funcionamento + +Juntando tudo, aqui está o script completo que você pode copiar‑colar e executar: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**Saída esperada** (console): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +Abra `qr_extended.png` → escaneie → você verá “HelloWorld” seguido de “Привет”. + +--- + +## Perguntas Frequentes & Casos de Borda + +### 1. *E se eu precisar de mais de dois segmentos?* +Basta chamar `add_plain_codetext` ou `add_eci_codetext` quantas vezes quiser. O builder mantém a ordem correta, então o QR code conterá cada segmento na sequência em que foram adicionados. + +### 2. *Posso incorporar emojis?* +Sim — emojis são apenas caracteres Unicode. Use o ECI UTF‑8 (valor 26) e passe a string do emoji, por exemplo `builder.add_eci_codetext(26, "🚀")`. O QR exibirá o emoji de foguete em scanners que o suportem. + +### 3. *E se o QR ficar muito denso?* +QR codes têm limites de versão. Se você ultrapassar a capacidade de dados, Aspose aumentará automaticamente a versão para o próximo tamanho, mas a imagem pode ficar maior. Para controlar o tamanho, você pode reduzir o nível de correção de erro: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *Preciso me preocupar com conjuntos de caracteres diferentes de UTF‑8?* +Só se você tiver sistemas legados que exijam uma codificação específica (por exemplo, ISO‑8859‑1). Nesse caso, substitua `26` pelo valor ECI apropriado (veja a tabela de ECI da Aspose). Para a maioria das aplicações modernas, UTF‑8 é a escolha mais segura. + +### 5. *Como adiciono um logo no centro?* +Aspose.Barcode suporta `barcode.generator.QRCodeParameters.logo_image`. Carregue uma imagem com Pillow (`from PIL import Image`) e atribua‑a: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +O logo será sobreposto preservando a escaneabilidade (Aspose ajusta automaticamente as zonas silenciosas). + +--- + +## Dicas Profissionais para Uso em Produção + +- **Cache o builder** se você gerar o mesmo QR repetidamente; isso evita reconstruir a string estendida a cada vez. +- **Valide a saída** com um teste unitário que decodifique o QR (por exemplo, usando `zxing` ou `pyzbar`) para garantir que as trocas de ECI estejam corretas. +- **Defina um nome de arquivo determinístico** (talvez incluindo um hash da carga) para evitar sobrescrever imagens existentes. +- **Fique atento à licença**: Aspose.Barcode é software comercial. A avaliação gratuita funciona para desenvolvimento, mas uma licença é necessária para implantação em produção. + +--- + +## Próximos Passos & Tópicos Relacionados + +Agora que você sabe **como gerar QR code** + + +## O Que Você Deve Aprender a Seguir? + + +Os tutoriais a seguir abordam tópicos intimamente relacionados que ampliam as técnicas demonstradas neste guia. Cada recurso inclui exemplos de código completos com explicações passo a passo para ajudá‑lo a dominar recursos adicionais da API e explorar abordagens alternativas em seus próprios projetos. + +- [How to Generate Barcode Image in Java with Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to create dotcode extended codetext with Aspose.BarCode for .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/russian/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/russian/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..387767e7a --- /dev/null +++ b/barcode/russian/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,312 @@ +--- +category: general +date: 2026-07-15 +description: Как генерировать изображение QR‑кода в Python с помощью Aspose.Barcode. + Узнайте пошаговое создание QR‑кода с расширенным кодовым текстом, кодированием ECI + и поддержкой Unicode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: ru +lastmod: 2026-07-15 +og_description: Как сгенерировать изображение QR‑кода в Python с помощью Aspose.Barcode. + Это руководство проведёт вас через процесс создания QR‑кодов с использованием расширенного + текста кода, кодировки ECI и символов Unicode. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Как сгенерировать изображение QR‑кода в Python – Полный учебник Aspose.Barcode +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Как сгенерировать изображение QR‑кода в Python с помощью Aspose.Barcode – полное + руководство +url: /ru/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как создать изображение QR‑кода в Python с помощью Aspose.Barcode – Полное руководство + +Вы когда‑нибудь задумывались **как создать изображение QR‑кода** в Python, не перебирая десятки библиотек? Вы не одиноки. Многие разработчики нуждаются в надёжном способе внедрять многоязычный текст — например русский, арабский или эмодзи — в QR‑код, а встроенные библиотеки часто не справляются. + +Дело в том, что Aspose.Barcode для Python делает это удивительно простым. В этом руководстве мы пройдём все шаги, от установки пакета до создания строки расширенного кода, которая сочетает обычный ASCII с Unicode, закодированным через ECI. К концу у вас будет готовое к использованию изображение QR‑кода, сохранённое на диске. + +## Что охватывает это руководство + +- Установка **Aspose.Barcode** для Python (совместимо с Python 3.8+) +- Создание **extended codetext**, объединяющего обычные и Unicode‑сегменты +- Использование **ECI encoding** для корректного отображения русских символов +- Настройка `BarcodeGenerator` для создания QR‑кода +- Сохранение полученного изображения в формате PNG +- Советы, распространённые подводные камни и идеи для дальнейших шагов (например, добавление логотипов или настройка уровня коррекции ошибок) + +Предыдущий опыт работы с Aspose не требуется; достаточно базовой настройки Python и интереса к QR‑кодам. + +--- + +## Prerequisites + +Before we dive in, make sure you have: + +1. **Python 3.8 or newer** installed on your machine. +2. A **virtual environment** (optional but recommended) to keep dependencies tidy. +3. **pip** access to install the `aspose-barcode` package. +4. Write permission to a folder where the generated PNG will be saved. + +Если что‑то из перечисленного вам незнакомо, сделайте паузу и настройте необходимое — как только всё будет готово, остальное будет проще простого. + +--- + +## Step 1: Install Aspose.Barcode for Python + +The first hurdle is getting the library. Aspose distributes its packages on PyPI, so a single `pip` command does the trick: + +```bash +pip install aspose-barcode +``` + +> **Pro tip:** If you’re inside a virtual environment, you’ll keep your global site‑packages clean. If you hit permission errors, prepend `--user` or run the command with `sudo` (though the latter is rarely needed on modern setups). + +After the install finishes, you can verify it with: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +If the version prints without complaint, you’re good to go. + +--- + +## Step 2: Create an **Extended Codetext Builder** Instance + +Aspose.Barcode provides the `ExtCodetextBuilder` class to compose complex QR payloads. Think of it as a tiny text editor that knows how to prepend the right control characters for each segment. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +Why use a builder? Directly concatenating raw bytes is error‑prone; the builder guarantees the correct ECI (Extended Channel Interpretation) switches, so your QR scanner can decode every language correctly. + +--- + +## Step 3: Start Fresh (Optional but Clean) + +If you ever reuse the same builder instance, calling `clear()` wipes any previous data. It’s a safety net that prevents stray segments from leaking into the next QR. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +You can skip this line the first time you run the script, but keeping it makes the code idempotent—useful when you embed this logic inside a function that might be called repeatedly. + +--- + +## Step 4: Add a Plain (Un‑encoded) Segment + +Most QR codes start with a simple ASCII string—perhaps an identifier or a URL. The `add_plain_codetext` method adds exactly that, without any ECI marker. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +In this example we use `"HelloWorld"` as a placeholder. Replace it with whatever you need—maybe a product SKU or a short message. + +--- + +## Step 5: Add an **ECI‑Encoded** Segment (UTF‑8 = 26) + +Now for the multilingual part. The ECI value **26** corresponds to UTF‑8, the de‑facto standard for Unicode. By passing `26` together with a Russian phrase, we tell the QR scanner to switch to UTF‑8 before reading the following characters. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +You can swap `26` for other ECI values (e.g., `27` for ISO‑8859‑1) if you need a different encoding. The builder will automatically insert the proper control characters. + +--- + +## Step 6: Retrieve the Combined Extended Codetext + +Once all segments are added, pull the final string that the QR generator will consume. This string contains invisible control sequences, but you can still print it for debugging. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +The console output will look garbled (because of embedded control bytes), which is perfectly normal. The important part is that the builder has stitched the plain and Unicode parts together correctly. + +--- + +## Step 7: Configure the Barcode Generator + +Now we hand the extended codetext to Aspose’s `BarcodeGenerator`. Set the symbology to `QR` and assign the combined string to `code_text`. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +You can tweak additional properties here—like `resolution`, `error_correction_level`, or `foreground_color`. Those options are covered in the Aspose docs, but for a basic image the defaults work well. + +--- + +## Step 8: Save the Generated QR Code Image + +Finally, write the QR code to disk. The `save` method accepts a file path and an optional format; PNG is a safe default. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +Open the resulting `qr_extended.png` with any image viewer. Scanning it with a smartphone should reveal two separate messages: “HelloWorld” and “Привет”. Most modern QR readers automatically handle the ECI switch. + +--- + +## Full Working Example + +Putting it all together, here’s the complete script you can copy‑paste and run: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**Expected output** (console): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +Open `qr_extended.png` → scan → you’ll see “HelloWorld” followed by “Привет”. + +--- + +## Common Questions & Edge Cases + +### 1. *What if I need more than two segments?* +Simply call `add_plain_codetext` or `add_eci_codetext` as many times as you like. The builder maintains the correct ordering, so the QR code will contain each segment in the sequence you add them. + +### 2. *Can I embed emojis?* +Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and pass the emoji string, e.g., `builder.add_eci_codetext(26, "🚀")`. The QR will display the rocket emoji on supporting scanners. + +### 3. *What if the QR becomes too dense?* +QR codes have version limits. If you exceed the data capacity, Aspose will automatically bump the version up to the next size, but the image might become larger. To control size, you can lower the error correction level: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *Do I need to worry about character sets other than UTF‑8?* +Only if you have legacy systems that require a specific encoding (e.g., ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + +### 5. *How do I add a logo in the center?* +Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. Load an image with Pillow (`from PIL import Image`) and assign it: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +The logo will be overlaid while preserving scannability (Aspose automatically adjusts quiet zones). + +--- + +## Pro Tips for Production Use + +- **Cache the builder** if you generate the same QR repeatedly; it avoids rebuilding the extended string each time. +- **Validate the output** with a unit test that decodes the QR (e.g., using `zxing` or `pyzbar`) to ensure your ECI switches are correct. +- **Set a deterministic file name** (maybe include a hash of the payload) to avoid overwriting existing images. +- **Mind the licensing**: Aspose.Barcode is commercial software. The free evaluation works for development, but a license is required for production deployment. + +--- + +## Next Steps & Related Topics + +Now that you know **how to generate QR code + +## What Should You Learn Next? + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [Как сгенерировать изображение штрих‑кода в Java с помощью Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [Как сгенерировать Aztec‑штрих‑код с пользовательским соотношением сторон, используя Aspose.BarCode для .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Как создать расширенный codetext для dotcode с помощью Aspose.BarCode для .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/spanish/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/spanish/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..ac0283cf0 --- /dev/null +++ b/barcode/spanish/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,311 @@ +--- +category: general +date: 2026-07-15 +description: Cómo generar una imagen de código QR en Python usando Aspose.Barcode. + Aprende paso a paso la creación de códigos QR con texto extendido, codificación + ECI y soporte Unicode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: es +lastmod: 2026-07-15 +og_description: Cómo generar una imagen de código QR en Python con Aspose.Barcode. + Esta guía le muestra cómo crear códigos QR usando texto de código extendido, codificación + ECI y caracteres Unicode. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Cómo generar una imagen de código QR en Python – Tutorial completo de Aspose.Barcode +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Cómo generar una imagen de código QR en Python con Aspose.Barcode – Guía completa +url: /es/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo generar una imagen de código QR en Python con Aspose.Barcode – Guía completa + +¿Alguna vez te has preguntado **cómo generar una imagen de código QR** en Python sin buscar entre docenas de bibliotecas? No estás solo. Muchos desarrolladores necesitan una forma fiable de incrustar texto multilingüe —piensa en ruso, árabe o emojis— dentro de un código QR, y las bibliotecas integradas a menudo se quedan cortas. + +Aquí está la clave: Aspose.Barcode para Python hace esto sorprendentemente sencillo. En este tutorial recorreremos los pasos exactos, desde la instalación del paquete hasta la creación de una cadena de codetext extendido que mezcla ASCII plano con Unicode codificado en ECI. Al final tendrás una imagen de código QR lista para usar guardada en disco. + +## Qué cubre esta guía + +- Instalación de **Aspose.Barcode** para Python (compatible con Python 3.8+) +- Construcción de un **codetext extendido** que combina segmentos planos y Unicode +- Uso de **codificación ECI** para renderizar correctamente caracteres rusos +- Configuración del `BarcodeGenerator` para producir un código QR +- Guardado de la imagen resultante en formato PNG +- Consejos, errores comunes y ideas para los siguientes pasos (como añadir logotipos o ajustar la corrección de errores) + +No se requiere experiencia previa con Aspose; solo una configuración básica de Python y curiosidad por los códigos QR. + +--- + +## Requisitos previos + +Antes de profundizar, asegúrate de tener: + +1. **Python 3.8 o superior** instalado en tu máquina. +2. Un **entorno virtual** (opcional pero recomendado) para mantener ordenadas las dependencias. +3. Acceso a **pip** para instalar el paquete `aspose-barcode`. +4. Permiso de escritura en una carpeta donde se guardará el PNG generado. + +Si alguno de estos puntos te resulta desconocido, detente aquí y configúralo; una vez listo, el resto será pan comido. + +--- + +## Paso 1: Instalar Aspose.Barcode para Python + +El primer obstáculo es obtener la biblioteca. Aspose distribuye sus paquetes en PyPI, así que un solo comando `pip` hace el trabajo: + +```bash +pip install aspose-barcode +``` + +> **Consejo profesional:** Si estás dentro de un entorno virtual, mantendrás limpios los paquetes globales. Si encuentras errores de permiso, antepone `--user` o ejecuta el comando con `sudo` (aunque esto rara vez es necesario en configuraciones modernas). + +Después de que la instalación termine, puedes verificarlo con: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +Si la versión se imprime sin quejas, estás listo para continuar. + +--- + +## Paso 2: Crear una instancia del **Extended Codetext Builder** + +Aspose.Barcode proporciona la clase `ExtCodetextBuilder` para componer cargas útiles QR complejas. Piensa en ella como un pequeño editor de texto que sabe cómo anteponer los caracteres de control correctos para cada segmento. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +¿Por qué usar un builder? Concatenar bytes crudos directamente es propenso a errores; el builder garantiza los cambios correctos de ECI (Extended Channel Interpretation), de modo que tu escáner QR pueda decodificar cada idioma correctamente. + +--- + +## Paso 3: Empezar de nuevo (Opcional pero limpio) + +Si alguna vez reutilizas la misma instancia del builder, llamar a `clear()` elimina cualquier dato previo. Es una red de seguridad que evita que segmentos residuales se filtren al siguiente QR. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +Puedes omitir esta línea la primera vez que ejecutes el script, pero mantenerla hace que el código sea idempotente—útil cuando incrustas esta lógica dentro de una función que podría llamarse repetidamente. + +--- + +## Paso 4: Añadir un segmento plano (no codificado) + +La mayoría de los códigos QR comienzan con una cadena ASCII simple—quizá un identificador o una URL. El método `add_plain_codetext` agrega exactamente eso, sin ningún marcador ECI. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +En este ejemplo usamos `"HelloWorld"` como marcador de posición. Reemplázalo por lo que necesites—tal vez un SKU de producto o un mensaje corto. + +--- + +## Paso 5: Añadir un segmento **ECI‑codificado** (UTF‑8 = 26) + +Ahora viene la parte multilingüe. El valor ECI **26** corresponde a UTF‑8, el estándar de facto para Unicode. Al pasar `26` junto con una frase en ruso, indicamos al escáner QR que cambie a UTF‑8 antes de leer los caracteres siguientes. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +Puedes cambiar `26` por otros valores ECI (por ejemplo, `27` para ISO‑8859‑1) si necesitas una codificación distinta. El builder insertará automáticamente los caracteres de control adecuados. + +--- + +## Paso 6: Recuperar el Codetext Extendido combinado + +Una vez añadidos todos los segmentos, extrae la cadena final que consumirá el generador de QR. Esta cadena contiene secuencias de control invisibles, pero aún puedes imprimirla para depuración. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +La salida en consola se verá desordenada (debido a los bytes de control incrustados), lo cual es perfectamente normal. Lo importante es que el builder ha unido correctamente las partes planas y Unicode. + +--- + +## Paso 7: Configurar el Generador de Código de Barras + +Ahora entregamos el codetext extendido al `BarcodeGenerator` de Aspose. Establece la simbología a `QR` y asigna la cadena combinada a `code_text`. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +Puedes ajustar propiedades adicionales aquí—como `resolution`, `error_correction_level` o `foreground_color`. esas opciones están cubiertas en la documentación de Aspose, pero para una imagen básica los valores predeterminados funcionan bien. + +--- + +## Paso 8: Guardar la Imagen del Código QR Generado + +Finalmente, escribe el código QR en disco. El método `save` acepta una ruta de archivo y un formato opcional; PNG es una opción segura por defecto. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +Abre el `qr_extended.png` resultante con cualquier visor de imágenes. Escanearlo con un smartphone debería revelar dos mensajes separados: “HelloWorld” y “Привет”. La mayoría de los lectores QR modernos manejan automáticamente el cambio ECI. + +--- + +## Ejemplo completo de trabajo + +Juntándolo todo, aquí tienes el script completo que puedes copiar‑pegar y ejecutar: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**Salida esperada** (consola): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +Abre `qr_extended.png` → escanea → verás “HelloWorld” seguido de “Привет”. + +--- + +## Preguntas frecuentes y casos límite + +### 1. *¿Qué pasa si necesito más de dos segmentos?* +Simplemente llama a `add_plain_codetext` o `add_eci_codetext` tantas veces como desees. El builder mantiene el orden correcto, por lo que el código QR contendrá cada segmento en la secuencia en que lo agregues. + +### 2. *¿Puedo incrustar emojis?* +Sí—los emojis son solo caracteres Unicode. Usa el ECI UTF‑8 (valor 26) y pasa la cadena del emoji, por ejemplo `builder.add_eci_codetext(26, "🚀")`. El QR mostrará el emoji cohete en los escáneres que lo soporten. + +### 3. *¿Qué pasa si el QR se vuelve demasiado denso?* +Los códigos QR tienen límites de versión. Si superas la capacidad de datos, Aspose aumentará automáticamente la versión al siguiente tamaño, pero la imagen podría volverse mayor. Para controlar el tamaño, puedes reducir el nivel de corrección de errores: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *¿Debo preocuparme por juegos de caracteres distintos a UTF‑8?* +Solo si tienes sistemas heredados que requieran una codificación específica (por ejemplo, ISO‑8859‑1). En ese caso, reemplaza `26` por el valor ECI apropiado (consulta la tabla ECI de Aspose). Para la mayoría de las aplicaciones modernas, UTF‑8 es la opción más segura. + +### 5. *¿Cómo añado un logo en el centro?* +Aspose.Barcode soporta `barcode.generator.QRCodeParameters.logo_image`. Carga una imagen con Pillow (`from PIL import Image`) y asígnala: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +El logo se superpondrá manteniendo la escaneabilidad (Aspose ajusta automáticamente las zonas silenciosas). + +--- + +## Consejos profesionales para uso en producción + +- **Cachea el builder** si generas el mismo QR repetidamente; evita reconstruir la cadena extendida cada vez. +- **Valida la salida** con una prueba unitaria que decodifique el QR (por ejemplo, usando `zxing` o `pyzbar`) para asegurar que los cambios ECI sean correctos. +- **Establece un nombre de archivo determinista** (quizá incluya un hash de la carga) para evitar sobrescribir imágenes existentes. +- **Ten en cuenta la licencia**: Aspose.Barcode es software comercial. La evaluación gratuita funciona para desarrollo, pero se requiere una licencia para despliegue en producción. + +--- + +## Próximos pasos y temas relacionados + +Ahora que sabes **cómo generar código QR + +## ¿Qué deberías aprender a continuación? + +Los siguientes tutoriales cubren temas estrechamente relacionados que amplían las técnicas demostradas en esta guía. Cada recurso incluye ejemplos de código completos con explicaciones paso a paso para ayudarte a dominar funciones adicionales de la API y explorar enfoques de implementación alternativos en tus propios proyectos. + +- [Cómo generar una imagen de código de barras en Java con Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [Cómo generar un código de barras Aztec con relación de aspecto personalizada usando Aspose.BarCode para .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Cómo crear un codetext extendido de dotcode con Aspose.BarCode para .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/swedish/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/swedish/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..189074130 --- /dev/null +++ b/barcode/swedish/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,309 @@ +--- +category: general +date: 2026-07-15 +description: Hur man genererar QR‑kodbild i Python med Aspose.Barcode. Lär dig steg‑för‑steg + QR‑kodskapande med utökad kodtext, ECI‑kodning och Unicode‑stöd. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: sv +lastmod: 2026-07-15 +og_description: Hur man genererar QR‑kodbild i Python med Aspose.Barcode. Denna guide + visar dig hur du skapar QR‑koder med utökad kodtext, ECI‑kodning och Unicode‑tecken. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Hur man genererar QR‑kodbild i Python – Aspose.Barcode komplett handledning +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Hur man genererar QR‑kodbild i Python med Aspose.Barcode – Fullständig guide +url: /sv/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man genererar QR‑kod bild i Python med Aspose.Barcode – Fullständig guide + +Har du någonsin funderat **hur man genererar QR‑kod bild** i Python utan att leta igenom dussintals bibliotek? Du är inte ensam. Många utvecklare behöver ett pålitligt sätt att bädda in flerspråkig text—tänk ryska, arabiska eller emoji—i en QR‑kod, och de inbyggda biblioteken räcker ofta inte. + +Poängen är den här: Aspose.Barcode för Python gör detta förvånansvärt enkelt. I den här tutorialen går vi igenom exakt vilka steg som krävs, från installation av paketet till att skapa en utökad kodtextsträng som blandar vanlig ASCII med ECI‑kodad Unicode. När du är klar har du en färdig QR‑kod bild sparad på disk. + +## Vad den här guiden täcker + +- Installation av **Aspose.Barcode** för Python (kompatibel med Python 3.8+) +- Bygga en **utökad kodtext** som kombinerar vanliga och Unicode‑segment +- Använda **ECI‑kodning** för att korrekt rendera ryska tecken +- Konfigurera `BarcodeGenerator` för att producera en QR‑kod +- Spara utdata‑bilden i PNG‑format +- Tips, vanliga fallgropar och nästa steg‑idéer (t.ex. lägga till logotyper eller justera felkorrigering) + +Ingen förkunskap om Aspose krävs; bara en grundläggande Python‑miljö och ett intresse för QR‑koder. + +--- + +## Förutsättningar + +Innan vi dyker ner, se till att du har: + +1. **Python 3.8 eller nyare** installerat på din maskin. +2. En **virtuell miljö** (valfritt men rekommenderat) för att hålla beroenden organiserade. +3. **pip**‑åtkomst för att installera paketet `aspose-barcode`. +4. Skrivrättigheter till en mapp där den genererade PNG‑filen ska sparas. + +Om någon av dessa punkter känns obekant, pausa här och sätt upp dem—när de är på plats är resten en barnlek. + +--- + +## Steg 1: Installera Aspose.Barcode för Python + +Det första hindret är att få tag på biblioteket. Aspose distribuerar sina paket på PyPI, så ett enda `pip`‑kommando räcker: + +```bash +pip install aspose-barcode +``` + +> **Pro tip:** Om du befinner dig i en virtuell miljö håller du dina globala site‑packages rena. Om du får behörighetsfel, lägg till `--user` eller kör kommandot med `sudo` (även om det senare sällan behövs på moderna system). + +När installationen är klar kan du verifiera den med: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +Om versionen skrivs ut utan klagomål är du redo att köra vidare. + +--- + +## Steg 2: Skapa en **Extended Codetext Builder**‑instans + +Aspose.Barcode tillhandahåller klassen `ExtCodetextBuilder` för att komponera komplexa QR‑payloads. Tänk på den som en liten textredigerare som vet hur man lägger till rätt kontrolltecken för varje segment. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +Varför använda en builder? Att direkt concatenera råa bytes är felbenäget; buildern garanterar korrekta ECI‑byten (Extended Channel Interpretation), så att din QR‑läsare kan avkoda varje språk korrekt. + +--- + +## Steg 3: Börja på nytt (valfritt men rent) + +Om du någonsin återanvänder samma builder‑instans, rensar `clear()` eventuella tidigare data. Det är ett skyddsnät som förhindrar att gamla segment läcker in i nästa QR‑kod. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +Du kan hoppa över den här raden första gången du kör skriptet, men att behålla den gör koden idempotent—användbart när du bäddar in logiken i en funktion som kan anropas flera gånger. + +--- + +## Steg 4: Lägg till ett vanligt (o‑kodad) segment + +De flesta QR‑koder börjar med en enkel ASCII‑sträng—kanske en identifierare eller en URL. Metoden `add_plain_codetext` lägger till just det, utan någon ECI‑markör. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +I detta exempel använder vi `"HelloWorld"` som platshållare. Byt ut den mot vad du än behöver—kanske en produkt‑SKU eller ett kort meddelande. + +--- + +## Steg 5: Lägg till ett **ECI‑kodad** segment (UTF‑8 = 26) + +Nu kommer den flerspråkiga delen. ECI‑värdet **26** motsvarar UTF‑8, den de‑facto standarden för Unicode. Genom att skicka `26` tillsammans med en rysk fras talar vi om för QR‑läsaren att byta till UTF‑8 innan de följande tecknen läses. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +Du kan byta `26` mot andra ECI‑värden (t.ex. `27` för ISO‑8859‑1) om du behöver en annan kodning. Buildern lägger automatiskt in rätt kontrolltecken. + +--- + +## Steg 6: Hämta den kombinerade utökade kodtexten + +När alla segment har lagts till, hämta den slutgiltiga strängen som QR‑generatorn kommer att konsumera. Strängen innehåller osynliga kontrollsekvenser, men du kan ändå skriva ut den för felsökning. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +Konsolutskriften kommer att se förvrängd ut (på grund av inbäddade kontroll‑bytes), vilket är helt normalt. Det viktiga är att buildern har sammanfogat de vanliga och Unicode‑delarna korrekt. + +--- + +## Steg 7: Konfigurera Barcode‑generatorn + +Nu överlämnar vi den utökade kodtexten till Asposes `BarcodeGenerator`. Ställ in symbologin till `QR` och tilldela den kombinerade strängen till `code_text`. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +Här kan du justera ytterligare egenskaper—såsom `resolution`, `error_correction_level` eller `foreground_color`. Dessa alternativ finns dokumenterade i Aspose‑dokumentationen, men för en grundläggande bild fungerar standardvärdena bra. + +--- + +## Steg 8: Spara den genererade QR‑kod bilden + +Till sist skriver vi QR‑koden till disk. Metoden `save` tar emot en filsökväg och ett valfritt format; PNG är ett säkert standardval. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +Öppna den resulterande `qr_extended.png` med valfri bildvisare. Skannar du den med en smartphone bör du se två separata meddelanden: “HelloWorld” och “Привет”. De flesta moderna QR‑läsare hanterar automatiskt ECI‑bytet. + +--- + +## Fullt fungerande exempel + +Sätter vi ihop allt får vi följande kompletta skript som du kan kopiera och köra: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**Förväntad konsolutskrift**: + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +Öppna `qr_extended.png` → skanna → du ser “HelloWorld” följt av “Привет”. + +--- + +## Vanliga frågor & kantfall + +### 1. *Vad händer om jag behöver fler än två segment?* +Anropa helt enkelt `add_plain_codetext` eller `add_eci_codetext` så många gånger du vill. Buildern behåller rätt ordning, så QR‑koden innehåller varje segment i den sekvens du lagt till dem. + +### 2. *Kan jag bädda in emojis?* +Ja—emojis är bara Unicode‑tecken. Använd UTF‑8‑ECI (värde 26) och skicka emoji‑strängen, t.ex. `builder.add_eci_codetext(26, "🚀")`. QR‑koden visar raket‑emojin på läsare som stödjer den. + +### 3. *Vad om QR‑koden blir för tät?* +QR‑koder har versionsgränser. Om du överskrider datakapaciteten höjer Aspose automatiskt versionen till nästa storlek, men bilden kan bli större. För att kontrollera storleken kan du sänka felkorrigeringsnivån: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *Måste jag bry mig om andra teckenuppsättningar än UTF‑8?* +Endast om du har äldre system som kräver en specifik kodning (t.ex. ISO‑8859‑1). I så fall ersätter du `26` med rätt ECI‑värde (se Asposes ECI‑tabell). För de flesta moderna applikationer är UTF‑8 det säkraste valet. + +### 5. *Hur lägger jag till en logotyp i mitten?* +Aspose.Barcode stödjer `barcode.generator.QRCodeParameters.logo_image`. Ladda en bild med Pillow (`from PIL import Image`) och tilldela den: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +Logotypen läggs över QR‑koden samtidigt som läsbarheten bevaras (Aspose justerar automatiskt tysta zoner). + +--- + +## Proffstips för produktionsanvändning + +- **Cacha buildern** om du genererar samma QR‑kod upprepade gånger; det undviker att bygga om den utökade strängen varje gång. +- **Validera utdata** med ett enhetstest som avkodar QR‑koden (t.ex. med `zxing` eller `pyzbar`) för att säkerställa att dina ECI‑byten är korrekta. +- **Ange ett deterministiskt filnamn** (kanske med en hash av payloaden) för att undvika att befintliga bilder skrivs över. +- **Tänk på licensen**: Aspose.Barcode är kommersiell mjukvara. Den fria utvärderingen fungerar för utveckling, men en licens krävs för produktionssättning. + +--- + +## Nästa steg & relaterade ämnen + +Nu när du vet **hur man genererar QR‑kod**… + +## Vad bör du lära dig härnäst? + +Följande tutorials behandlar närliggande ämnen som bygger vidare på teknikerna i den här guiden. Varje resurs innehåller kompletta kodexempel med steg‑för‑steg‑förklaringar för att hjälpa dig bemästra ytterligare API‑funktioner och utforska alternativa implementationssätt i egna projekt. + +- [Hur man genererar streckkodbild i Java med Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [Hur man genererar Aztec‑streckkod med anpassat bildförhållande med Aspose.BarCode för .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Hur man skapar dotcode med utökad kodtext med Aspose.BarCode för .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/thai/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/thai/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..d63f7856f --- /dev/null +++ b/barcode/thai/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,311 @@ +--- +category: general +date: 2026-07-15 +description: วิธีสร้างภาพ QR code ด้วย Python โดยใช้ Aspose.Barcode. เรียนรู้ขั้นตอนการสร้าง + QR code อย่างละเอียดพร้อม codetext ขยาย, การเข้ารหัส ECI, และการสนับสนุน Unicode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: th +lastmod: 2026-07-15 +og_description: วิธีสร้างภาพ QR code ด้วย Python และ Aspose.Barcode คู่มือนี้จะพาคุณผ่านการสร้าง + QR code ด้วย codetext ที่ขยาย การเข้ารหัส ECI และอักขระ Unicode +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: วิธีสร้างภาพ QR Code ด้วย Python – บทเรียนเต็มของ Aspose.Barcode +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: วิธีสร้างภาพ QR Code ใน Python ด้วย Aspose.Barcode – คู่มือเต็ม +url: /th/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีสร้างภาพ QR Code ใน Python ด้วย Aspose.Barcode – คู่มือเต็ม + +เคยสงสัย **วิธีสร้างภาพ QR code** ใน Python โดยไม่ต้องค้นหาหลายสิบไลบรารีหรือไม่? คุณไม่ได้เป็นคนเดียว นักพัฒนาจำนวนมากต้องการวิธีที่เชื่อถือได้ในการฝังข้อความหลายภาษา—เช่น รัสเซีย, อาหรับ หรืออีโมจิ—ภายใน QR code และไลบรารีที่มาพร้อมกับระบบมักไม่เพียงพอ + +เรื่องนี้คือ: Aspose.Barcode สำหรับ Python ทำให้การทำงานนี้ง่ายมาก ในบทแนะนำนี้เราจะเดินผ่านขั้นตอนทั้งหมด ตั้งแต่การติดตั้งแพคเกจจนถึงการสร้างสตริง codetext ที่ขยายซึ่งผสมระหว่าง ASCII ธรรมดากับ Unicode ที่เข้ารหัสด้วย ECI. เมื่อเสร็จคุณจะมีภาพ QR code ที่พร้อมใช้งานบนดิสก์ + +## สิ่งที่คู่มือนี้ครอบคลุม + +- การติดตั้ง **Aspose.Barcode** สำหรับ Python (รองรับ Python 3.8+) +- การสร้าง **extended codetext** ที่รวมส่วน plain และ Unicode +- การใช้ **ECI encoding** เพื่อแสดงอักษรรัสเซียอย่างถูกต้อง +- การกำหนดค่า `BarcodeGenerator` เพื่อสร้าง QR code +- การบันทึกภาพผลลัพธ์ในรูปแบบ PNG +- เคล็ดลับ, ปัญหาที่พบบ่อย, และแนวคิดต่อไป (เช่น การเพิ่มโลโก้หรือปรับระดับการแก้ไขข้อผิดพลาด) + +ไม่จำเป็นต้องมีประสบการณ์กับ Aspose มาก่อน; เพียงแค่มีการตั้งค่า Python พื้นฐานและความสนใจใน QR code + +--- + +## ข้อกำหนดเบื้องต้น + +ก่อนที่เราจะดำเนินการต่อ, โปรดตรวจสอบว่าคุณมี: + +1. **Python 3.8 หรือใหม่กว่า** ติดตั้งบนเครื่องของคุณ +2. **virtual environment** (ไม่บังคับแต่แนะนำ) เพื่อให้การจัดการ dependencies เป็นระเบียบ +3. การเข้าถึง **pip** เพื่อทำการติดตั้งแพคเกจ `aspose-barcode` +4. สิทธิ์การเขียนในโฟลเดอร์ที่ภาพ PNG ที่สร้างจะถูกบันทึก + +หากส่วนใดส่วนหนึ่งยังไม่คุ้นเคย, ให้หยุดที่นี่และตั้งค่าให้เรียบร้อย—เมื่อพร้อมแล้ว การทำงานต่อจะง่ายเหมือนเค้ก + +--- + +## ขั้นตอนที่ 1: ติดตั้ง Aspose.Barcode สำหรับ Python + +อุปสรรคแรกคือการรับไลบรารี Aspose แจกจ่ายแพคเกจบน PyPI, ดังนั้นคำสั่ง `pip` เพียงคำสั่งเดียวก็ทำได้: + +```bash +pip install aspose-barcode +``` + +> **เคล็ดลับ:** หากคุณทำงานใน virtual environment, จะทำให้ site‑packages ของระบบหลักสะอาด หากเจอข้อผิดพลาดเรื่องสิทธิ์, ให้เพิ่ม `--user` หรือรันคำสั่งด้วย `sudo` (แม้ว่าจะไม่ค่อยจำเป็นในสภาพแวดล้อมสมัยใหม่) + +หลังการติดตั้งเสร็จ, คุณสามารถตรวจสอบได้ด้วย: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +หากเวอร์ชันแสดงโดยไม่มีข้อผิดพลาด, คุณพร้อมแล้ว + +--- + +## ขั้นตอนที่ 2: สร้างอินสแตนซ์ **Extended Codetext Builder** + +Aspose.Barcode มีคลาส `ExtCodetextBuilder` สำหรับประกอบ payload QR ที่ซับซ้อน คิดว่าเป็นเครื่องมือแก้ไขข้อความขนาดเล็กที่รู้วิธีใส่ตัวอักษรควบคุมที่ถูกต้องสำหรับแต่ละส่วน + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +ทำไมต้องใช้ builder? การต่อ byte แบบตรง ๆ มีโอกาสทำผิดพลาดสูง; builder จะรับประกันการสลับ ECI (Extended Channel Interpretation) ที่ถูกต้อง, ทำให้ QR scanner ของคุณสามารถถอดรหัสทุกภาษาได้อย่างแม่นยำ + +--- + +## ขั้นตอนที่ 3: เริ่มใหม่ (ไม่บังคับแต่ทำให้สะอาด) + +หากคุณใช้ builder เดิมซ้ำ, การเรียก `clear()` จะลบข้อมูลเก่าทั้งหมด เป็นการป้องกันไม่ให้ส่วนที่เหลืออยู่รั่วไหลเข้าสู่ QR ถัดไป + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +คุณสามารถข้ามบรรทัดนี้ในการรันสคริปต์ครั้งแรก, แต่การใส่ไว้ทำให้โค้ดเป็น idempotent—มีประโยชน์เมื่อฝังตรรกะนี้ในฟังก์ชันที่อาจถูกเรียกหลายครั้ง + +--- + +## ขั้นตอนที่ 4: เพิ่มส่วน Plain (Un‑encoded) + + QR ส่วนใหญ่เริ่มด้วยสตริง ASCII ธรรมดา—อาจเป็นตัวระบุหรือ URL เมธอด `add_plain_codetext` จะเพิ่มข้อความนั้นโดยไม่มีเครื่องหมาย ECI + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +ในตัวอย่างนี้เราใช้ `"HelloWorld"` เป็นตัวแทน เปลี่ยนเป็นข้อความที่คุณต้องการ—เช่น SKU ของสินค้า หรือข้อความสั้น ๆ + +--- + +## ขั้นตอนที่ 5: เพิ่มส่วน **ECI‑Encoded** (UTF‑8 = 26) + +ต่อไปคือส่วนหลายภาษา ค่า ECI **26** สอดคล้องกับ UTF‑8, มาตรฐานที่ใช้กันทั่วไปสำหรับ Unicode โดยการส่งค่า `26` พร้อมกับวลีรัสเซีย เราบอก QR scanner ให้สลับเป็น UTF‑8 ก่อนอ่านอักขระต่อไป + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +คุณสามารถเปลี่ยน `26` เป็นค่า ECI อื่น (เช่น `27` สำหรับ ISO‑8859‑1) หากต้องการการเข้ารหัสที่แตกต่าง Builder จะใส่ตัวอักษรควบคุมที่เหมาะสมโดยอัตโนมัติ + +--- + +## ขั้นตอนที่ 6: ดึง Extended Codetext ที่รวมกันแล้ว + +เมื่อเพิ่มส่วนทั้งหมดแล้ว, ดึงสตริงสุดท้ายที่ตัวสร้าง QR จะใช้ สตริงนี้มีลำดับอักขระควบคุมที่มองไม่เห็น, แต่คุณยังสามารถพิมพ์ออกมาสำหรับดีบักได้ + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +ผลลัพธ์บนคอนโซลจะดูเป็นอักขระผสม (เพราะมี byte ควบคุมฝังอยู่), ซึ่งเป็นเรื่องปกติ ส่วนสำคัญคือ builder ได้เชื่อมต่อส่วน plain และ Unicode อย่างถูกต้อง + +--- + +## ขั้นตอนที่ 7: กำหนดค่า Barcode Generator + +ต่อไปเราจะส่ง extended codetext ให้กับ `BarcodeGenerator` ของ Aspose ตั้งค่า symbology เป็น `QR` และกำหนดสตริงที่รวมแล้วให้กับ `code_text` + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +คุณสามารถปรับคุณสมบัติเพิ่มเติมได้ที่นี่—เช่น `resolution`, `error_correction_level`, หรือ `foreground_color`. ตัวเลือกเหล่านี้อธิบายในเอกสาร Aspose, แต่สำหรับภาพพื้นฐานค่าเริ่มต้นทำงานได้ดี + +--- + +## ขั้นตอนที่ 8: บันทึกภาพ QR Code ที่สร้างขึ้น + +สุดท้าย, เขียน QR code ลงดิสก์ เมธอด `save` รับพาธไฟล์และรูปแบบที่เลือก; PNG เป็นค่าเริ่มต้นที่ปลอดภัย + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +เปิดไฟล์ `qr_extended.png` ด้วยโปรแกรมดูภาพใด ๆ การสแกนด้วยสมาร์ทโฟนควรแสดงข้อความสองส่วน: “HelloWorld” และ “Привет”. QR reader สมัยใหม่ส่วนใหญ่จะจัดการการสลับ ECI อัตโนมัติ + +--- + +## ตัวอย่างทำงานเต็มรูปแบบ + +รวมทั้งหมดเข้าด้วยกัน, นี่คือสคริปต์สมบูรณ์ที่คุณสามารถคัดลอก‑วางและรันได้: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**ผลลัพธ์ที่คาดหวัง** (คอนโซล): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +เปิด `qr_extended.png` → สแกน → คุณจะเห็น “HelloWorld” ตามด้วย “Привет”. + +--- + +## คำถามทั่วไป & กรณีขอบ + +### 1. *ถ้าต้องการมากกว่าสองส่วนล่ะ?* +เพียงเรียก `add_plain_codetext` หรือ `add_eci_codetext` ตามจำนวนที่ต้องการ Builder จะรักษาลำดับที่ถูกต้อง, ดังนั้น QR code จะบรรจุแต่ละส่วนตามที่คุณเพิ่ม + +### 2. *สามารถฝังอีโมจิได้ไหม?* +ได้—อีโมจิเป็นอักขระ Unicode เพียงใช้ ECI UTF‑8 (ค่า 26) และส่งสตริงอีโมจิ, เช่น `builder.add_eci_codetext(26, "🚀")`. QR จะแสดงอีโมจิจรวดบนเครื่องสแกนที่รองรับ + +### 3. *ถ้า QR หนาเกินไปล่ะ?* +QR มีขีดจำกัดเวอร์ชัน หากข้อมูลเกินความจุ, Aspose จะเพิ่มเวอร์ชันอัตโนมัติ แต่ภาพอาจใหญ่ขึ้น เพื่อลดขนาดคุณสามารถลดระดับ error correction: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *ต้องกังวลเรื่องชุดอักขระอื่นนอกจาก UTF‑8 หรือไม่?* +เฉพาะเมื่อระบบเก่าต้องการการเข้ารหัสเฉพาะ (เช่น ISO‑8859‑1) เท่านั้น ในกรณีนั้นให้เปลี่ยน `26` เป็นค่า ECI ที่เหมาะสม (ดูตาราง ECI ของ Aspose). สำหรับแอปสมัยใหม่ UTF‑8 เป็นตัวเลือกที่ปลอดภัยที่สุด + +### 5. *จะเพิ่มโลโก้ตรงกลางอย่างไร?* +Aspose.Barcode รองรับ `barcode.generator.QRCodeParameters.logo_image`. โหลดภาพด้วย Pillow (`from PIL import Image`) แล้วกำหนดค่า: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +โลโก้จะถูกวางทับโดยยังคงสแกนได้ (Aspose ปรับ quiet zone ให้โดยอัตโนมัติ) + +--- + +## เคล็ดลับระดับมืออาชีพสำหรับการใช้งานใน Production + +- **Cache builder** หากคุณสร้าง QR เดียวกันหลายครั้ง; จะช่วยลดการสร้างสตริง extended ทุกครั้ง +- **ตรวจสอบผลลัพธ์** ด้วย unit test ที่ถอดรหัส QR (เช่นใช้ `zxing` หรือ `pyzbar`) เพื่อให้แน่ใจว่าการสลับ ECI ถูกต้อง +- **ตั้งชื่อไฟล์อย่างกำหนด** (อาจรวม hash ของ payload) เพื่อหลีกเลี่ยงการเขียนทับไฟล์ที่มีอยู่ +- **ใส่ใจเรื่องลิขสิทธิ์**: Aspose.Barcode เป็นซอฟต์แวร์เชิงพาณิชย์ รุ่นทดลองฟรีใช้สำหรับพัฒนา, แต่ต้องมีลิขสิทธิ์สำหรับการใช้งานใน production + +--- + +## ขั้นตอนต่อไป & หัวข้อที่เกี่ยวข้อง + +ตอนนี้คุณรู้แล้วว่า **วิธีสร้าง QR code** + + +## คุณควรเรียนรู้อะไรต่อไป? + + +บทแนะนำต่อไปนี้ครอบคลุมหัวข้อที่เกี่ยวข้องอย่างใกล้ชิดและต่อยอดจากเทคนิคที่แสดงในคู่มือนี้ แต่ละแหล่งรวมโค้ดทำงานเต็มรูปแบบพร้อมคำอธิบายทีละขั้นตอนเพื่อช่วยคุณเชี่ยวชาญฟีเจอร์ API เพิ่มเติมและสำรวจวิธีการทำงานทางเลือกในโปรเจคของคุณ + +- [How to Generate Barcode Image in Java with Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to create dotcode extended codetext with Aspose.BarCode for .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/turkish/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/turkish/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..4634c0db6 --- /dev/null +++ b/barcode/turkish/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,282 @@ +--- +category: general +date: 2026-07-15 +description: Aspose.Barcode kullanarak Python’da QR kod resmi nasıl oluşturulur. Genişletilmiş + kod metni, ECI kodlaması ve Unicode desteğiyle adım adım QR kod oluşturmayı öğrenin. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: tr +lastmod: 2026-07-15 +og_description: Python'da Aspose.Barcode ile QR kod görüntüsü nasıl oluşturulur. Bu + rehber, genişletilmiş kod metni, ECI kodlaması ve Unicode karakterleri kullanarak + QR kodları oluşturmanızı adım adım gösterir. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Python'da QR Kod Görüntüsü Nasıl Oluşturulur – Aspose.Barcode Tam Kılavuz +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Aspose.Barcode ile Python’da QR Kod Görüntüsü Nasıl Oluşturulur – Tam Rehber +url: /tr/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Python'da Aspose.Barcode ile QR Kod Görüntüsü Nasıl Oluşturulur – Tam Kılavuz + +Python'da **QR kod görüntüsü nasıl oluşturulur** diye merak ettiniz mi, kütüphaneler arasında dolaşmadan? Tek başınıza değilsiniz. Birçok geliştirici, çok dilli metni—örneğin Rusça, Arapça veya emoji—bir QR kodun içine yerleştirmenin güvenilir bir yoluna ihtiyaç duyuyor ve yerleşik kütüphaneler genellikle yetersiz kalıyor. + +İşte asıl konu: Aspose.Barcode for Python bu süreci şaşırtıcı derecede sorunsuz hâle getiriyor. Bu öğreticide paketi kurmaktan, düz ASCII ile ECI‑kodlu Unicode’u karıştıran genişletilmiş bir kod metni dizesi oluşturmaya kadar tam adımları göstereceğiz. Sonunda, diskte hazır bekleyen bir QR kod görüntünüz olacak. + +## Bu Kılavuzda Neler Ele Alınıyor + +- Python için **Aspose.Barcode** kurulumu (Python 3.8+ ile uyumlu) +- Düz ve Unicode bölümlerini birleştiren **genişletilmiş kod metni** oluşturma +- Rusça karakterlerin doğru görüntülenmesi için **ECI kodlaması** kullanma +- QR kod üretmek için `BarcodeGenerator` yapılandırması +- Çıktı görüntüsünün PNG formatında kaydedilmesi +- İpuçları, yaygın hatalar ve sonraki adım fikirleri (logo ekleme veya hata düzeltme seviyesini ayarlama gibi) + +Aspose ile daha önce çalışmış olmanıza gerek yok; sadece temel bir Python ortamı ve QR kodlara merakınız yeterli. + +--- + +## Ön Koşullar + +Başlamadan önce şunların kurulu olduğundan emin olun: + +1. **Python 3.8 veya daha yeni** bir sürüm. +2. **Sanal ortam** (isteğe bağlı ama önerilir) bağımlılıkları düzenli tutmak için. +3. `aspose-barcode` paketini kurmak için **pip** erişimi. +4. Oluşturulan PNG dosyasının kaydedileceği klasöre yazma izni. + +Bu maddeler size yabancı geliyorsa, burada durun ve ortamı hazırlayın—her şey hazır olduğunda geri dönün, geri kalan çok kolay. + +## Adım 1: Aspose.Barcode for Python'ı Kurun + +İlk engel kütüphaneyi edinmek. Aspose paketlerini PyPI üzerinden dağıtıyor, bu yüzden tek bir `pip` komutu yeterli: + +```bash +pip install aspose-barcode +``` + +> **Pro ipucu:** Sanal ortam içindeyseniz, global site‑paketlerinizi temiz tutarsınız. İzin hataları alırsanız, komuta `--user` ekleyin veya `sudo` ile çalıştırın (modern kurulumlarda nadiren gerekir). + +Kurulum tamamlandıktan sonra şu komutla doğrulayabilirsiniz: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +Sürüm hatasız bir şekilde çıktığında, hazırsınız demektir. + +## Adım 2: **Extended Codetext Builder** Örneği Oluşturun + +Aspose.Barcode, karmaşık QR yükleri oluşturmak için `ExtCodetextBuilder` sınıfını sunar. Her segment için doğru kontrol karakterlerini eklemeyi bilen küçük bir metin editörü gibi düşünebilirsiniz. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +Neden bir builder kullanmalı? Ham baytları doğrudan birleştirmek hataya açıktır; builder doğru ECI (Extended Channel Interpretation) geçişlerini ekler, böylece QR tarayıcınız her dili sorunsuz çözer. + +## Adım 3: Yeni Başlayın (İsteğe Bağlı ama Temiz) + +Aynı builder örneğini tekrar kullanıyorsanız, `clear()` çağrısı önceki verileri siler. Bu, bir sonraki QR kodda istenmeyen segmentlerin kalmasını önleyen bir güvenlik ağdır. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +İlk çalıştırmada bu satırı atlayabilirsiniz, ancak kodun idempotent (tekrarlanabilir) olmasını sağlamak için bırakmak faydalıdır—özellikle bu mantığı bir fonksiyon içinde tekrar tekrar çağırıyorsanız. + +## Adım 4: Düz (Kodlanmamış) Bir Segment Ekleyin + +Çoğu QR kod, basit bir ASCII dizesiyle başlar—örneğin bir kimlik ya da URL. `add_plain_codetext` metodu, herhangi bir ECI işareti eklemeden tam da bunu ekler. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +Bu örnekte `"HelloWorld"` yer tutucu olarak kullanıldı. İhtiyacınıza göre değiştirin—örneğin bir ürün SKU'su ya da kısa bir mesaj. + +## Adım 5: **ECI‑Kodlu** Bir Segment Ekleyin (UTF‑8 = 26) + +Şimdi çok dilli kısmı ekleyelim. ECI değeri **26**, UTF‑8’e karşılık gelir ve Unicode için de‑faktöre standarttır. `26` ve bir Rusça ifade vererek, QR tarayıcısına bu karakterleri UTF‑8 ile okuması talimatını veriyoruz. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +Farklı bir kodlama gerekiyorsa `26` yerine başka bir ECI değeri (ör. ISO‑8859‑1 için `27`) kullanabilirsiniz. Builder otomatik olarak doğru kontrol karakterlerini ekleyecektir. + +## Adım 6: Birleştirilmiş Genişletilmiş Kod Metnini Alın + +Tüm segmentler eklendikten sonra, QR üreticisinin tüketeceği son dizeyi alın. Bu dize görünmez kontrol sekansları içerir, ancak hata ayıklama için yine de yazdırabilirsiniz. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +Konsol çıktısı karışık görünecektir (gömülü kontrol baytları nedeniyle), bu tamamen normal. Önemli olan, builder’ın düz ve Unicode bölümlerini doğru bir şekilde birleştirmiş olmasıdır. + +## Adım 7: Barcode Generator'ı Yapılandırın + +Şimdi genişletilmiş kod metnini Aspose’un `BarcodeGenerator`ına veriyoruz. Sembololojiyi `QR` olarak ayarlayın ve birleşik dizeyi `code_text` özelliğine atayın. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +Burada `resolution`, `error_correction_level` veya `foreground_color` gibi ek özellikleri de ayarlayabilirsiniz. Bu seçenekler Aspose dokümantasyonunda açıklanmıştır; temel bir görüntü için varsayılanlar yeterli olur. + +## Adım 8: Oluşturulan QR Kod Görüntüsünü Kaydedin + +Son olarak QR kodu diske yazdırın. `save` metodu bir dosya yolu ve isteğe bağlı format alır; PNG güvenli bir varsayılandır. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +Oluşan `qr_extended.png` dosyasını herhangi bir görüntüleyicide açın. Akıllı telefonla taradığınızda iki ayrı mesaj görmelisiniz: “HelloWorld” ve “Привет”. Modern QR okuyucular ECI geçişini otomatik olarak işler. + +## Tam Çalışan Örnek + +Hepsini bir araya getirdiğimizde, kopyalayıp çalıştırabileceğiniz tam betik aşağıdadır: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**Beklenen çıktı** (konsol): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +`qr_extended.png` dosyasını aç → tarat → “HelloWorld” ardından “Привет” göreceksiniz. + +## Yaygın Sorular & Kenar Durumları + +### 1. *Daha fazla segment eklemem gerekirse?* +`add_plain_codetext` veya `add_eci_codetext` metodlarını istediğiniz kadar çağırabilirsiniz. Builder doğru sıralamayı korur, böylece QR kodunuz eklediğiniz sırayla tüm segmentleri içerir. + +### 2. *Emoji ekleyebilir miyim?* +Evet—emoji sadece Unicode karakterdir. UTF‑8 ECI (değer 26) kullanıp emoji dizesini verin, örn. `builder.add_eci_codetext(26, "🚀")`. QR, destekleyen tarayıcılarda roket emojisini gösterir. + +### 3. *QR çok yoğun olursa ne olur?* +QR kodların sürüm limitleri vardır. Veri kapasitesini aşarsanız, Aspose otomatik olarak bir sonraki sürüme geçer, ancak görüntü daha büyük olur. Boyutu kontrol etmek için hata düzeltme seviyesini düşürebilirsiniz: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *UTF‑8 dışındaki karakter setleriyle uğraşmam gerekir mi?* +Sadece eski sistemler belirli bir kodlama (ör. ISO‑8859‑1) talep ediyorsa gerekir. Bu durumda `26` yerine uygun ECI değerini (Aspose’un ECI tablosuna bakın) kullanın. Çoğu modern uygulama için UTF‑8 en güvenli seçimdir. + +### 5. *Ortada bir logo eklemek istiyorum, nasıl?* +Aspose.Barcode `barcode.generator.QRCodeParameters.logo_image` özelliğini destekler. Pillow (`from PIL import Image`) ile bir resim yükleyip atayın: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +Logo, taranabilirliği koruyarak üzerine bindirilir (Aspose sessiz bölgeleri otomatik ayarlar). + +## Üretim İçin Pro İpuçları + +- **Builder'ı önbelleğe alın**; aynı QR'ı sık sık üretiyorsanız, her seferinde genişletilmiş dizeyi yeniden oluşturmak yerine önceden hazırlanmışı kullanın. +- **Çıktıyı doğrulayın**; bir birim testiyle QR'ı `zxing` veya `pyzbar` gibi bir kütüphane ile çözerek ECI geçişlerinin doğru olduğundan emin olun. +- **Deterministik dosya adı** belirleyin (örneğin, yükün hash'ini ekleyerek) mevcut görsellerin üzerine yazılmasını önleyin. +- **Lisanslamayı unutmayın**: Aspose.Barcode ticari bir yazılımdır. Ücretsiz değerlendirme geliştirme için yeterlidir, ancak üretim ortamında bir lisans gerekir. + +## Sonraki Adımlar & İlgili Konular + +Şimdi **QR kod nasıl oluşturulur** sorusunun cevabını bildiğinize göre, aşağıdaki öğreticilerle ilgili konuları keşfedebilirsiniz. Her kaynak, tam çalışan kod örnekleri ve adım‑adım açıklamalar içerir; böylece API özelliklerini daha da pekiştirir ve alternatif uygulama yaklaşımlarını projelerinizde deneyebilirsiniz. + +- [How to Generate Barcode Image in Java with Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to create dotcode extended codetext with Aspose.BarCode for .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/vietnamese/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md b/barcode/vietnamese/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md new file mode 100644 index 000000000..0b098ea1d --- /dev/null +++ b/barcode/vietnamese/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/_index.md @@ -0,0 +1,315 @@ +--- +category: general +date: 2026-07-15 +description: Cách tạo hình ảnh mã QR trong Python bằng Aspose.Barcode. Tìm hiểu quy + trình tạo mã QR từng bước với codetext mở rộng, mã hóa ECI và hỗ trợ Unicode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to generate qr code image +- Aspose.Barcode QR +- Python barcode generation +- extended codetext builder +- ECI encoding in QR +- QR code with Unicode +language: vi +lastmod: 2026-07-15 +og_description: Cách tạo hình ảnh mã QR trong Python với Aspose.Barcode. Hướng dẫn + này sẽ chỉ cho bạn cách tạo mã QR bằng cách sử dụng codetext mở rộng, mã hóa ECI + và ký tự Unicode. +og_image_alt: Python script generating a QR code image with extended codetext via + Aspose.Barcode +og_title: Cách tạo hình ảnh QR Code trong Python – Hướng dẫn đầy đủ Aspose.Barcode +schemas: +- author: Aspose + dateModified: '2026-07-15' + description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + headline: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + type: TechArticle +- description: How to generate QR code image in Python using Aspose.Barcode. Learn + step‑by‑step QR code creation with extended codetext, ECI encoding, and Unicode + support. + name: How to Generate QR Code Image in Python with Aspose.Barcode – Full Guide + steps: + - name: 1. *What if I need more than two segments?* + text: Simply call `add_plain_codetext` or `add_eci_codetext` as many times as + you like. The builder maintains the correct ordering, so the QR code will contain + each segment in the sequence you add them. + - name: 2. *Can I embed emojis?* + text: "Yes—emojis are just Unicode characters. Use the UTF‑8 ECI (value 26) and + pass the emoji string, e.g., `builder.add_eci_codetext(26, \"\U0001F680\")`. + The QR will display the rocket emoji on supporting scanners." + - name: 3. *What if the QR becomes too dense?* + text: 'QR codes have version limits. If you exceed the data capacity, Aspose will + automatically bump the version up to the next size, but the image might become + larger. To control size, you can lower the error correction level:' + - name: 4. *Do I need to worry about character sets other than UTF‑8?* + text: Only if you have legacy systems that require a specific encoding (e.g., + ISO‑8859‑1). In that case, replace `26` with the appropriate ECI value (see + Aspose’s ECI table). For most modern apps, UTF‑8 is the safest bet. + - name: 5. *How do I add a logo in the center?* + text: 'Aspose.Barcode supports `barcode.generator.QRCodeParameters.logo_image`. + Load an image with Pillow (`from PIL import Image`) and assign it:' + type: HowTo +tags: +- QR code +- Python +- Aspose +title: Cách tạo hình ảnh mã QR trong Python với Aspose.Barcode – Hướng dẫn đầy đủ +url: /vi/python/general/how-to-generate-qr-code-image-in-python-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách Tạo Hình Ảnh QR Code trong Python với Aspose.Barcode – Hướng Dẫn Đầy Đủ + +Bạn đã bao giờ tự hỏi **cách tạo hình ảnh QR code** trong Python mà không phải tìm kiếm qua hàng chục thư viện chưa? Bạn không phải là người duy nhất. Nhiều nhà phát triển cần một cách đáng tin cậy để nhúng văn bản đa ngôn ngữ—như tiếng Nga, tiếng Ả Rập, hoặc biểu tượng cảm xúc—trong một QR code, và các thư viện có sẵn thường không đáp ứng được. + +Thực tế là: Aspose.Barcode cho Python làm cho việc này trở nên vô cùng dễ dàng. Trong hướng dẫn này chúng ta sẽ đi qua các bước cụ thể, từ cài đặt gói đến tạo một chuỗi codetext mở rộng kết hợp ASCII thuần với Unicode được mã hoá bằng ECI. Khi kết thúc, bạn sẽ có một hình ảnh QR code sẵn sàng sử dụng lưu trên đĩa. + +## Nội Dung Hướng Dẫn Này + +- Cài đặt **Aspose.Barcode** cho Python (tương thích với Python 3.8+) +- Xây dựng **extended codetext** kết hợp các đoạn plain và Unicode +- Sử dụng **ECI encoding** để hiển thị đúng ký tự tiếng Nga +- Cấu hình `BarcodeGenerator` để tạo QR code +- Lưu hình ảnh đầu ra ở định dạng PNG +- Mẹo, các lỗi thường gặp, và ý tưởng bước tiếp theo (như thêm logo hoặc điều chỉnh mức sửa lỗi) + +Bạn không cần kinh nghiệm trước với Aspose; chỉ cần một môi trường Python cơ bản và sự tò mò về QR code. + +--- + +## Yêu Cầu Trước + +Trước khi bắt đầu, hãy chắc chắn rằng bạn có: + +1. **Python 3.8 hoặc mới hơn** đã được cài đặt trên máy của bạn. +2. Một **virtual environment** (tùy chọn nhưng được khuyến nghị) để quản lý các phụ thuộc gọn gàng. +3. Quyền truy cập **pip** để cài đặt gói `aspose-barcode`. +4. Quyền ghi vào một thư mục nơi PNG được tạo sẽ được lưu. + +Nếu bất kỳ mục nào trên còn lạ, hãy tạm dừng và thiết lập chúng—khi đã sẵn sàng, phần còn lại sẽ rất dễ dàng. + +--- + +## Bước 1: Cài Đặt Aspose.Barcode cho Python + +Rào cản đầu tiên là lấy được thư viện. Aspose phân phối các gói của mình trên PyPI, vì vậy một lệnh `pip` duy nhất là đủ: + +```bash +pip install aspose-barcode +``` + +> **Mẹo:** Nếu bạn đang làm việc trong một virtual environment, bạn sẽ giữ sạch các site‑packages toàn cục. Nếu gặp lỗi quyền, hãy thêm `--user` vào trước lệnh hoặc chạy lệnh với `sudo` (mặc dù thường không cần trên các thiết lập hiện đại). + +Sau khi cài đặt hoàn tất, bạn có thể kiểm tra bằng: + +```python +import aspose.barcode as barcode +print(barcode.__version__) # Should print something like 23.12.0 +``` + +Nếu phiên bản được in ra mà không có lỗi, bạn đã sẵn sàng. + +--- + +## Bước 2: Tạo Một Instance của **Extended Codetext Builder** + +Aspose.Barcode cung cấp lớp `ExtCodetextBuilder` để tạo các payload QR phức tạp. Hãy nghĩ nó như một trình soạn thảo văn bản nhỏ biết cách chèn các ký tự điều khiển phù hợp cho mỗi đoạn. + +```python +# Step 2: Initialise the builder +builder = barcode.generation.ExtCodetextBuilder() +``` + +Tại sao phải dùng builder? Việc nối trực tiếp các byte thô dễ gây lỗi; builder đảm bảo các chuyển đổi ECI (Extended Channel Interpretation) đúng, vì vậy máy quét QR của bạn có thể giải mã mọi ngôn ngữ một cách chính xác. + +--- + +## Bước 3: Bắt Đầu Mới (Tùy Chọn nhưng Gọn Gàng) + +Nếu bạn tái sử dụng cùng một instance của builder, gọi `clear()` sẽ xóa mọi dữ liệu trước đó. Đây là một lớp bảo vệ ngăn các đoạn thừa rò rỉ vào QR tiếp theo. + +```python +# Step 3: Ensure the builder is empty +builder.clear() +``` + +Bạn có thể bỏ qua dòng này lần đầu chạy script, nhưng giữ lại sẽ làm cho mã trở nên idempotent—hữu ích khi bạn nhúng logic này vào một hàm có thể được gọi nhiều lần. + +--- + +## Bước 4: Thêm Đoạn Plain (Không Mã Hoá) + +Hầu hết QR code bắt đầu bằng một chuỗi ASCII đơn giản—có thể là một định danh hoặc URL. Phương thức `add_plain_codetext` thêm chính đoạn đó, mà không có bất kỳ dấu hiệu ECI nào. + +```python +# Step 4: Add plain ASCII text +builder.add_plain_codetext("HelloWorld") +``` + +Trong ví dụ này chúng ta dùng `"HelloWorld"` làm chỗ giữ. Thay thế nó bằng bất kỳ gì bạn cần—có thể là SKU sản phẩm hoặc một tin nhắn ngắn. + +--- + +## Bước 5: Thêm Đoạn **ECI‑Encoded** (UTF‑8 = 26) + +Bây giờ là phần đa ngôn ngữ. Giá trị ECI **26** tương ứng với UTF‑8, chuẩn de‑facto cho Unicode. Bằng cách truyền `26` cùng với một câu tiếng Nga, chúng ta báo cho máy quét QR chuyển sang UTF‑8 trước khi đọc các ký tự tiếp theo. + +```python +# Step 5: Append a Russian phrase using UTF‑8 ECI (value 26) +builder.add_eci_codetext(26, "Привет") # "Privet" means "Hello" in Russian +``` + +Bạn có thể thay `26` bằng các giá trị ECI khác (ví dụ, `27` cho ISO‑8859‑1) nếu cần mã hoá khác. Builder sẽ tự động chèn các ký tự điều khiển phù hợp. + +--- + +## Bước 6: Lấy Extended Codetext Đã Kết Hợp + +Khi tất cả các đoạn đã được thêm, lấy chuỗi cuối cùng mà trình tạo QR sẽ sử dụng. Chuỗi này chứa các chuỗi điều khiển ẩn, nhưng bạn vẫn có thể in ra để gỡ lỗi. + +```python +# Step 6: Get the full extended codetext +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) +``` + +Đầu ra console sẽ trông rối rắm (do các byte điều khiển nhúng), điều này hoàn toàn bình thường. Điều quan trọng là builder đã ghép đúng phần plain và Unicode lại với nhau. + +--- + +## Bước 7: Cấu Hình Barcode Generator + +Bây giờ chúng ta truyền extended codetext cho `BarcodeGenerator` của Aspose. Đặt symbology thành `QR` và gán chuỗi đã kết hợp cho `code_text`. + +```python +# Step 7: Initialise the QR code generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR # Choose QR symbology +generator.code_text = extended_codetext # Use the extended codetext +``` + +Bạn có thể điều chỉnh các thuộc tính bổ sung ở đây—như `resolution`, `error_correction_level`, hoặc `foreground_color`. Những tùy chọn này được mô tả trong tài liệu Aspose, nhưng đối với hình ảnh cơ bản, các giá trị mặc định hoạt động tốt. + +--- + +## Bước 8: Lưu Hình Ảnh QR Code Đã Tạo + +Cuối cùng, ghi QR code ra đĩa. Phương thức `save` nhận một đường dẫn file và tùy chọn định dạng; PNG là mặc định an toàn. + +```python +# Step 8: Persist the QR code as a PNG file +output_path = "qr_extended.png" # Adjust path as needed +generator.save(output_path) +print(f"QR code saved to {output_path}") +``` + +Mở file `qr_extended.png` vừa tạo bằng bất kỳ trình xem ảnh nào. Quét nó bằng điện thoại thông minh sẽ hiển thị hai thông điệp riêng biệt: “HelloWorld” và “Привет”. Hầu hết các trình đọc QR hiện đại tự động xử lý chuyển đổi ECI. + +--- + +## Ví Dụ Hoàn Chỉnh Hoạt Động + +Kết hợp tất cả lại, đây là script hoàn chỉnh bạn có thể sao chép và chạy: + +```python +import aspose.barcode as barcode + +# Initialise the extended codetext builder +builder = barcode.generation.ExtCodetextBuilder() +builder.clear() # Ensure a clean start +builder.add_plain_codetext("HelloWorld") # Plain ASCII segment +builder.add_eci_codetext(26, "Привет") # Russian UTF‑8 segment +extended_codetext = builder.get_extended_codetext() +print("Extended codetext:", extended_codetext) + +# Configure the QR generator +generator = barcode.generation.BarcodeGenerator() +generator.symbology = barcode.Symbology.QR +generator.code_text = extended_codetext + +# Save the image +output_file = "qr_extended.png" +generator.save(output_file) +print(f"QR code image saved as {output_file}") +``` + +**Kết quả mong đợi** (console): + +``` +Extended codetext: # appears garbled due to ECI markers +QR code image saved as qr_extended.png +``` + +Mở `qr_extended.png` → quét → bạn sẽ thấy “HelloWorld” tiếp theo là “Привет”. + +--- + +## Câu Hỏi Thường Gặp & Trường Hợp Cạnh + +### 1. *Nếu tôi cần hơn hai đoạn?* + +Chỉ cần gọi `add_plain_codetext` hoặc `add_eci_codetext` bao nhiêu lần tùy thích. Builder duy trì thứ tự đúng, vì vậy QR code sẽ chứa mỗi đoạn theo thứ tự bạn thêm. + +### 2. *Tôi có thể nhúng emoji không?* + +Có—emoji chỉ là các ký tự Unicode. Sử dụng ECI UTF‑8 (giá trị 26) và truyền chuỗi emoji, ví dụ `builder.add_eci_codetext(26, "🚀")`. QR sẽ hiển thị biểu tượng tên lửa trên các máy quét hỗ trợ. + +### 3. *Nếu QR code trở nên quá dày?* + +QR code có giới hạn phiên bản. Nếu bạn vượt quá dung lượng dữ liệu, Aspose sẽ tự động nâng phiên bản lên kích thước tiếp theo, nhưng hình ảnh có thể lớn hơn. Để kiểm soát kích thước, bạn có thể giảm mức sửa lỗi: + +```python +generator.parameters.qr.error_correction_level = barcode.QRErrorCorrectionLevel.L +``` + +### 4. *Tôi có cần lo lắng về bộ ký tự khác ngoài UTF‑8 không?* + +Chỉ khi bạn có hệ thống cũ yêu cầu một mã hoá cụ thể (ví dụ, ISO‑8859‑1). Trong trường hợp đó, thay `26` bằng giá trị ECI phù hợp (xem bảng ECI của Aspose). Đối với hầu hết các ứng dụng hiện đại, UTF‑8 là lựa chọn an toàn nhất. + +### 5. *Làm sao để thêm logo ở trung tâm?* + +Aspose.Barcode hỗ trợ `barcode.generator.QRCodeParameters.logo_image`. Tải một hình ảnh bằng Pillow (`from PIL import Image`) và gán nó: + +```python +from PIL import Image +logo = Image.open("logo.png") +generator.parameters.qr.logo_image = logo +``` + +Logo sẽ được chồng lên trong khi vẫn giữ khả năng quét (Aspose tự động điều chỉnh vùng yên tĩnh). + +--- + +## Mẹo Chuyên Nghiệp cho Sản Xuất + +- **Cache builder** nếu bạn tạo QR giống nhau nhiều lần; nó tránh việc xây dựng lại chuỗi mở rộng mỗi lần. +- **Xác thực đầu ra** bằng một unit test giải mã QR (ví dụ, dùng `zxing` hoặc `pyzbar`) để đảm bảo các chuyển đổi ECI của bạn đúng. +- **Đặt tên file có tính quyết định** (có thể bao gồm hash của payload) để tránh ghi đè lên các hình ảnh hiện có. +- **Lưu ý giấy phép**: Aspose.Barcode là phần mềm thương mại. Bản dùng thử miễn phí phù hợp cho phát triển, nhưng cần giấy phép cho triển khai sản xuất. + +--- + +## Các Bước Tiếp Theo & Chủ Đề Liên Quan + +Bây giờ bạn đã biết **cách tạo QR code + +## Bạn Nên Học Gì Tiếp Theo? + +Các hướng dẫn sau đây bao quát các chủ đề liên quan chặt chẽ, xây dựng trên các kỹ thuật được trình bày trong hướng dẫn này. Mỗi tài nguyên bao gồm các ví dụ mã hoàn chỉnh với giải thích từng bước để giúp bạn nắm vững các tính năng API bổ sung và khám phá các cách triển khai thay thế trong dự án của mình. + +- [Cách Tạo Hình Ảnh Barcode trong Java với Aspose.BarCode](/barcode/english/java/barcode-rendering-techniques/) +- [Cách tạo mã vạch Aztec với tỷ lệ khung tùy chỉnh bằng Aspose.BarCode cho .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Cách tạo dotcode extended codetext với Aspose.BarCode cho .NET](/barcode/english/net/dotcode-barcode-configuration/dotcode-extended-code-text-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file