ISBN Barcode Generator

The barcode on the back of a book is an EAN-13 carrying the book's ISBN — the "Bookland EAN". Paste an ISBN-10 or ISBN-13, hyphens or not: the tool verifies its check character, converts ISBN-10s to their 978 ISBN-13 form, shows you every number involved, and only then renders the barcode.

ISBN

ISBN settings

An ISBN-10 or ISBN-13, with or without hyphens. ISBN-10s are converted to ISBN-13.

The check-digit readout appears here once a barcode is generated.

Enter content above to generate a barcode.

Output options

Both presets retain the required quiet zones and must pass the independent decoder before downloads are enabled.

Hiding the text changes only the caption. The bars still encode the same validated value.

For scanning and print, prefer PNG, SVG, PDF, or EPS — JPEG compression can soften bar edges. ZPL downloads as a text file of native printer commands, not an image. Need a different image format? Convert the PNG at fileconverters.ai.

Before print or production use: test the downloaded barcode with your own scanner or scanner app. This tool verifies the mathematics (check digits, character sets) and the rendered bars — it cannot verify your printer's contrast, size, or quiet-zone reproduction.

Guide: the arithmetic behind this page — the mod-11 check and its X, the 978 conversion, and why 979 refuses to convert back — is worked step by step in ISBN-10 and ISBN-13 conversion, one of the site's barcode guides. This page covers what the generator does with what you paste, how to read what it reports, and where it stops.

Bookland: how ISBNs became barcodes

Retail barcodes carry GTINs allocated under GS1 country prefixes — and books got their own fictional country. The prefixes 978 and 979 ("Bookland") are reserved for ISBNs, so any ISBN can live inside the worldwide EAN-13 system without each publisher licensing a GS1 prefix. That is the whole trick: the symbol on a book cover is an ordinary EAN-13 whose first three digits say "this is an ISBN".

What the validator does with what you paste

Nothing is drawn until the input has passed four steps, in a fixed order, in this site's own verification layer; the renderer only ever sees a payload that has already been accepted.

1. Normalise

Spaces and hyphens are removed and a trailing lowercase x becomes X; nothing else is touched. The three cited forms from this site's tests come out as 0-306-40615-2 → 0306406152, 978 0 306 40615 7 → 9780306406157, and 0-8044-2957-x → 080442957X. Hyphen placement carries no information the engine uses, so paste an ISBN exactly as a cover or a catalogue record shows it.

2. Enforce the shape

The rule under the input field is the rule the engine applies: "An ISBN-10 or ISBN-13, with or without hyphens. ISBN-10s are converted to ISBN-13." After normalisation exactly two shapes are accepted — ten characters whose first nine are digits and whose last is a digit or X, or thirteen digits beginning 978 or 979. Anything else is refused with a message that says what was expected. Paste the fictional nine-digit stem 123456780 on its own and the answer is: "Enter a complete ISBN-10 (10 characters, final may be X) or ISBN-13 (13 digits), with or without hyphens." The tool does not complete an unfinished ISBN-10; it verifies finished ones.

3. Compute or verify — and say which

An ISBN-10 is verified against its own mod-11 check character first. Only then is it converted: 978 goes in front of the nine data digits and the EAN-13 check digit is computed from those twelve, so the check digit in the final payload is recorded as computed. An ISBN-13 takes the other path: its final digit is verified against the first twelve with the GTIN mod-10 rule and recorded as verified. A mismatch on either path stops the flow — nothing is repaired, and the renderer is never asked for bars.

4. Report

Every normalisation and conversion is written into the notes shown under the barcode. On the cited ISBN-10 the note reads, verbatim:

ISBN-10 0306406152 verified (check character 2), then converted to ISBN-13 9780306406157: 978 prefix + your 9 data digits + recomputed EAN-13 check digit 7.

On the cited ISBN-13 the notes read:

ISBN-13 9780306406157 verified: the check digit 7 matches its first 12 digits.

Its ISBN-10 form is 0306406152.

Either way the payload handed to the renderer is 9780306406157 in its EAN13 format — a Bookland EAN is drawn as an ordinary EAN-13 — and before the rendered bars are decoded the engine re-derives its check digit once more with the GTIN rule; a disagreement withholds the barcode. This page runs that same cross-check at build time on both cited payloads.

The conversion, worked by this site's engine

ISBN-10 0306406152 (check character 2, verified by the mod-11 rule)

→ ISBN-13 9780306406157: prefix 978 + data digits 030640615 + recomputed EAN-13 check digit 7

Computed at build time by the same tested code that runs in your browser — the page cannot show a conversion the engine would not produce.

The two check systems are genuinely different mathematics. ISBN-10 weights its ten characters 10, 9, 8, … 2, 1 and requires the sum to divide by 11 — that stronger modulus catches every adjacent transposition, at the price of sometimes needing the digit "ten", written X. EAN-13 weights alternate 1 and 3 with a modulus of 10. So when 978 is prefixed, the old check character is dropped and a new one computed; the tool never carries a check digit across the conversion.

On the cited number the engine's verification record reads: data digits 030640615, expected check character 2, supplied 2 — the nine weighted terms sum to 130, which leaves remainder 9 on division by 11. The conversion then discards that character. The twelve data digits 978030640615 go through the GTIN mod-10 rule — the rule the check digit calculator runs over pasted lists — and come out needing 7, giving 9780306406157. The same path on a fictional stem: 123456780 takes the check character 6, making the fictional ISBN-10 1234567806, which converts to 9781234567804. The generator never does that first step for you — it asks for the complete ten characters — but the engine behind it can, and the figure is shown so the arithmetic is visible on a number that is in no catalogue.

The X case, worked

A mod-11 check has eleven possible outcomes and the digits 0–9 cover ten, so the eleventh is written X. It can only be the final character; an X anywhere else fails the shape rule. The cited X example 0-8044-2957-x, typed with a lowercase x, normalises to 080442957X and verifies:

10×0 + 9×8 + 8×0 + 7×4 + 6×4 + 5×2 + 4×9 + 3×5 + 2×7 = 199

199 mod 11 = 1

Check character: (11 − 1) mod 11 = 10, which no single digit can write — so it is written X

Each term comes from a build-time walk-through asserted against the engine's own result; if the two ever disagreed, the build would fail rather than publish.

Converted, it becomes 9780804429573: thirteen digits and no X, because a mod-10 result never exceeds nine. The generator's note for this input:

ISBN-10 080442957X verified (check character X), then converted to ISBN-13 9780804429573: 978 prefix + your 9 data digits + recomputed EAN-13 check digit 3.

Converting back restores the X — 9780804429573 → 080442957X — because the nine data digits are unchanged and the mod-11 rule simply runs again over them.

Both directions, honestly

Every 978 ISBN-13 has an ISBN-10 form, and when you enter one the tool shows it: the cited 9780306406157 comes back as 0306406152, the number the conversion started from. A 979 ISBN-13 has none — the ISBN-10 system predates 979 — and the tool states that instead of manufacturing an invalid number. The methodology states the engine's rule exactly: the reverse direction "exists for 978 ISBNs and is explicitly refused for 979". Here is that refusal on a fictional 979 number whose check digit the engine computed first, so the refusal is about the prefix and not a typo:

Fictional ISBN-13 9791234567896 — accepted by the validator, check digit 6 verified. Its notes:

ISBN-13 9791234567896 verified: the check digit 6 matches its first 12 digits.

979-prefixed ISBNs have no ISBN-10 equivalent.

Asked for its ISBN-10 form, the engine answers: "979-prefixed ISBNs have no ISBN-10 equivalent — only 978 ISBNs convert back."

A 13-digit input that begins with neither 978 nor 979 is not an ISBN at all, and the tool points you to the EAN-13 generator rather than encoding it as a "book". On the widely published sample EAN-13 5901234123457 the message is: "An ISBN-13 starts with 978 or 979 (the Bookland EAN prefixes). This number starts with 590, so it is not an ISBN — use the EAN-13 generator for general retail numbers." The EAN-13 breakdown engine draws the same line, classifying the prefix 978 as "isbn", 979 as "isbn", and 590 as "standard".

How to read the errors

The generator reports two different kinds of thing. A note describes something done to an accepted input — a stripped hyphen, an uppercased x, a conversion, a verified digit. An error means the input was not accepted: the flow stops, no payload exists, and no bars are requested. Errors always name what was expected, because the point is to send you back to the source of the number rather than to hand you a corrected one.

Cited ISBN-10 with its final character changed to 3 — 0306406153:

"ISBN-10 check failed: the final character must be 2, but you entered 3. Check the number for a typo."

Cited ISBN-13 with its final digit changed to 8 — 9780306406158:

"ISBN-13 check failed: the final digit must be 7, but you entered 8. Check the number for a typo."

Cited ISBN-10 with its third and fourth characters swapped — 0360406152 (the mod-11 rule expects 7 at the end, not 2):

"ISBN-10 check failed: the final character must be 7, but you entered 2. Check the number for a typo."

Why no repair? A check character exists to disagree when something else is wrong. In the swapped example every character is one the original contains — only the order of two changed — and the check caught it. Replacing the final character with the one the arithmetic now expects would launder that detectable error into a consistent number for a book that does not exist. A mismatch more often means a typo elsewhere than a wrong check character, so compare the number against its source and paste it again.

Verified before you download it

The arithmetic is only the first half of the check. Once a payload is accepted, the pinned, unmodified JsBarcode library converts it into the EAN-13 module pattern — that is the renderer's job and nothing else is. The site then rasterises the SVG actually shown on the page and asks ZXing, an independent decoding engine, to read those pixels back; if it cannot read the image, or reads a payload other than the one validated, the preview and the download controls stay withheld. The status line under a successful render says both things: that the check digit was computed or verified by this site's arithmetic, and that an independent decode read the same thirteen digits. The PNG is rendered to its own canvas and decoded again before the file is released; the single-barcode PDF translates the rectangles and caption of the decoded SVG into native vector geometry rather than embedding a screenshot. The barcode verifier exposes the same reader for an uploaded image or a camera view, and the methodology page draws the full boundary between the renderer and the verification layer.

Where this tool stops

Math, not optics. Everything above is arithmetic over the characters you typed and a decode of the pixels on your screen. Whether the printed symbol scans depends on contrast, size, substrate, and preserved quiet zones, none of which a browser can certify. A Bookland EAN is an EAN-13, so the figures GS1 member organisations publish for EAN-13 apply: the GS1 Sweden size guide gives quiet zones of 11 module widths on the left and 7 on the right, and a consumer X-dimension range of 0.264–0.660 mm. Beyond those cited figures this site stays qualitative on purpose; a physical production sample must still be scanned.

Symbols, not numbers. Rendering an ISBN barcode does not register an ISBN — that is the role of national ISBN agencies — and a passing check character says only that the number is internally consistent, not that it is assigned to your book. For retail numbers, where allocation is GS1's role, start with Do I need a GS1 barcode?

Deliberate omissions. No EAN-5 price add-on is drawn beside the symbol — the tool generates the main Bookland EAN only and says so — and no ISBN-10 is completed from nine digits: the generator verifies finished ISBNs and converts them; it does not finish them.

Common misreadings

  • "The X means the number is corrupt." It means the mod-11 check came out to ten. 080442957X is a valid ISBN-10; its ISBN-13 form 9780804429573 has no X because a mod-10 check never needs one.
  • "An ISBN-13 is just the ISBN-10 with 978 in front." The nine data digits carry over; the check character does not. 0306406152 ends in 2 and 9780306406157 ends in 7, computed from twelve digits by a different rule.
  • "The tool corrected my number." It never does. Notes record normalisation and conversion of an accepted input; a mismatch is an error that stops the flow.
  • "The check digit passed, so the ISBN is registered." A passing check is a property of arithmetic; registration connects a number to a book, and no generator performs it.
  • "A verified download will scan." Its pixels decoded on screen — the site checked that. Print is a separate question, answered only by scanning a physical sample.

ISBN barcode FAQ

Can I enter an ISBN-10, or do I need the ISBN-13?

Either, with or without hyphens. An ISBN-10 is verified against its own mod-11 check character, then converted: 978 prefix, your nine data digits, and a freshly computed EAN-13 check digit. The tool shows both numbers so you can see exactly what was encoded.

Why did the last digit change during conversion?

Because the two check systems are different. ISBN-10 uses a mod-11 check (which is why some ISBN-10s end in X); EAN-13 uses a mod-10 check over 12 digits including the new 978 prefix. Same book, same core nine digits, different final digit.

What does an X at the end of an ISBN-10 mean?

The mod-11 check can come out to ten, and a single digit cannot say "ten" — so the roman numeral X stands in. Only the final position can be X. Its ISBN-13 form has no X, because mod-10 checks never exceed nine.

Where do ISBNs come from — GS1?

No — ISBNs are issued by national ISBN agencies (in the US, Bowker; in the UK and Ireland, Nielsen). The 978/979 "Bookland" prefixes are how the ISBN system lives inside the EAN numbering space without each publisher needing a GS1 license. You still cannot invent an ISBN: registration is what connects the number to your book in the supply chain.

What about the price add-on barcode next to the ISBN?

Book covers often carry a small 5-digit add-on (EAN-5) encoding the price alongside the main symbol. This tool generates the main Bookland EAN only, and says so rather than approximating the add-on — if your retailer requires one, your printer or distributor will add it.

Why was my 13-digit number refused as "not an ISBN"?

Because an ISBN-13 begins with 978 or 979. A 13-digit number with any other prefix is a general retail EAN-13, and the tool refuses it with a message naming the prefix it found and pointing you to the EAN-13 generator, rather than encoding it as a book. The widely published sample EAN-13 5901234123457, for instance, begins 590 and is refused.

What do "computed" and "verified" mean in the status line under the barcode?

They name how the check digit in the final payload was obtained. From an ISBN-10 it is computed: your mod-11 check character was verified, then a new EAN-13 check digit was computed over 978 plus your nine data digits, so no digit you typed is reused as the check. From an ISBN-13 it is verified: the final digit you typed was tested against the first twelve and passed. The same line then reports that an independent decode of the rendered bars read the same thirteen digits.

Is anything I type sent anywhere?

No. Normalisation, both check calculations, the conversion, the rendering and the independent decode of the rendered bars all run as JavaScript in your browser. Nothing is transmitted or logged, and there is nothing server-side to verify.

Verify before production: test the downloaded barcode with a scanner before it goes on a cover — this tool verifies the arithmetic, not your print run. Everything runs locally in your browser; details on the methodology page.