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.

Get an API Key

The API is hosted at RapidAPI. You can get a free API key for development and testing purposes by signing up via the link below.

Get Free API Key >>

API Endpoint & Parameters

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

The HTML to ZPL API supports the following parameters:

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

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.

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

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

This ZPL code can be sent directly to the 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.