Απόδοση γραμμωτού κώδικα

Απόδοση γραμμωτού κώδικα

Απόδοση Barcode

Aspose.BarCode FOSS για Python διαχωρίζει την κωδικοποίηση από την απόδοση. Αφού ένας barcode κωδικοποιηθεί σε ένα 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Ομοιόμορφος πολλαπλασιαστής κλίμακας για ολόκληρο το barcode
dpiintΑνάλυση για έξοδο PNG (δεν έχει επίδραση στο SVG)
module_widthfloatΠλάτος μιας μονάδας barcode σε μονάδες χρήστη
module_heightfloatΎψος μιας μονάδας barcode σε μονάδες χρήστη
quiet_zonefloatΠεριθώριο λευκού χώρου γύρω από το barcode
foreground_colorstrHex χρώμα για μπαρ και μονάδες (π.χ., "#000000")
background_colorstrHex χρώμα φόντου
transparent_backgroundboolΔιαφανές φόντο για έξοδο PNG
show_textboolΕμφάνιση κειμένου που μπορεί να διαβαστεί από άνθρωπο κάτω από το barcode
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

Η αφηρημένη βασική κλάση Renderer ορίζει τη διεπαφή για όλους τους renderers:

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

SvgRenderer και PngRenderer και οι δύο υλοποιούν αυτό το interface. Μπορείτε να καλέσετε το Barcode.render(renderer, options) για να χρησιμοποιήσετε έναν συγκεκριμένο renderer απευθείας:

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Αναγνωριστικό του renderer

Διάταξη Κειμένου

Κάθε συμβολογία έχει ένα TextLayoutPolicy που καθορίζει πώς το κείμενο που μπορεί να διαβαστεί από άνθρωπο τοποθετείται κάτω από το barcode. Η μέθοδος create_layout(symbol, options) επιστρέφει ένα TextLayout που περιέχει αντικείμενα TextSegment με δεδομένα θέσης και κειμένου.

QR Code χρησιμοποιεί το QrTextLayoutPolicy, το οποίο παρέχει μια διάταξη χωρίς ενέργεια (QR κωδικοί δεν εμφανίζουν κείμενο που μπορεί να διαβαστεί από άνθρωπο).


Συμβουλές και Καλές Πρακτικές

  • Χρησιμοποιήστε το scale για ομοιόμορφο μέγεθος και το module_width/module_height για ακριβή έλεγχο διαστάσεων — μην συνδυάσετε και τα δύο.
  • Ορίστε το dpi=300 για εξαγωγή PNG υψηλής ποιότητας εκτύπωσης· η προεπιλογή είναι η ανάλυση οθόνης.
  • Χρησιμοποιήστε το transparent_background=True για κωδικούς QR PNG που θα επικάθονται πάνω σε χρωματιστά υπόβαθρα.
  • foreground_color και background_color αποδέχονται τυπικές δεκαεξαδικές συμβολοσειρές χρώματος ("#RRGGBB").
  • Η έξοδος SVG είναι ανεξάρτητη από την ανάλυση — προτιμήστε το SVG για ενσωμάτωση στο web και σε PDF.

Συνηθισμένα προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
Το PNG φαίνεται πολύ μικρόΗ προεπιλεγμένη κλίμακα είναι 1.0Αυξήστε το scale ή ορίστε το dpi
Το κείμενο δεν είναι ορατόΤο show_text είναι προεπιλεγμένο σε FalseSet show_text=True
QR code δεν έχει κείμενοΗ συμβολική αναπαράσταση του QR δεν υποστηρίζει κείμενο αναγνώσιμο από άνθρωποΑναμενόμενη συμπεριφορά — QR χρησιμοποιεί διάταξη κειμένου no-op
Τα χρώματα δεν εφαρμόζονταιΛανθασμένο όνομα ιδιότηταςΧρησιμοποιήστε ακριβή ονόματα ιδιοτήτων: foreground_color, background_color

Δείτε επίσης

 Ελληνικά