Description
ZplBox utilizes an embedded Chromium engine to render your web content as PNG,
enabling you to use the full web technology stack to create your labels.
PDF documents are converted to PNG using Apache PDFBox. You can
submit your content either as a file or by referencing an external URL.
Once your content is rendered as a PNG, it is transformed into a monochrome
image and encoded as a ZPL-native ASCII hexadecimal string. The resulting ZPL
label consists solely of this ASCII hexadecimal string, embedded in a Graphic
Field (^GF), and is returned in the response or directly forwarded to the label
printer (ZPL Print Server).
This approach opens up new possibilities that are nearly impossible with native
ZPL, including:
-
Images:
Embed and scale images flexibly using default web technologies.
-
Fonts:
You can use any fonts supported by web frameworks.
-
Text / Typography:
You can use any methods you use in web design.
-
Special Characters:
No restrictions regarding special characters anymore.
-
...
ZPL Print Server
ZplBox can function as a cloud, edge, or local ZPL print server, allowing you to
hide all
ZPL-specific logic from your developers by abstracting it through standard web
interfaces like REST or HTML. By using one of the "**/print/{TCP_ADDRESS}"
endpoints, ZplBox generates ZPL labels from the provided input and forwards them
directly to the specified TCP address.
Figure: ZplBox as ZPL Print Server
Quick Start
1. Start ZplBox as Docker container
ZplBox is designed as a Docker container what can be started using the
following command:
docker run -p 8080:8080 ghcr.io/zplbox/zplbox:latest
2. Open ZplBox UI
ZplBox comes with an intuitive user interface (UI) designed to help you get
started with ZplBox and its API effortlessly. The UI allows you to manually
convert HTML and PDF files to ZPL (Zebra Programming Language) and send the
generated ZPL labels directly to a printer. You can access the interface at
http://localhost:8080.
Image: Screen of the ZplBox User Interface
Support
We’d love for you to join us on GitHub, where our community comes
together to share ideas, ask questions, and solve problems. Whether you’re looking
for help, want to share your thoughts, or simply connect with others who are
passionate about this project, you’re in the right place. Every contribution, big or
small, makes a difference, and we’re excited to have you participate! Dive into the
conversation, share your insights, and help us grow together!
Get Expert Support for ZplBox
Need help with ZplBox? Schedule a Google Meet session with the developer for
personalized support and tailored solutions.
Flexible timing, direct access to specialists, and secure, confidential
meetings.
Book your session
now!
API Reference
Example
Here is a first curl example of submitting an
UPS
test label to the API.
You will find more, automatically generated, examples in the ZplBox user
interface.
curl --request POST \
--url http://localhost:8080/v1/html2zpl \
--header 'content-type: application/json' \
--data '{ "url":"http://localhost:8080/labels/ups-example.html", "widthPts":812, "heightPts":1624 }'
Open API Specification (swagger.yml)