बारकोड रेंडरिंग

बारकोड रेंडरिंग

बारकोड रेंडरिंग

Aspose.BarCode FOSS for Python एन्कोडिंग को रेंडरिंग से अलग करता है। एक बारकोड को EncodedSymbol में एन्कोड करने के बाद, एक Renderer कार्यान्वयन मॉड्यूल मैट्रिक्स को दृश्य आउटपुट में बदलता है। लाइब्रेरी में SvgRenderer और PngRenderer शामिल हैं।


RenderOptions

RenderOptions सभी रेंडरर्स के दृश्य आउटपुट को नियंत्रित करता है। इसे किसी भी Barcode ऑब्जेक्ट पर to_svg() या to_png() को पास करें:

import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions

bc = barcode.code128("Hello World")
svg = bc.to_svg(options=RenderOptions(
    scale=2.0,
    foreground_color="#003366",
    quiet_zone=10.0,
    show_text=True,
))
गुणप्रकारविवरण
scalefloatपूरे बारकोड के लिए समान स्केल गुणक
dpiintPNG आउटपुट के लिए रिज़ॉल्यूशन (SVG पर कोई प्रभाव नहीं पड़ता)
module_widthfloatउपयोगकर्ता इकाइयों में एक बारकोड मॉड्यूल की चौड़ाई
module_heightfloatउपयोगकर्ता इकाइयों में एक बारकोड मॉड्यूल की ऊँचाई
quiet_zonefloatबारकोड के चारों ओर व्हाइटस्पेस पैडिंग
foreground_colorstrबार और मॉड्यूल्स के लिए Hex रंग (जैसे, "#000000")
background_colorstrपृष्ठभूमि के लिए Hex रंग
transparent_backgroundboolPNG आउटपुट के लिए पारदर्शी पृष्ठभूमि
show_textboolबारकोड के नीचे मानव-पठनीय पाठ दिखाएँ
font_familystrमानव-पठनीय पाठ के लिए फ़ॉन्ट
font_sizefloatमानव-पठनीय पाठ के लिए फ़ॉन्ट आकार

ResolvedRenderOptions

ResolvedRenderOptions OptionsResolver.resolve() द्वारा निर्मित पूर्ण रूप से मर्ज्ड कॉन्फ़िगरेशन है। यह उपयोगकर्ता-प्रदान किए गए RenderOptions को SymbologyProfile डिफ़ॉल्ट्स के साथ मिलाता है। सभी प्रॉपर्टीज़ के पास ठोस मान होते हैं (कोई None नहीं)।

Barcode.default_render_options प्रॉपर्टी में जनरेशन समय पर पास किया गया RenderOptions रहता है (या यदि प्रदान नहीं किया गया हो तो None)।


SVG आउटपुट

SvgRenderer SVG आउटपुट उत्पन्न करता है। to_svg() को एक Barcode ऑब्जेक्ट पर कॉल करें:

bc = barcode.ean13("590123412345")
svg_string = bc.to_svg()

# With custom options
svg_custom = bc.to_svg(options=RenderOptions(
    scale=3.0,
    foreground_color="#1a1a1a",
    show_text=True,
    font_family="Helvetica",
    font_size=12.0,
))

with open("ean13.svg", "w") as f:
    f.write(svg_custom)

to_svg() एक str लौटाता है जिसमें पूरा SVG दस्तावेज़ होता है।


PNG आउटपुट

PngRenderer PNG आउटपुट उत्पन्न करता है। to_png() को एक Barcode ऑब्जेक्ट पर कॉल करें:

bc = barcode.qr("https://example.com")
png_bytes = bc.to_png()

# With custom options
png_custom = bc.to_png(options=RenderOptions(
    scale=4.0,
    dpi=300,
    transparent_background=True,
))

with open("qr.png", "wb") as f:
    f.write(png_custom)

to_png() bytes लौटाता है जिसमें PNG इमेज डेटा होता है।


रेंडरर एब्स्ट्रैक्शन

Renderer एब्स्ट्रैक्ट बेस क्लास सभी रेंडरर्स के लिए इंटरफ़ेस निर्धारित करता है:

class Renderer(ABC):
    def render(self, symbol, layout, options) -> RenderedArtifact: ...

SvgRenderer और PngRenderer दोनों इस इंटरफ़ेस को लागू करते हैं। आप Barcode.render(renderer, options) को कॉल करके सीधे एक विशिष्ट रेंडरर का उपयोग कर सकते हैं:

from aspose_barcode_foss import SvgRenderer, RenderOptions

bc = barcode.code128("DATA")
artifact = bc.render(SvgRenderer(), RenderOptions(scale=2.0))
print(artifact.media_type)  # "image/svg+xml"
print(type(artifact.data))  # <class 'str'>

RenderedArtifact

Renderer.render() द्वारा लौटाए गए RenderedArtifact में शामिल है:

गुणप्रकारविवरण
data`strbytes`
media_typestrMIME प्रकार ("image/svg+xml" या "image/png")
backendstrरेंडरर पहचानकर्ता

टेक्स्ट लेआउट

प्रत्येक सिम्बोलॉजी में एक TextLayoutPolicy होता है जो निर्धारित करता है कि बारकोड के नीचे मानव-पठनीय टेक्स्ट कैसे स्थित किया जाता है। create_layout(symbol, options) मेथड एक TextLayout लौटाता है जिसमें TextSegment ऑब्जेक्ट्स होते हैं जिनमें स्थिति और टेक्स्ट डेटा होता है।

QR Code QrTextLayoutPolicy का उपयोग करता है, जो एक नॉ-ऑप लेआउट प्रदान करता है (QR कोड मानव-पठनीय टेक्स्ट नहीं दिखाते)।


टिप्स और सर्वोत्तम प्रथाएँ

  • एकसमान आकार के लिए scale का उपयोग करें और सटीक आयाम नियंत्रण के लिए module_width/module_height का उपयोग करें — दोनों को मिलाएँ नहीं।
  • प्रिंट-गुणवत्ता वाले PNG आउटपुट के लिए dpi=300 सेट करें; डिफ़ॉल्ट स्क्रीन रिज़ॉल्यूशन है।
  • रंगीन पृष्ठभूमि पर ओवरले किए जाने वाले PNG बारकोड के लिए transparent_background=True का उपयोग करें।
  • foreground_color और background_color मानक हेक्स रंग स्ट्रिंग्स ("#RRGGBB") स्वीकार करते हैं।
  • SVG आउटपुट रिज़ॉल्यूशन-स्वतंत्र है — वेब और PDF एम्बेडिंग के लिए SVG को प्राथमिकता दें।

सामान्य समस्याएँ

समस्याकारणसमाधान
PNG बहुत छोटा दिखाई देता हैडिफ़ॉल्ट स्केल 1.0 हैबढ़ाएँ scale या सेट करें dpi
पाठ दिखाई नहीं दे रहा हैshow_text डिफ़ॉल्ट रूप से False हैसेट show_text=True
QR code में कोई पाठ नहीं हैQR प्रतीकात्मकता मानव-पठनीय पाठ का समर्थन नहीं करती हैअपेक्षित व्यवहार — QR नो-ऑप टेक्स्ट लेआउट का उपयोग करता है
रंग लागू नहीं हुएप्रॉपर्टी नाम की वर्तनी गलत हैसटीक प्रॉपर्टी नामों का उपयोग करें: foreground_color, background_color

यह भी देखें

 हिन्दी