Rendu de code-barres

Rendu de code-barres

Aspose.BarCode FOSS pour Python sépare l’encodage du rendu. Après qu’un code-barres soit encodé dans un EncodedSymbol, une implémentation Renderer convertit la matrice de modules en sortie visuelle. La bibliothèque inclut SvgRenderer et PngRenderer.


RenderOptions

RenderOptions contrôle la sortie visuelle de tous les rendus. Passez-le à to_svg() ou to_png() sur tout objet 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,
))
PropriétéTypeDescription
scalefloatMultiplicateur d’échelle uniforme pour l’ensemble du code-barres
dpiintRésolution pour la sortie PNG (n’a aucun effet sur le SVG)
module_widthfloatLargeur d’un module de code-barres en unités utilisateur
module_heightfloatHauteur d’un module de code-barres en unités utilisateur
quiet_zonefloatMarge d’espace blanc autour du code-barres
foreground_colorstrCouleur hexadécimale pour les barres et les modules (par ex., "#000000")
background_colorstrCouleur hexadécimale pour l’arrière-plan
transparent_backgroundboolArrière-plan transparent pour la sortie PNG
show_textboolAfficher le texte lisible sous le code-barres
font_familystrPolice du texte lisible
font_sizefloatTaille de police pour le texte lisible par l’homme

ResolvedRenderOptions

ResolvedRenderOptions est la configuration entièrement fusionnée produite par OptionsResolver.resolve(). Elle combine les RenderOptions fournis par l’utilisateur avec les valeurs par défaut de SymbologyProfile. Toutes les propriétés ont des valeurs concrètes (pas de None).

La propriété Barcode.default_render_options contient le RenderOptions passé au moment de la génération (ou le None s’il n’est pas fourni).


Sortie SVG

SvgRenderer produit une sortie SVG. Appelez to_svg() sur un objet 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() renvoie un str contenant le document SVG complet.


Sortie PNG

PngRenderer produit une sortie PNG. Appelez to_png() sur un objet 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() renvoie bytes contenant les données d’image PNG.


Abstraction du rendu

La classe de base abstraite Renderer définit l’interface pour tous les renderers:

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

SvgRenderer et PngRenderer implémentent tous les deux cette interface. Vous pouvez appeler Barcode.render(renderer, options) pour utiliser directement un rendu spécifique:

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

Le RenderedArtifact renvoyé par Renderer.render() contient:

PropriétéTypeDescription
data`strbytes`
media_typestrType MIME ("image/svg+xml" ou "image/png")
backendstrIdentifiant du rendu

Mise en page du texte

Chaque symbologie possède un TextLayoutPolicy qui détermine la façon dont le texte lisible par l’homme est positionné sous le code-barres. La méthode create_layout(symbol, options) renvoie un TextLayout contenant des objets TextSegment avec les données de position et de texte.

QR Code utilise QrTextLayoutPolicy, qui fournit une mise en page neutre (les codes QR n’affichent pas de texte lisible).


Conseils et bonnes pratiques

  • Utilisez scale pour une taille uniforme et module_width/module_height pour un contrôle précis des dimensions — ne combinez pas les deux.
  • Définir dpi=300 pour la sortie PNG de qualité impression ; la valeur par défaut est la résolution écran.
  • Utilisez transparent_background=True pour les codes-barres PNG qui seront superposés sur des arrière-plans colorés.
  • foreground_color et background_color acceptent les chaînes de couleur hex standard ("#RRGGBB").
  • La sortie SVG est indépendante de la résolution — privilégiez le SVG pour l’intégration web et PDF.

Problèmes courants

ProblèmeCauseCorrection
Le PNG apparaît trop petitL’échelle par défaut est 1.0Augmentez scale ou définissez dpi
Texte non visibleshow_text a pour valeur par défaut FalseDéfinir show_text=True
QR code n’a pas de texteLa symbologie de QR ne prend pas en charge le texte lisible par l’hommeComportement attendu — QR utilise une mise en page de texte sans opération
Couleurs non appliquéesNom de propriété mal orthographiéUtilisez les noms de propriétés exacts : foreground_color, background_color

Voir aussi

 Français