Редагування штрих-кодів

Редагування штрих-кодів

Редагування штрих-кодів

Aspose.BarCode FOSS for Python separates encoding from rendering. After a barcode is encoded into an 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,
))
PropertyTypeDescription
scalefloatЄдиний множитель масштабу для всього штрих-коду
dpiintРозрізнення для виходу PNG (не має впливу на SVG)
module_widthfloatШирина одного модуля штрих-коду в користувацьких одиницях
module_heightfloatВисота одного модуля штрих-коду в одиницях користувача
quiet_zonefloatБілий простір навколо штрих-коду
foreground_colorstrХекс-колер для штанг та модулів (наприклад,., "#000000")
background_colorstrХекс-колер для фону
transparent_backgroundboolПрозорість фону для виходу PNG
show_textboolПоказувати читаний людиною текст під штрих-кодом
font_familystrШрифт для читаного людьми тексту
font_sizefloatРозмір шрифту для читаного людьми тексту

ResolvedRenderOptions

ResolvedRenderOptions є повністю з’єднаною конфігурацією, отриманою за допомогою: OptionsResolver.resolve().Він поєднує в собі користувацькі засоби. RenderOptions з SymbologyProfile Всі властивості мають конкретні значення (ні. None).

У. Barcode.default_render_options майно має RenderOptions передані у час походження (або None якщо не поставлено).


Для переведення бачів, завантаження та збереження в циклі рендері не мають стану і можуть повторного використання у всіх документах.

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() повертає a 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 abstract базовий клас визначає інтерфейс для всіх рендерів:

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() містить:

PropertyTypeDescription
data`strbytes`
media_typestrТип MIME ("image/svg+xml" або "image/png")
backendstrІдентифікатор редереру

Розгляд тексту

Кожна символіка має TextLayoutPolicy що визначає, як можна читати текст під штрих-кодом. create_layout(symbol, options) Метод повертає a TextLayout що містить: TextSegment об’єкти з даними про положення та текст.

Використання QR-коду QrTextLayoutPolicy, що забезпечує безопераційну схему (коди QR не відображають текст, який читається людьми).


Поради та найкращі практики

  • Використання scale для однорідного розміру та module_width/module_height для точного контролю розмірів не об’єднуйте обидва.
  • Набір dpi=300 для виходу PNG з друкованою якістю; за замовчуванням є розділ екрану.
  • Використання transparent_background=True для баркодів PNG, які будуть накладені на кольорові фони.
  • foreground_color і background_color прийняти стандартні шестернові кольорові стружки ("#RRGGBB").
  • Вихід SVG незалежно від роздільної здатності віддає перевагу SVGs для вбудову веб-та і PDF.

Загальні питання

IssueCauseВиправлення
PNG здається занадто маленькимПопередня масштабність 1.0Increase scale або набір dpi
Текст не помітнийshow_text невідповідність до FalseНабір show_text=True
QR-код не містить текстуСимволіка QR не підтримує текст, що читається людьми.Очікувана поведінка QR використовує безопераційний текстний макет
Неприкладені кольориНазва майна неправильно написана.Використовуйте точні імена властивостей: foreground_color, background_color

See Also

 Українська