عرض الباركود

عرض الباركود

Aspose.BarCode FOSS لـ Python يفصل الترميز عن العرض. بعد أن يتم ترميز الباركود إلى EncodedSymbol، تقوم Renderer بتحويل مصفوفة الوحدة إلى مخرجات بصرية. المكتبة تشمل SvgRenderer و PngRenderer.


RenderOptions

RenderOptions يتحكم في المخرجات البصرية لجميع عارضات. مرره إلى to_svg() أو to_png() على أي كائن Barcode:

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مضاعف المقياس المتساوي للباركود بأكمله
dpiintالدقة لإخراج PNG (ليس لها تأثير على SVG)
module_widthfloatعرض وحدة الباركود الواحدة بوحدات المستخدم
module_heightfloatارتفاع وحدة الباركود الواحدة بوحدات المستخدم
quiet_zonefloatحشو المسافات الفارغة حول الباركود
foreground_colorstrلون سداسي عشري للأشرطة والوحدات (مثال، "#000000")
background_colorstrلون Hex للخلفية
transparent_backgroundboolخلفية شفافة لإخراج PNG
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

الـ RenderedArtifact التي تُرجعها Renderer.render() تحتوي على:

الخاصيةالنوعوصف
data`strbytes`
media_typestrنوع MIME ("image/svg+xml" أو "image/png")
backendstrمعرّف العارض

تخطيط النص

كل رمزية لديها TextLayoutPolicy التي تحدد كيفية تموضع النص القابل للقراءة البشرية أسفل الباركود. تُعيد طريقة create_layout(symbol, options) TextLayout تحتوي على كائنات TextSegment مع بيانات الموقع والنص.

QR Code يستخدم QrTextLayoutPolicy، الذي يوفر تخطيطًا لا يُنفّذ أي عملية (رموز QR لا تعرض نصًا قابلًا للقراءة البشرية).


نصائح وأفضل الممارسات

  • استخدم scale للحصول على حجم موحد وmodule_width/module_height للتحكم الدقيق في الأبعاد — لا تجمع بينهما.
  • قم بتعيين dpi=300 لإخراج PNG بجودة الطباعة؛ الافتراضي هو دقة الشاشة.
  • استخدم transparent_background=True لأكواد الباركود PNG التي ستُغطى على خلفيات ملونة.
  • foreground_color وbackground_color يقبلان سلاسل ألوان سداسية قياسية ("#RRGGBB").
  • إخراج SVG غير معتمد على الدقة — يُفضَّل SVG للويب وإدراج PDF.

مشكلات شائعة

المشكلةالسببالإصلاح
تظهر PNG صغيرة جدًاالمقياس الافتراضي هو 1.0زيادة scale أو تعيين dpi
النص غير مرئيshow_text يُعَدّ افتراضيًا إلى Falseتعيين show_text=True
QR code لا يحتوي على نصQR الرمزية لا تدعم النص القابل للقراءة من قبل الإنسانالسلوك المتوقع — QR يستخدم تخطيط نص لا يُنفّذ أي عملية
الألوان لم تُطبقاسم الخاصية مكتوب بشكل خاطئاستخدم أسماء الخصائص الدقيقة: foreground_color، background_color

انظر أيضاً

 العربية