Spyridon Pikoulas

Print QR and barcode labels from Google Sheets

For a list of asset IDs, shelf locations or links, keep one label per row. Decide whether you need a printable sheet, individual image files, or both. A free bulk generator can be enough when you only need PNGs; PrintFill prepares an exact supported label sheet and named images together from your current Google Sheets™ source.

Download the three-row starter ZIP for a UTF-8 CSV with separate QR payload and ASCII barcode columns, captions and unique filename IDs. Its README explains importing with number/date/formula conversion turned off so 00001 stays text. The Greek QR example belongs in QR mode; map the separate ASCII column for Code 128. These synthetic rows and the manual three-column example below are alternatives, not one combined source.

Prepare three columns

Payload Caption Filename ID
00000123 Shelf A shelf_a
00000124 Shelf B shelf_b
00000125 Shelf C shelf_c

Format the payload column as Plain text before entering or importing identifiers. PrintFill encodes displayed text exactly: it cannot restore zeroes that Sheets already removed. Check the displayed values, including significant spaces, before loading them.

Choose QR for UTF-8 content such as links or Greek text. Choose Code 128 for printable ASCII identifiers like these eight-digit values. PrintFill does not produce EAN/UPC or certify GS1 or retail compliance. Keep sensitive information out of publicly visible codes.

Check the source and label layout

  1. Open PrintFill from the spreadsheet’s Extensions menu and check the displayed Google account. It is the account used for source access, free allowance and billing.
  2. Select the heading and data cells and load the selection with headings enabled, or explicitly choose the current tab’s used range. Map Payload, Caption and Filename ID to their columns.
  3. Choose QR or Code 128 and the exact stock: OnlineLabels OL875 Letter, 30 labels, or Flexi Labels FS21 A4, 21 labels. Choose the first-sheet starting slot if some labels have already been used.
  4. Check all rows and review the actual prepared labels. A bad payload, caption that cannot fit or unsafe/duplicate filename refuses the whole job. Fix it rather than expecting skipped rows or clipped text. QR payloads may use UTF-8; Code 128 accepts ASCII characters 32–126 only.
  5. Generate and explicitly download the ZIP. It contains labels.pdf, a captioned PNG for each row and manifest.json. The manifest repeats payloads, captions, filenames and positions; share it only where you would share the source data.

Filename IDs must be unique even without case distinctions, 1–80 ASCII letters, digits, underscores or hyphens, and start with a letter or digit. For this example the three output images are shelf_a.png, shelf_b.png and shelf_c.png.

Open the PDF and print at Actual size / 100%, with matching Letter or A4 paper. First print on plain paper and compare it against your actual label stock. Check the starting slot, margins and page orientation, then test that your scanner reads the printed value exactly.

These layouts follow OL875 supplier PDF outlines and FS21 supplier dimensions. Supplier codes are descriptive; PrintFill is independent and not endorsed by the suppliers. Another brand’s similar label size is not a guaranteed match. Digital preview/decoding cannot guarantee your printer, material or scanner. If the code cannot fit at the supported size, shorten the payload or choose an appropriate workflow rather than scaling the label sheet to fit the page.

What the free allowance covers

PrintFill previews are free. 12 generated row-codes in total per Google account are free, then $9 once unlocks further generation within the technical limits, without a subscription. The three rows above use three codes, including their PDF labels and PNGs. Generating a different code format or another different job counts separately: these rows as QR and then Code 128 use six codes. Pages, scans and repeated downloads do not add usage. If fewer than three codes remain, explicitly select fewer rows or unlock; PrintFill does not silently omit the final rows.

A recognized retry of the same unchanged latest job does not count again. After reopening, reselect its source/options. Keep downloaded files: authorizing another permitted batch or using Forget latest retry receipt removes the old job’s free retry recognition. Output counts when it is prepared and completion is recorded, rather than when the operating system saves or prints it.

Each batch supports up to 100 rows and ten columns, with further source-size, actual code-fit and 50 MiB ZIP limits. See PrintFill for the full supported bounds.

When a free generator is enough

If you only need QR PNGs from a CSV and can place them yourself, a free tool such as Make a QR’s bulk generator may be sufficient. For a handful of labels, arranging images manually in a document may also be enough. PrintFill is useful when your ongoing source is a Sheet and you want mapped captions, named PNGs and a checked printable layout together. It encodes static payloads; it does not host destinations, track scans or supply editable redirect links.

QR Code is a registered trademark of DENSO WAVE INCORPORATED. Google Sheets is a trademark of Google LLC.