Usage

Installation

To use Zebrafy, first install it using pip:

(.venv) $ pip install zebrafy

ZebrafyPDF and ZebrafyImage Parameters

Parameter

Description

format

ZPL graphic field format type (default "ASCII")

  • "ASCII" — ASCII hexadecimal (most compatible)

  • "B64" — Base64 Binary

  • "Z64" — Z64 compressed binary (best compression)

invert

Invert the black and white in the image/PDF output. (True or False, default False)

dither

Dither the result instead of hard limit on black pixels. (True or False, default True)

threshold

Black pixel threshold for image without dithering (0-255, default 128)

width

Width of the image in the resulting ZPL, 0 to use original image/PDF width (default 0)

height

Height of the image in the resulting ZPL, 0 to use original image/PDF height (default 0)

pos_x

Pixel x position of the graphic field in resulting ZPL (default 0)

pos_y

Pixel y position of the graphic field in resulting ZPL (default 0)

complete_zpl

Add ZPL header and footer or only get the ZPL graphic field output (True or False, default True)

Conversions

Image to ZPL Graphic Field with ZebrafyImage

Convert image bytes into a complete ZPL string and save to file:

from zebrafy import ZebrafyImage

with open("source.png", "rb") as image:
    zpl_string = ZebrafyImage(image.read()).to_zpl()

with open("output.zpl", "w") as zpl:
    zpl.write(zpl_string)

Example usage with optional parameters:

from zebrafy import ZebrafyImage

with open("source.png", "rb") as image:
    zpl_string = ZebrafyImage(
        image.read(),
        format="Z64",
        invert=True,
        dither=False,
        threshold=128,
        width=720,
        height=1280,
        pos_x=100,
        pos_y=100,
        complete_zpl=True,
    ).to_zpl()

with open("output.zpl", "w") as zpl:
    zpl.write(zpl_string)

Alternatively, ZebrafyImage also accepts PIL Image as the image parameter instead of image bytes:

from PIL import Image
from zebrafy import ZebrafyImage

pil_image = Image.new(mode="RGB", size=(100, 100))
zpl_string = ZebrafyImage(pil_image).to_zpl()

with open("output.zpl", "w") as zpl:
    zpl.write(zpl_string)

PDF to ZPL Graphic Field with ZebrafyPDF

Convert PDF bytes into a complete ZPL string and save to file:

from zebrafy import ZebrafyPDF

with open("source.pdf", "rb") as pdf:
    zpl_string = ZebrafyPDF(pdf.read()).to_zpl()

with open("output.zpl", "w") as zpl:
    zpl.write(zpl_string)

ZebrafyPDF conversion supports the same optional parameters as ZebrafyImage conversion:

from zebrafy import ZebrafyPDF

with open("source.pdf", "rb") as pdf:
    zpl_string = ZebrafyPDF(
        pdf.read(),
        format="Z64",
        invert=True,
        dither=False,
        threshold=128,
        width=720,
        height=1280,
        pos_x=100,
        pos_y=100,
        complete_zpl=True,
    ).to_zpl()

with open("output.zpl", "w") as zpl:
    zpl.write(zpl_string)

ZPL to PDF or Images with ZebrafyZPL

Convert all graphic fields from a valid ZPL file to PIL Images and save to image files:

from zebrafy import ZebrafyZPL

with open("source.zpl", "r") as zpl:
    pil_images = ZebrafyZPL(zpl.read()).to_images()
    for count, pil_image in enumerate(pil_images):
        pil_image.save(f"output_{count}.png", "PNG")

Convert all graphic fields from a valid ZPL file to PDF bytes and save to PDF file:

from zebrafy import ZebrafyZPL

with open("source.zpl", "r") as zpl:
    pdf_bytes = ZebrafyZPL(zpl.read()).to_pdf()

with open("output.pdf", "wb") as pdf:
    pdf.write(pdf_bytes)