Print UPS Ground shipping labels on Zebra printers
UPS Ground labels have a very specific layout: the 1Z tracking number as a big CODE128 barcode, ship-to address block, package weight, service type, and the UPS logo/graphic elements. Doing this by hand for 30 packages is painful. Doing it in mylabelmaker with variables takes minutes.
This tutorial shows the fastest reliable way using the built-in shipping template (or a quick custom design) plus CSV/Google Sheets batch printing. The output is clean native ZPL that works on ZD420, ZD621, GK420d, and virtually every other Zebra thermal printer supported by Browser Print.
What you'll need
- Any Zebra thermal printer (4x6" shipping labels recommended).
- Zebra Browser Print installed (free, one-time on the computer connected to the printer).
- A list of shipments (even a simple Google Sheet or Excel export saved as CSV).
- Modern desktop browser.
Step 1: Open mylabelmaker and load the shipping template
Start from the built-in UPS / shipping template
Go to app.mylabelmaker.com. In the left rail click Templates. Under the Shipping category choose "UPS Ground" (or "Amazon FBA" / "Shopify shipping" if you need a different carrier style).
The template already contains the correct 4x6" size, the big tracking barcode area, address block, and weight field. You can customize colors, fonts, or add your company logo in 30 seconds.
Step 2: Replace static text with variable tokens
Use {{ }} placeholders for everything that changes
Click any text or barcode element. In the top toolbar or inline editor, change the content to use tokens that match your spreadsheet columns:
- Ship-to name:
{{name}}or{{recipient}} - Full address block:
{{address1}},{{city}},{{state}} {{zip}} - Tracking number (on the barcode):
{{tracking}}or{{1z}} - Weight:
{{weight}} lbs - Reference or order #:
{{order}}
Barcodes and QR codes accept the same tokens. The tracking barcode will automatically encode whatever value is in the {{tracking}} column for that row.
Step 3: Load your shipment data (CSV or Google Sheet)
One click to connect a whole day's worth of labels
Click the {{ }} button in the top toolbar (or open the Variables side panel). Choose "Paste CSV", upload a file, or paste a published Google Sheets "comma-separated values" URL.
Column headers become available as one-click inserts. mylabelmaker shows a live preview of the current row on the canvas. Use the slider or prev/next buttons to verify every label looks correct.
Step 4: Print (or copy ZPL)
Direct print or export for your backend
When the row navigator is visible the big Print button on the artboard changes to "Print N rows". Click it, confirm the count, and mylabelmaker will rasterize and send one perfect label per row to your Zebra.
Alternatively choose Options → Copy ZPL. You get a clean block of ZPL for the current (or every) row that you can paste into any WMS, ERP, or custom print script.
• Make the tracking barcode tall (at least 0.8–1" high) and use CODE128 with showText = true below it.
• Leave 0.2–0.3" quiet zone on all sides of the barcode.
• Use 4x6" label size (or 4x8" if you also need a packing list section).
• For 300 dpi printers, always use the Auto-detect or manually set DPI in the printer settings popover so the barcode doesn't come out fuzzy.
Step 5: Save the design as a reusable template
Once you have a working UPS layout, use the header menu: Options → Export label. Give it a name like "UPS-Ground-v2.json". Next time anyone on the team needs to print shipping labels they can import it (or you can keep it in the in-browser saved labels list).
The exported file also remembers any batch data structure you were using, so the token names travel with the design.
Ready to ship faster?
Open the editor, load the shipping template, drop in your tokens, and print real UPS labels in under five minutes. Completely free.
Open mylabelmaker