Library Barcode Sheet Generator

Library Barcode Sheet Generator

Turn existing barcode, accession, inventory or identifier lists into validated printable barcode and QR-code sheets from pasted values, CSV or TXT files.

Rule-based / deterministic Reviewed 2026-09-01 Privacy-first workflow
Loading tool…

Accuracy note: The tool validates values against the selected barcode format, checks EAN-13, UPC-A and ITF-14 check digits, reports duplicates, and verifies that the requested label geometry fits the selected paper size. Physical alignment still depends on the printer, browser print settings and label stock, so always print and scan a test page first.

How this result is calculated and when to review it

Method: The tool uses the values you provide and a visible rule set or workflow appropriate to this task. Results are designed to be reviewable, with assumptions and limitations shown instead of hidden behind an unexplained score.

Result type: Rule-based / deterministic.

Good practice: keep one known-good example, test small batches first, and document any local conventions that affect the result.

Worked example

Use a small representative input in Library Barcode Sheet Generator, review the output and warnings, then repeat the process with real data only after the result matches your expected workflow.

Tip: the Try example control in the tool uses the built-in sample/default values so you can see the expected workflow before entering your own data.

The Library Barcode Sheet Generator turns barcode values you already have into clean, printable barcode or QR-code sheets. It is designed for librarians, archives, school libraries, university libraries, migration teams and collection staff who already have item IDs, accession numbers, inventory identifiers or other codes and need to place those values on physical labels. You can paste identifiers directly or upload a CSV or TXT file, map optional label text such as a title or call number, validate each value against the selected barcode format, preview the sheet on A4, Letter, Legal or custom paper, and then print a test page before producing a larger batch.

This page has a deliberately different job from the Koha Barcode Generator. The Koha generator creates new sequential barcode values, for example BK000001 through BK000500. This sheet generator starts after that step: it takes existing values, which may be sequential or completely mixed, and focuses on validation, label layout and printing. Keeping those jobs separate makes both tools easier to understand and reduces the risk of accidentally changing an identifier merely because you want to print it.

What the Library Barcode Sheet Generator does

The tool accepts one identifier per line or reads identifiers from a CSV or TXT file. For CSV input, you can choose which column contains the barcode or ID and optionally choose separate columns for text above and below each symbol. That makes it possible to create a label where the machine-readable code is the item barcode while the visible heading is a short title and the footer is a call number, shelf location or accession note.

The current generator supports Code 128, Code 39, EAN-13, UPC-A, ITF-14 and QR codes. It does not assume that every string is valid for every symbology. Instead, it checks values before rendering. This matters because a barcode image can look convincing even when the data format is inappropriate for the selected standard. The page therefore treats validation as part of label preparation, not as an optional cleanup task after printing.

When to use this tool instead of the Koha Barcode Generator

Use this sheet generator when the identifiers already exist. Typical examples include a Koha item export, a spreadsheet of accession numbers, a list of archive box IDs, a school-library inventory file, a set of patron or membership identifiers, or a mixed group of replacement labels that are not sequential. The values can come from different parts of a collection and do not need to follow one numbering pattern.

Use the Koha Barcode Generator when you still need to create a new sequential Koha item range. That tool is optimized for the generation stage, including range width, prefixes, reserved values and Koha-specific barcode constraints. Once the range exists, this page is useful when you need more detailed sheet geometry or when you need to combine identifiers with row-specific label text from CSV.

Paste barcode values or upload CSV and TXT files

For a quick batch, paste one identifier per line. Blank lines are ignored. This is useful when you have copied a selection of values from a spreadsheet or catalogue report and do not need additional label text. The input can contain non-sequential values such as BK004912, REF-1127, ARCHIVE-A-009 and JOURNAL-2026-14, provided the selected barcode type can represent those characters.

For richer labels, upload a CSV file. The tool reads the file in your browser and exposes the detected columns so you can choose a barcode or identifier column, an optional heading column and an optional footer column. A Koha export, for example, might use barcode for the machine-readable value, title as the heading and itemcallnumber as the footer. A simple TXT file uses one non-empty line as one label value.

CSV parsing supports quoted values, including fields that contain commas. The page is intended for practical exports rather than enormous data warehouses, so file and batch limits are explicit. If a batch is too large for reliable browser rendering, the tool asks you to split it instead of silently dropping the remaining labels.

Map CSV columns to barcode, heading and footer

The barcode column is the only required mapped field when a CSV file is used. It determines what the scanner should return. Heading and footer mappings are optional display fields and do not change the encoded value. This distinction is important: if a label shows a title above the bars, the title is still only human-readable decoration unless you deliberately choose it as the encoded barcode value.

You can also use one static heading or footer for every label. A library name, branch name, collection name or short ownership statement can be added without creating another CSV column. Row-specific CSV text takes priority when it is present, while the static text acts as a fallback.

Code 128 for flexible library identifiers

Code 128 is the most flexible linear option in this tool for ordinary alphanumeric library identifiers. It is suitable for many values that combine letters, digits, punctuation or fixed prefixes. If your existing catalogue contains identifiers such as BK000812 or REF-2026-119, Code 128 is usually the first format to test with your scanner and label stock.

The generator preserves the original value. It does not automatically uppercase it or rewrite punctuation merely to satisfy a different format. If a value is incompatible with the chosen symbology, the safer behavior is to report the mismatch so you can choose a suitable format intentionally.

Code 39 and its restricted character set

Code 39 is widely recognized and can be useful for older workflows, but it has a more restricted character set than Code 128. In this tool, Code 39 values must use uppercase A–Z, digits, spaces and the supported punctuation characters - . $ / + %. Lowercase input is rejected rather than silently converted because changing the case may change the identifier you expect a system to store or retrieve.

If your source contains lowercase values or characters outside the Code 39 set, use Code 128 or QR rather than editing production identifiers simply to make a label render.

EAN-13, UPC-A and ITF-14 validation

EAN-13, UPC-A and ITF-14 are numeric formats with fixed lengths and check digits. For an existing-identifier sheet, it is not enough to accept a partial payload and let a barcode library silently add a digit: the value printed below the symbol should match the value the scanner returns. The generator therefore requires a complete EAN-13, UPC-A or ITF-14 value and verifies its final check digit before rendering.

GS1 explains that EAN-13 and UPC-A are widely used for trade-item identification and that the identifier includes a calculated check digit. See the official GS1 guidance on EAN-13 and UPC-A for the standards context. Libraries should not invent retail GTINs merely because a scanner can read them; use these formats when the existing identifier is genuinely intended to follow that standard.

QR-code sheets for URLs and longer identifiers

QR codes are useful when the value is longer than a conventional item barcode or when the label should contain a URL, repository link, inventory record URL or another text value. This page treats QR as a separate rendering mode and applies an explicit browser-batch limit because hundreds of QR canvases can consume more memory than linear SVG barcodes.

Koha itself includes barcode-image tooling that can create several barcode types and QR codes. The official Koha cataloging manual is a useful reference when your sheet will be used alongside Koha's own label or barcode features. For Koha item barcodes specifically, remember that the encoded identifier and the printed symbology are separate decisions.

Duplicate barcode values: keep or remove

A duplicate is not automatically an error on a printing page. You may intentionally need two replacement labels for the same item, one label for a book and one for a storage envelope, or duplicate QR labels for two physical locations. For that reason the tool reports duplicates and lets you decide whether to keep them or remove repeated occurrences.

This differs from sequential barcode generation, where duplicate item identifiers are usually undesirable. The result summary shows how many duplicate occurrences were found so the choice remains visible instead of disappearing inside the rendering process.

Invalid values: stop or skip

By default, invalid values stop the sheet before printing. This is the safer option when a batch is intended for production because it forces you to review format problems instead of creating a partially successful sheet without noticing which labels disappeared. The error report identifies the affected source rows and explains the selected format rule.

For a mixed cleanup batch, you can choose to skip invalid values and continue with the rows that pass. The summary still reports how many rows were skipped. This mode is useful when the source file contains headers, placeholders or legacy values you plan to investigate separately.

A4, Letter, Legal and custom paper sizes

Label printing is a geometry problem as much as a barcode problem. The generator supports A4, US Letter and US Legal paper plus custom width and height in millimetres. Portrait and landscape orientations are available. You can choose the number of columns, set a fixed number of rows or let the tool calculate how many rows fit, and control the label height, page margins and horizontal and vertical gaps.

If label width is set to automatic, the tool divides the available printable width across the chosen columns after subtracting margins and gaps. If you enter a fixed label width, it checks whether the complete row still fits. Likewise, it verifies that the requested row count and label heights fit inside the available page height. A layout that does not fit is blocked with an explanation instead of being squeezed unpredictably.

Why page geometry should be validated before rendering

A common barcode-sheet failure is creating a visually attractive browser grid that has no relationship to the physical paper. When printed, labels then drift into the next column, cross a perforation or move off the page. This tool creates page-sized preview sections using the selected dimensions and calculates labels per page before you print.

That calculation cannot control the printer driver. Browser headers and footers, printer scaling, unprintable hardware margins and label-stock tolerances can still change physical alignment. For that reason the correct workflow is always to print one page, compare it with the actual label sheet, scan several symbols, and only then print a large batch.

Customize label text and barcode size

You can show or hide the encoded value, heading and footer. The text size and alignment are configurable, while linear barcode height and QR size have separate controls. The label itself is designed to keep the machine-readable symbol central and to prevent decorative text from becoming more visually important than the identifier.

For very small labels, reduce optional text rather than shrinking the barcode until it becomes unreliable. A call number or short branch code may fit well; a full bibliographic title may be too long for narrow stock. When you need specialized CSS dimensions for Koha label templates, the Koha Label Template Generator can help with a different stage of the layout process.

Using a Koha item export to make replacement labels

A practical use case is printing replacement labels from a Koha item export. If the CSV contains a barcode, title and call number, select the barcode as the encoded field, title as the optional heading and call number as the footer. The default MARC21 item barcode in Koha is associated with 952$p; current Koha documentation describes the barcode value builder as the plugin linked to that field in default MARC21 frameworks. See the official Koha value-builder documentation for the Koha-specific context.

If your source is MARC rather than CSV, use the MARC to Excel Converter first to extract bibliographic or Koha item data into a spreadsheet-friendly format. You can then prepare the columns needed for this sheet generator without manually copying hundreds of identifiers.

Using the sheet generator during migration work

Migrations often expose a mixed set of identifiers: old barcodes that must be preserved, new barcodes for uncatalogued items, accession numbers used as temporary IDs, and exceptional items that require replacement labels. Do not normalize all of those values simply for visual consistency. First decide which identifier is authoritative in the target system, then print that exact value.

The Koha Migration Readiness Checker can help structure the broader migration review. The MARC21 Validator can check record structure and optional Koha 952 item fields, while the Excel to MARC Converter is useful when spreadsheet data must become MARC records. The barcode sheet generator should be the printing step, not the place where unresolved migration rules are silently decided.

Accession numbers, call numbers and barcodes are not automatically the same thing

Libraries sometimes reuse one number for several operational purposes, but barcode, accession number and call number are conceptually different. A barcode is typically a machine-readable item identifier. An accession number records acquisition or register sequence according to local practice. A call number supports shelving and classification. Your institution may choose to make some of them equal, but the printing tool should not assume that relationship.

If you need a controlled accession sequence, use the Accession Number Generator. If you need spine-label formatting around classification and author marks, use the Book Spine Label Generator. If you simply need a visual sheet from identifiers that already exist, stay on this page.

Export the processed label data

After a successful preview, the tool can download the processed rows as UTF-8 CSV, download the barcode values as TXT, or copy the values to the clipboard. The processed CSV includes barcode, heading and footer columns so you have a simple record of what was actually sent to the sheet after duplicate and invalid-row rules were applied.

Keep that output with the source file when labels are part of a migration or inventory project. A dated processed list makes it easier to reproduce a batch, investigate a scanning complaint or identify which labels were intentionally omitted.

Privacy and browser-side processing

The CSV/TXT parsing, duplicate checks, barcode-format validation, page calculations and label preparation are designed to happen in your browser. The source file is not intentionally uploaded to VWS Online as part of this label-generation workflow. This makes the tool practical for operational item identifiers without requiring a server-side import process.

Even with local processing, apply data minimization. Do not include patron names, addresses, card credentials, passwords or unrelated confidential information merely because they exist in the same export. Create a working CSV containing only the columns needed for the label batch.

Common barcode-sheet mistakes

  • Using the sheet generator to invent new identifiers. Create numbering policy elsewhere; use this page to print values that already exist.
  • Choosing EAN-13 or UPC-A for an arbitrary alphanumeric library ID. Use Code 128 or another compatible format instead.
  • Ignoring an invalid check digit. A fixed-length GS1-style value should be corrected at its source, not cosmetically changed at print time.
  • Automatically deleting duplicates. Decide whether duplicate labels are intentional before removing them.
  • Printing before checking page fit. Use the calculated paper geometry and test one physical sheet.
  • Letting visible text differ from the encoded value. Make sure staff know which text is decorative and which value the scanner returns.
  • Putting too much text on small labels. Keep optional headings and footers short enough for the physical stock.
  • Assuming browser preview equals printer output. Printer scaling and hardware margins still require a physical alignment test.

Frequently asked questions about the Library Barcode Sheet Generator

Does this tool generate new sequential library barcode numbers?

No. This tool is primarily for existing identifiers. If you need a new sequential Koha item range, use the Koha Barcode Generator first and then bring the values here when you need more detailed sheet-layout controls.

Can I upload a CSV file and choose the barcode column?

Yes. Upload a CSV, keep the header-row option enabled when appropriate, and select the column that contains the barcode or ID. You can also map optional heading and footer columns for each label.

Can I create QR-code sheets?

Yes. Choose QR Code when your existing value is text, a URL or another identifier better suited to QR. QR batches have an explicit browser limit so the tool does not silently truncate a large job.

Does the tool remove duplicate values?

It reports duplicates and lets you choose. Keep duplicates when you intentionally need multiple physical labels, or choose the remove option when repeated source rows should appear only once.

Does it validate EAN-13 and UPC-A check digits?

Yes. Existing EAN-13, UPC-A and ITF-14 values must have the correct complete length and valid final check digit before the tool renders them.

Which paper sizes can I use?

The page supports A4, US Letter, US Legal and custom paper dimensions, with portrait or landscape orientation, adjustable margins, gaps, columns, rows and label height.

Can I print a title and call number with each barcode?

Yes. With CSV input, map a heading and footer column. You can also provide a static heading or footer that is repeated across labels when the row-specific value is empty.

Are my CSV and TXT files uploaded to VWS Online?

The label-generation workflow is designed to read and process those files in your browser rather than intentionally uploading them to VWS Online for barcode-sheet creation.

Next step

Start with a small representative batch. Confirm the barcode value, selected format, visible text and paper geometry, then print one page and scan several labels with the equipment used at the circulation desk or workroom. Once the physical test is correct, produce the larger sheet. If the identifiers themselves still need to be generated or corrected, solve that upstream with the appropriate VWS Online library tool before committing labels to physical stock.

Continue the workflow

  1. 1Library Barcode Sheet GeneratorComplete and review this result first.
  2. 2MARC21 Record Builderbuild a structured MARC21 bibliographic record and export it in librarian-friendly formats
  3. 3Excel to MARC Converter for Koha Librariesconvert spreadsheet cataloguing data into MARC21 records for Koha and other MARC-based systems
  4. 4MARC21 Validatorvalidate MARC21 record structure, fields, indicators, subfields and optional Koha 952 item data before import or migration