CSV → label PDF → print → scan
Turn a CSV into printable barcode labels
Try three fictional inventory codes, check your label stock, then compare a printed scan with the original value. All file processing runs in your browser.
1. Prepare and import your values
The sample contains barcode_content, product_name and copies columns. Its codes are DEMO-0001, DEMO-0002 and DEMO-0003. They are fictional internal identifiers, not retail GTINs. Select the optional name column to print a product name above the barcode. Only the barcode content is encoded. Select the copies column to print 2 blue notebooks, 1 red notebook and 3 pencil cases: six labels in total.
barcode_content,product_name,copies DEMO-0001,Sample blue notebook,2 DEMO-0002,Sample red notebook,1 DEMO-0003,Sample pencil case,3
- Open the batch generator, choose File Upload and select the CSV. CSV must be UTF-8 with a header row. CSV, XLSX and XLS are supported; JSON is not supported by this import.
- Select barcode_content under Barcode content column and optionally select product_name for Name and copies for Copies. Edit Barcode, Name or Copies directly in the source row table to correct mistakes. Validation and label totals update as you type; corrections do not change your original file. Then click Use this column. Values are trimmed; blank barcode rows are skipped and duplicate values are retained. Source row numbers include the header and blank records; a quoted multiline cell counts as one record.
- Use CODE128 for this sample and generate the batch. With the copies column selected, confirm six successful results and review every value and title. Without a copies column, each row defaults to one label; you can change its Copies in the preview. Fix and retry failed rows before exporting.
A selected copies column must contain a whole number from 1 to 1000 for each nonblank barcode row; missing, zero, negative and fractional values block import. The total limit is 10,000 labels including copies. Blank names use the global title. Imported row quantities override global copies per code. Editing the text after import removes row names and quantities and resumes the ordinary text workflow.
Excel removed zeros or shows scientific notation
For a code such as 000123, set the spreadsheet column to Text before entering or importing identifiers. When opening a CSV in Excel, use its text/CSV import flow and choose Text for that column before loading. Simply opening a CSV can convert identifiers to numbers. Quoting a value in the CSV does not reliably stop spreadsheet conversion. See Microsoft’s guide to keeping leading zeros and large numbers.
If you see 1.23457E+12, compare the cell with the original inventory source. Scientific notation may only be a display format, but long numeric identifiers may already have lost digits. Changing an already converted cell to Text cannot recover missing zeros or rounded digits: reimport from the original text source or correct the preview using verified values. Check the exported CSV in a plain-text editor, then check the first and last values in the preview before generating.
Keep identifiers as text in your spreadsheet so leading zeros survive CSV export. Use one value per row, with no embedded line breaks. The parser accepts files up to 10 MB and at most 10,000 CSV rows including the header. Start with a small batch before importing a large file.
2. Match the PDF to your label stock
In Export, select PDF, then Print label sheets. Choose A4, US Letter or Custom paper and enter the physical label width, height, margins and gaps in millimeters or inches. Unit changes preserve the physical dimensions.
The default is a generic 3-column × 7-row A4 layout: 63.5 × 38.1 mm labels, 7.25 mm side margins, 15 mm top/bottom margins and a 2.5 mm horizontal gap. It is a mathematical starting point, not a verified label-brand template or printer setting. Measure your stock and use its manufacturer's dimensions.
For a partially used sheet, set Skip used labels on first sheet. Count across each row from the top left: 4 skips the first row of three plus the first label of row two. Later pages start at the top left. Only reuse sheets if your printer and label-stock instructions allow it.
Save layout on this device stores one reusable layout in this browser. Load saved layout restores it with zero labels skipped. Set the used-label count for each job; browser storage clearing removes the saved layout.
3. Calibrate before printing the batch
- Download the calibration PDF. Its first page shows all label outlines; its second page is an A4 ruler reference. If your stock uses another paper size, print the ruler page separately on A4.
- Print at Actual size / 100% with Fit disabled, one PDF page per sheet. Select matching paper and orientation in the printer dialog. Adobe documents that Actual size prints without scaling, while Fit changes page size: Acrobat page sizing.
- Measure the 100 mm ruler. Print outlines on plain paper and compare against the label sheet held to the light. Check the first and last rows, not just the first label.
- When alignment is correct, export the label PDF, inspect the first occupied position and page count, and print a small sample before the full run.
Distinguish scaling from a fixed offset
If the 100 mm reference measures 97 mm, the print path is shrinking the page. Check both the PDF viewer and printer settings for Fit, shrink or multiple pages per sheet. Correct scaling before changing label dimensions. If the reference measures correctly but every outline is equally displaced, check the sheet orientation, paper guides and margins. If the first row aligns but later rows drift, remeasure the label height and vertical gap; repeat for horizontal drift using width and horizontal gap. Change one setting at a time and compare the first and last positions again.
Images keep their proportions inside each label. A layout fitting the sheet does not guarantee adequate barcode size or printer resolution. Do not crop the blank space around the barcode.
4. Scan the printed sample and compare the exact value
Photograph one printed label in even light, keeping the entire barcode and surrounding white space visible. Upload that image to the barcode scanner, or scan it with the device you will actually use. Compare the decoded text character for character with the CSV: the first sample must read DEMO-0001.
Separate an encoding problem from a print problem
First scan the downloaded image and compare its exact decoded text with your source. If the image fails too, check that the selected barcode format accepts the value and the scanner supports and enables that format. If the image succeeds but the printed label fails, use a fresh close-up without glare, preserve white space on both sides, and inspect narrow bars for merging or gaps. Increase the available barcode size instead of stretching its image. Try one revised label before printing the rest.
If a device adds characters or drops zeros, inspect its prefix, suffix and data-formatting configuration, then compare with a second reader. A readable product name is not the encoded value; only Barcode content is encoded. Follow the generation tutorial to review format and sizing, or return to the batch generator to correct the source.
A successful scan from the original PNG checks the encoded value, but does not test your printer. A phone or browser scan is also not a formal print-quality verification. GS1 explains quiet zones, contrast and verification in its barcode implementation guide.
| What you see | What to check next |
|---|---|
| Every label is the wrong size | Measure the ruler; disable Fit/shrink scaling and confirm the PDF and printer paper sizes. |
| Alignment drifts down or across the sheet | Recheck label dimensions and gaps. A constant displacement points to margins or paper feed alignment. |
| PNG scans but print does not | Inspect blur, ink spread, streaks, contrast and quiet zones. Try a larger label or barcode, then test on the target scanner. |
| Decoded value is different | Check column selection, spreadsheet leading zeros and scanner-added prefixes/suffixes. Do not distribute until the exact value matches. |
Generating an image does not assign a GS1 identifier
OnlyBarcode renders the data you supply. Choosing EAN or UPC, computing a check digit, or generating random digits does not register a product or grant a GS1 GTIN. For retail identifiers, obtain an appropriately assigned number through your local GS1 organisation and follow your retailer's requirements.
This guide describes a workflow to test on your equipment. No physical printer, label-stock or scanner compatibility is claimed.