Skip to main content

HTML to ZPL Quick Start Guide

This API service can convert any HTML document into ZPL code compatible with Zebra label printers. It executes style sheets, loads images, and even executes JavaScript - just like you're used to from your web browser. The HTML to ZPL API is a great way to create custom label templates for Zebra printers without resorting to writing ZPL yourself.

API Usage

The API method and endpoint is POST https://html-to-zpl.p.rapidapi.com/html2zpl

The API key provided by Rapid API must be set in the HTTP header X-RapidAPI-Key.

The API call returns raw ZPL data. You can save it to a file for further processing, or send it directly as-is to a Zebra printer to print the label.

Parameters

The following parameters can be set via the body of a POST request, either as JSON (using the content-type application/json) or form-encoded (using the content-type: application/x-www-form-urlencoded header).

Parameter NameRequiredDescriptionExample
heightyesThe height of the label in inches.6
widthyesThe width of the label in inches.4
htmlyesThe HTML content that is rendered on the label.
You can include images or execute JavaScript. We recommend that you embed or inline external resources as Data URLs, to avoid having to host resources.
<h1 font-size:40pt;margin-top:0.5in;>Hello World!<h1> <p style="margin-top:1.2in; font-size:25pt;">ZPL label generated by <u>htmltozpl.com</u></p>
dpinoThe Zebra printer resolution in dpi (dots per inch):
  • 203 (default) - 203 dpi / 8 dpmm - used by most Zebra printers
  • 300 - 300 dpi / 12 dpmm
  • 600 - 600 dpi / 24 dpmm
203
Parameter NameRequiredDescriptionExample
darknessoptionalAn integer value between 0 and 30.
Sets the printer darkness. This is equivalent to setting the darkness in the Zebra printer web configuration or driver.
15
dpioptionalThe Zebra printer resolution in dpi (dots per inch):
  • 203 (default) - 203 dpi / 8 dpmm - used by most Zebra printers
  • 300 - 300 dpi / 12 dpmm
  • 600 - 600 dpi / 24 dpmm
203
speedoptionalAn integer value between 2 and 12 that determines the media speed during printing in inches per second.
This is equivalent to the corresponding print rate setting in the Zebra printer web configuration or driver.
2
tip

Lowering the print speed improves the quality, especially for small fonts and barcodes.

Example using the Command Line

A brief example that can be executed on the CLI is provided below. You will need to have curl installed on your machine.

To run this example you will need an API Key. Please subscribe to the API if you don't have one yet. Replace API_KEY in the example with your key.

This command will generate the ZPL code for a 4" x 2" label with some sample text:

curl --request POST \
--url https://html-to-zpl.p.rapidapi.com/html2zpl \
--header 'content-type: application/json' \
--header 'x-rapidapi-key: API_KEY' \
--data '{ "width":"2", "height":"2", "html":"<div style=\"margin: 0.25in; border: 1px solid black;\">ZPL by htmltozpl.com</div>" }'

After a few seconds, the API will send back the encoded ZPL data:

^XA ^PW406^LL406^LS0 ^LH0,0 ^FO0,0^GFA,20706,20706,51, ,:::::::::::::::::::::::::::::::::::::::::::::::::R0G1iUFGES0R0G3iUFGES0:R0G3G8iT0G6S0R0G3G8W0G8hV0G6S0R0G3G8JFG3HFG8G0G7GFGEJ0G3GChV0G6S0R0G3G9JFG1IFG0G3GFGCJ0GFGChV0G6S0R0G3G9GCG0G1GEG0G7G8GFG8G0GFK0G3GChV0G6S0R0G3G9G8G0G3GCG0G7G8G3GCG0GFK0G3GChV0G6S0R0G3G9H0G7GCG0G7G8G1GEG0GFK0G3GChV0G6S0R0G3G9H0G7G8G0G7G8G1GEG0GFK0G3GChV0G6S0R0G3G8H0GFH0G7G8G1GEG0GFK0G3GChV0G6S0R0G3G8G0G1GFH0G7G8G1GEG0GFK0G3GCG7hU0G6S0R0G3G8G0G1GEH0G7G8G1GEG0GFK0G3GDGFGCG7GFG0G7GChO0G6S0R0G3G8G0G3GCH0G7G8G1GEG0GFK0G3HFGEG1GEG0G3G8hO0G6S0R0G3G8G0G7GCH0G7G8G3GCG0GFK0G3GEG1GEG0GEG0G3hP0G6S0R0G3G8G0G7G8H0G7GCGFG8G0GFK0G3GCG0GFG0GFG0G3hP0G6S0R0G3G8G0GFI0G7HFH0GFK0G3GCG0GFG0G7G0G6hP0G6S0R0G3G8G1GEI0G7G8I0GFK0G3GCG0G7G0G7G0G6hP0G6S0R0G3G8G3GEI0G7G8I0GFK0G3GCG0G7G0G3G8GChP0G6S0R0G3G8G3GCI0G7G8I0GFK0G3GCG0G7G0G3G8GChP0G6S0R0G3G8G7G8I0G7G8I0GFK0G3GCG0G7G0G1HChP0G6S0R0G3G8GFG8G0G1G8G7G8I0GFH0G1H0G3GCG0G7G0G1GDG8hP0G6S0R0G3G8GFH0G1G0G7G8I0GFH0G1H0G3GCG0G7G0G1GFG8hP0G6S0R0G3G9GEH0G1G0G7G8I0GFH0G3H0G3GCG0GEH0GFhQ0G6S0R0G3GBGEH0G3G0G7G8I0GFH0G6H0G3GCG0GCH0GFhQ0G6S0R0G3GBJFG0G7G8H0G1IFGEH0G1GEG1G8H0G7hQ0G6S0R0G3KFG3HFH0G7IFGEI0HFI0G6hQ0G6S0R0G3G8W0G3GCI0G6hQ0G6S0R0G3G8gH0GChQ0G6S0:R0G3G8gG0G1GChQ0G6S0R0G3G8g0G3GFG8hQ0G6S0R0G3G8g0G3GFhR0G6S0R0G3G8g0G3GEhR0G6S0R0G3G8gG0G8hR0G6S0R0G3G8iT0G6S0:R0G3G8G4R0G3V0G2hI0G6S0R0G3GBGER0GFV0GFhI0G6S0R0G3GFGEQ0G3GFU0G3GFhI0G6S0R0G3G9GER0G7V0GFhI0G6S0R0G3G9GEI0G2N0G7G0G1G8S0GFhI0G6S0R0G3G9GEI0G2N0G7G0G1G8S0G7hI0G6S0R0G3G9GEI0G6N0G7G0G3G8S0G7hI0G6S0R0G3G9GEI0GEN0G7G0G3G8S0G7hI0G6S0R0G3G9GEG3G8G1GFG0G1G8GFG0G7G8G0G7G0G7G8G0G1GEL0GCG7H0G7J0G7G8H0GFG8G0G1G8GEG0G7gM0G6S0R0G3G9GEGFGCG3GFGEG7G9GFG8GFGCG0G7G1HFG0G7GFG8G1IFG3GDGFGCG0G7I0G1GFGEG0G3GFGEG0G7G9GFG9GFGCgL0G6S0R0G3G9HFGEG0GEG0GFGBGFGDGFGEG0G7G0G7G8G0GCG3GCG1G8G1GEIFGEG0G7I0G3G8GFG0G7G0GFG1IFGBGFGCgL0G6S0R0G3G9GFG0GEG0GEG0G3GCG3GEG0GEG0G7G0G7G8G1G8G1GEG1G0G1GCG3GEG1GEG0G7I0G7G0G7G8GEG0G7G8G7GCG3GEG1GEgL0G6S0R0G3G9GEG0GEG0GEG0G3G8G1GCG0GEG0G7G0G7G8G3G8G0GEG1G0G3GCG3GCG0GFG0G7I0G6G0G7G8GEG0G7G8G3G8G1GCG0GEgL0G6S0R0G3G9GEG0GEG0GEG0G3G8G1GCG0GEG0G7G0G7G8G3G8G0GFH0G7G8G1GCG0GFG0G7I0GEG0G3G1GEG0G3GCG3G8G1GCG0GEgL0G6S0R0G3G9GEG0GEG0GEG0G3G8G1GCG0GEG0G7G0G7G8G7G8G0GFH0GFG0G1GCG0GFG0G7I0GEH0G1GEG0G3GCG3G8G1GCG0GEgL0G6S0R0G3G9GEG0GEG0GEG0G3G8G1GCG0GEG0G7G0G7G8G7G8G0G7H0GEG0G1GCG0G7G0G7I0GEH0G1GCG0G3GCG3G8G1GCG0GEgL0G6S0R0G3G9GEG0GEG0GEG0G3G8G1GCG0GEG0G7G0G7G8G7G8G0G7G0G1GEG0G1GCG0G7G0G7I0GEH0G1GEG0G3GCG3G8G1GCG0GEgL0G6S0R0G3G9GEG0GEG0GEG0G3G8G1GCG0GEG0G7G0G7G8G7G8G0G7G0G3GCG0G1GCG0G7G0G7I0GEH0G1GEG0G3GCG3G8G1GCG0GEgL0G6S0R0G3G9GEG0GEG0GEG0G3G8G1GCG0GEG0G7G0G7G8G7G8G0G7G0G7G8G0G1GCG0G7G0G7I0GFH0G9GEG0G3GCG3G8G1GCG0GEgL0G6S0R0G3G9GEG0GEG0GEG0G3G8G1GCG0GEG0G7G0G7G8G3G8G0G7G0G7G0H1GCG0G7G0G7I0GFG0G1G9GEG0G3G8G3G8G1GCG0GEgL0G6S0R0G3G9GEG0GEG0GFG0G3G8G1GCG0GEG0G7G0G7G8G3GCG0GEG0GFG0G3G1GCG0GEG0G7I0G7G8G1G0GFG0G3G8G3G8G1GCG0GEgL0G6S0R0G3G9GEG0GFG0GFG2G3G8G1GCG0GEG0G7G0G3G9G1GCG0GEG1GEG0G3G1GCG0GEG0GFG0G7G0G7GEG7G0GFG0G3G0G3G8G1GCG0GEgL0G6S0R0G3G9GEG0GFG0G7GEG3G8G1GCG0GFG0GFG0G3GFG0GEG1GCG3GCG0G7G1GEG1GCG0GFG0G7G8G3GFGEG0G7G8G6G0G7G8G1GCG0GEgL0G6S0R0G3HFGBGFGCG7GCGFGEG7GFGBGFG9GFGCG3GEG0G7GFG8G3IFG1HFG8G3GFGCG7G8G1GFGCG0G3GFGCG1GFGEHFG3GFG8gK0G6S0R0G3G8X0G1GCK0G1GDGEJ0G2H0G7I0G7gT0G6S0R0G3G8gK0G1GChM0G6S0::R0G3G8gK0G3GChM0G6S0:R0G3G8gK0HFhM0G6S0R0G3G8iT0G6S0R0G3iUFGES0:R0G1iUFGES0,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::^FS^XZ

This ZPL code can be sent directly (raw) to a Zebra printer for printing. If the printer is connected via network, you can send the string directly over a TCP socket (default port 9100) to the printer. Please check the FAQ for code samples.

To see a preview of the ZPL you can use the viewer at Labelary. Be sure to specify the correct size for the label.

Sample Label created by the HTML-to-ZPL API