Thanks! If there's anything you can think of to make it better, please let me know.

One of the reasons I made my own was that the other free ones I tested were all wrong. It's a little technical, and actually rather trivial, but according to the official specs, the widths of the spaces and bars for numerals 1, 2, 7 and 8 are slightly different to the widths of the spaces and bars for the other numerals. The free ones that I tested used the same widths. We're talking a difference of 0.025mm (per module), so it's not like you'd notice, and most bar code scanners don't seem to mind.

Still, I wanted to get it right.

Also, I'm actually generating .svg files, which can then be rasterised as .png at any size and dpi. That helps to make it accurate. Currently, I'm only allowing the download of the .png files.

I'm thinking of providing a simple API as an alternative interface. Something like:

Just tried it, Steve, and that is a knockout generator, extremely impressive. Here's a question about the actual printing of the barcode that it produces.

Your one-unit black bars are the exact same width as the white bars, right? And the two-unit black bars are the same width as the two-unit white bars, and etc. for the three-unit and four-unit bars?

I went through the process of building my own barcode last year in Adobe Illustrator, and I made my black and white bars the same width, which seemed logical. Then I had my first cover printed. When it came back, I noticed that the black bars were wider than the white bars …

Ink spread.

I went back and did another version as a test, reducing the width of the black bars by about 10 percent, so instead of a one-unit black bar being 1 point wide, I made them 0.9 point wide, and the two unit bars would be 1.8 points wide instead of 2 points, the three-unit 2.7 points wide instead of 3 points, and four-unit bars 3.6 points wide instead of 4 points.

Then I printed the cover again at Createspace. It looked much better — the black bars and the white bars seemed to be roughly the same size, judging by eye, and I attributed that to the black ink spreading out a little bit on the slick cover paper stock.

My question is: Should a barcode be built to allow for ink spread? Does that matter?

Or will the barcode reader understand when it calibrates the first couple of bars, it knows how wide a black bar is supposed to be and how wide a white bar is supposed to be, and it gets it right based on that calibration, even if they are slightly different in width due to the ink spread?

In my real-world test in a bookstore with their barcode reader, my "downsized by 10 percent" barcode was read correctly.

You're essentially correct in that the bar and space widths are the same. It's slightly more complicated than that, but as I said, essentially correct. Actually, let me expand on that.

Each digit is encoded into two dark and two light bars (sometimes referred to as bars and spaces). The widths of these bars depends upon the digit, and also on whether or not it's on the right side of the barcode or the left, and if on the left, also dependent on the parity if the ISBN. Forget all that, all it means is that the bars and spaces are not all the same width.

Let's take a 0 on the right-side. It consists of a dark bar of width three modules (I'll explain modules in a moment), then a space of two modules width, a bar one module wide and finall a space one module wide. All digits are encoded seven modules wide, so in this case 3 + 2 + 1 + 1 = 7.

Now, a module is 0.330mm in width (for a 100%, i.e. not scaled, barcode), so the actual widths for this digit in the right side of the barcode is:

B:0.99mm S:0.66mm B:0.33mm S:0.33mm

So in this case, the first black bar is 50% wider than the following space. Since you referred to units, which I take to mean modules, then yes, my one-module black bar is the same width as my one-module space, and so on. I make no allowance for ink spread, but then again, nor should I (apart, perhaps, for the right quiet zone). As an aside, the digits 1, 2, 7 and 8 require slight adjustments to the bar and space widths. I've yet to find a free barcode generator that does this correctly, apart from mine, of course!

The files I generate are as close as possible to the correct specifications in terms of bar and space widths. In the barcode printing industry, Bar Width Adjustment (BWA, and yes, it's an actual technical term) is made by the printing devices and / or software. A Film Master is made, with BWA according to the scale of the barcode and the actual print device. For POD printing, which is what concerns us, so long as the so-called edge-to-edge measurement remains consistent (which it does), then scanners have no problem. They take up to 60 scans, average out the distances, then take samples from the middle of where each bar or space is.

Back in 2010 when I made the first version of my barcode generator, I purchased a cheap scanner:

Great barcode generator! Only minor question, what is the font for the characters?

I am doing my latest book cover in PowerPoint, added a text box with white background above the one I got from you, added human readable price and a category in OCR A Extended. The result looks like a lot of books I've seen where the human readable portion is a different font from the ISBN info. Crown Publishing does it like that. Public Affairs has the nicest barcode block I've seen. Green outline, human readable price block is green background with white characters.

For my price, I only used US (labeled U.S. $15.00) and any sellers can do the conversion themselves.

Sorry, one more related question: if I leave off the price part of the barcode to conform to the CS size requirements,

does this mean that when I go to local bookstores and have them sell the book for me (there are a few already

interested in doing this) that they won't be able to scan the price? What are the real world ramifications of this?Will I be able to sell my book in physical stores? I can print a price on the back cover in regular text, but

I wondered if they need the price to scan through the barcode for this to really work in a real, brick and mortar,