Редагування штрих-кодів
Редагування штрих-кодів
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,
))| Property | Type | Description |
|---|---|---|
scale | float | Єдиний множитель масштабу для всього штрих-коду |
dpi | int | Розрізнення для виходу PNG (не має впливу на SVG) |
module_width | float | Ширина одного модуля штрих-коду в користувацьких одиницях |
module_height | float | Висота одного модуля штрих-коду в одиницях користувача |
quiet_zone | float | Білий простір навколо штрих-коду |
foreground_color | str | Хекс-колер для штанг та модулів (наприклад,., "#000000") |
background_color | str | Хекс-колер для фону |
transparent_background | bool | Прозорість фону для виходу PNG |
show_text | bool | Показувати читаний людиною текст під штрих-кодом |
font_family | str | Шрифт для читаного людьми тексту |
font_size | float | Розмір шрифту для читаного людьми тексту |
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() містить:
| Property | Type | Description |
|---|---|---|
data | `str | bytes` |
media_type | str | Тип MIME ("image/svg+xml" або "image/png") |
backend | str | Ідентифікатор редереру |
Розгляд тексту
Кожна символіка має 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.
Загальні питання
| Issue | Cause | Виправлення |
|---|---|---|
| PNG здається занадто маленьким | Попередня масштабність 1.0 | Increase scale або набір dpi |
| Текст не помітний | show_text невідповідність до False | Набір show_text=True |
| QR-код не містить тексту | Символіка QR не підтримує текст, що читається людьми. | Очікувана поведінка QR використовує безопераційний текстний макет |
| Неприкладені кольори | Назва майна неправильно написана. | Використовуйте точні імена властивостей: foreground_color, background_color |