Print barcodes that scan reliably on laser, inkjet, or thermal label printers by choosing the right bar width, bar width reduction, and graphic type.
Printing 100% compliant barcodes from any printer to any label or document will ensure perfect readability. With good quality label printers with built-in barcode support this is usually possible as long as you carefully follow the manufacturer’s quality control directions. But good thermal printers can cost several thousand dollars and are only designed for label printing. What about printing from general purpose printers, such as laser printers? In this case the software used is critical to guarantee perfect barcodes.The guidelines below are based on the industry standard recommendations of the Uniform Code Council for EAN/UPC symbols but the concepts apply equally well to all barcode symbologies.As a user it is important to understand these concepts in selecting the best hardware and software for barcode printing.
These are commonly used printers for barcode labeling. It is most important with this type of printer to make sure that you follow the manufacturer’s recommendations for setting up the printer and testing the barcodes. Direct thermal and thermal transfer printers require specific settings for best results depending on the combination of label and ribbon materials. The manufacturer will supply the directions for the correct adjustment for your printer type.It is also very important to verify barcodes using an ANSI based verifier. This should be done after any change in the label material or any change in the printer or its settings. It should also be done on a regular basis to ensure quality is maintained and when printing a long run.To maintain the quality of printed barcodes the manufacturer’s directions for cleaning the print head and guide surfaces should be followed. It will also be necessary to replace the thermal print head eventually as these wear out. When this happens the barcodes will no longer be readable as one or more of the dot elements will not heat properly.It is so important to verify printed symbols on a regular basis that some thermal printers can be equipped with on-line verifiers.With thermal printers, the quality of the label design software you use will not affect the quality of the printed barcodes. This is because the software is just sending a command to print a barcode – a command that triggers the printer’s internal software to actually generate and print the correct barcode.
General purpose printers, especially laser printers, are excellent for producing barcode labels on sheets of pre-cut labels (such as “Avery” labels) or on continuous feed labels. Obviously, for anyone needing extremely high quantities of barcodes on a daily basis, thermal transfer printers with their high speed would be better, but for many users general purpose printers, especially laser printers, are preferable.Laser printers are also perfect for creating barcodes on documents, such as medical and legal records, coded “mail-merge” letters, etc. Imagesetters, such as Linotronic printers, are used to create high quality, 2540+ dpi, film positives and negatives for commercial printing.With general purpose printers, including laser, desk top, ink jet, ion deposition, dot matrix and imagesetter, the software used is critical to ensuring readable symbols.“There is a wide variety of software packages for creating symbols using general purpose printers. Unfortunately, many of these packages are capable of producing symbols with totally unacceptable quality.”
When specifying the narrow bar (module) width the user should be able to specify an integer multiple of the printer dot width. This is best explained with an example. For a 600dpi printer the actual dot width is 1/609.6* = 0.00164″. The module width should be specified as an integer multiple of printer dots, i.e.8 dots per module gives a width of 13.12 Mils and a Magnification Factor of 100.95%7 dots per module gives a width of 11.48 Mils and a Magnification Factor of 88.33%.(*A 600 dpi printer with an actual 609.6 dpi)Module (bar) width defined as 8 printer dots or 13.12 Mils or a Magnification Factor of 100.95%Module (bar) width defined as 13 Mils or a Magnification Factor of 100%. This is not an Integer number of printer dots. Rounding errors could occur when printing.The easiest way to achieve the correct module width for your printer is to have software that:
Allows you to specify the target printer resolution or finds the resolution for you for the printer you have selected.
Then allows you to specify the module width in “printer dots” (it would already know the “dots per inch”). You would select the number of printer dots that most closely matches the Magnification Factor, or module width in Mils, that you desire. If you wanted 100% magnification an “8 printer dot” width for a 600 dpi printer would be the closest.
The software you select also needs to have an option for “Bar Width Reduction.” This is important when printing to any printer that has “dot spread”. This includes ink jet printers and “wet ink” printers (but not laser printers). For these printers one dot of bar width reduction is recommended per bar width. For instance for a 300 dpi ink jet printer with a module width of 13.12 Mils (4 printer dots per module width) Bar Width Reduction of one dot would be 3.28 Mils or 25%.Bar Width Reduction is also required when barcodes are going to be printed on a commercial (wet ink) press. In this case the artwork containing the barcode is usually output on film from an Image setter. Image setters have resolutions of 2400+ dpi so the required bar width reduction can be specified exactly. The actual amount of reduction required is determined by the paper and ink used and this should be specified by the printer. If printing to a smooth hard surface, such as a glass bottle, Bar Width Gain may be required. Again, you should consult your commercial printer for his recommendations before generating the barcodes.
There are 3 main types of barcode software products:
Barcode Fonts
Bit-map (Raster) Barcode Generators
Vector Barcode Generators
Each is discussed below.
Barcode Fonts
“Barcode fonts have been known to create EAN/UPC symbols with serious design defects. The problems may be caused by the design of the font, an operator input, or a combination of both.”
UCC Guidelines for Providers of EAN/UPC Symbol Design Software, July 1997.“Extreme caution should be used when producing EAN/UPC symbols with barcode fonts.”
The Uniform Code Council does not recommend the use of fonts. As problems it cites in particular the ability to manipulate the size of individual characters (distortion), spacing between the characters (kerning) and the possibility of font or resolution substitution at the output stage. However, there are many other problems with barcode fonts. The user cannot specify the module (bar) width exactly in printer dots. Fonts do not support Bar Width Reduction. Nor do they support many of the features specific to barcode symbols such as Bearer Bars, Quiet Zones, independent symbol height and module (bar) width specification, symbol rotation and support for binary data (including ASCII nulls in Code 128, Code 39, Code 93 and PDF 417). In addition, most fonts do not automatically calculate and add check digits and other security features to barcodes.
Bit-map Barcode Generators
A bit map image is device dependent. This means a bitmap of a one inch square to be printed at 300 dpi would be 300 pixels across by 300 pixels down. If a barcode designed to print one inch square on a 300 dpi printer were printed instead on a 600 dpi printer, the resulting barcode would be ½ inch x ½ inch. This is because there would only be 300×300 pixels in the image instead of 600×600.The other problem with bitmap images is their size. If you are printing to a 200 dpi printer, a one inch square would contain 200 x 200 =40,000 bits of data. This is bad enough, but for a higher resolution printer, such as a common 600 dpi printer, it would be 360,000 bits of data (and 6.5 million bits of data for a 2540 dpi Image setter!!). These huge files not only use large amounts of computer memory they also print extremely slowly.
Vector Barcode Generators
Vector graphics are perfect for defining barcode images. A vector image is a set of drawing commands that precisely defines the edges of each bar and specifies how to fill in the area created within the defined edges.Vector images are completely device independent as they are a set of precise commands instead of a collection of dots. A 1″ x 1″ box will print 1″ by 1″ on a 100, 600 or 2540 dpi printer! When a vector image is sent to a general printer the printer’s software converts it to a raster image so that it can print it. The Raster Image Processor in the Printer converts the precise path commands in the vector graphic into a series of pixels. Hence the exact measurements of the image are influenced by the resolution of the printer. A higher resolution printer will be able to more precisely match the exact measurements of the vector graphic. A lower resolution printer will need to round the dimensions to the nearest integer number of printer dots. This is why it is so important, especially in printers of 600 dpi or less, to specify the module (bar) width in integers of printer dots (see part 1 above).Vector barcode graphics are also much smaller than other barcode graphics so they print many, many times faster. For instance, a typical 1″ high UPC code at 100% magnification would create a 149 KB bitmap for a 600 dpi printer. A Windows Metafile (WMF) vector graphic of this barcode would be 2 KB and an Encapsulated Postscript (EPS) vector graphic with a TIFF preview would be 48 KB and 29 KB without the TIFF preview. Windows Metafiles (WMF) are the best graphic format for barcodes in Windows and EPS in the Mac (Macs do not support WMF graphics).Once the barcode is created by any barcode software it should not be resized, scaled or stretched. If the barcode is to be transferred to a second party, information, such as the minimum printer resolution for that bar width, should be communicated.
As with Thermal Transfer printers, it is important to test the output from General Purpose printers using a barcode verifier. The UCC recommends using the test symbols:0 12345 01234 16 78912 56789 0If they fall below a grade B, check that you have specified a Magnification Factor (or module width) that corresponds to an integer number of printer dots per module (bar) width. Bar Width Reduction may also be required as discussed above.If the user does not have a barcode verifier he can submit the barcodes to a qualified testing organization. If nothing else, at least they should be tested with a barcode reader.
For the complete, in-depth, guidelines please refer to the following Uniform Code Council documents:
UCC Guidelines for Producing Quality Symbols, April 1998
Guidelines for providers of EAN/UPC Symbol Design Software, July 1997
UCC Technical Bulletin #1, April 1997
You can download a FREE demo for TAL’s barcode generating software, B-Coder Pro. Use this to create barcodes in any size and any graphic format. Take the recommendations above to create barcodes as WMF Vector graphics and define the module (bar) width in “Printer Dots”. B-Coder Pro automates barcode production on labels and documents from MS Word, Access, PageMaker and other Windows application programs.
Last modified on November 3, 2026
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"TALtech Support","colors":{"primary":"#0764B9","light":"#0764B9","dark":"#0764B9"},"logo":{"light":"https://mintcdn.com/taltech-bdc45607/x77iB9KQeUuF5CKJ/images/brand/Logo.svg?fit=max\u0026auto=format\u0026n=x77iB9KQeUuF5CKJ\u0026q=85\u0026s=281267d1812ad821819e27a3fc4627a8","dark":"https://mintcdn.com/taltech-bdc45607/x77iB9KQeUuF5CKJ/images/brand/Logo.svg?fit=max\u0026auto=format\u0026n=x77iB9KQeUuF5CKJ\u0026q=85\u0026s=281267d1812ad821819e27a3fc4627a8","href":"/"},"favicon":"https://mintcdn.com/taltech-bdc45607/gxOKhYgaQPS-dWNs/images/TALFavicon.png?fit=max\u0026auto=format\u0026n=gxOKhYgaQPS-dWNs\u0026q=85\u0026s=9775c2f387b2a123e7c3f8e6bcdc7794","background":{"color":{"light":"#fafaf9","dark":"#0c0a09"}},"navbar":{"links":[{"href":"/contact","label":"Contact"},{"href":"https://taltech.com/ordering","label":"Ordering"},{"href":"/about","label":"About"}]},"footer":{"links":[{"header":"Software support","items":[{"label":"WinWedge","href":"/winwedge"},{"label":"TCP-Com","href":"/tcp-com"},{"label":"BC-Wedge","href":"/bc-wedge"},{"label":"HID-ScaleWedge","href":"/hid-scalewedge"},{"label":"B-Coder Pro","href":"/b-coder"},{"label":"Barcode ActiveX","href":"/barcode-activex"}]},{"header":"Resources","items":[{"label":"Trial downloads","href":"https://taltech.com/support-resources/free-trial-downloads"},{"label":"Software Manuals","href":"https://taltech.com/support-resources/software-manuals-brochures"},{"label":"Supplemental files","href":"https://taltech.com/support-resources/utilities-macros-and-supplemental-files"}]},{"header":"Ordering","items":[{"label":"Ordering options","href":"https://taltech.com/ordering"},{"label":"Online store","href":"https://store.taltech.com/"},{"label":"Purchase orders","href":"https://taltech.com/ordering"},{"label":"Guarantee","href":"https://taltech.com/ordering"},{"label":"Resellers","href":"https://taltech.com/ordering"}]},{"header":"About","items":[{"label":"Contact us","href":"/contact"},{"label":"About us","href":"https://taltech.com/about"},{"label":"Ordering","href":"https://taltech.com/ordering"},{"label":"Policies","href":"https://taltech.com/policies"},{"label":"Testimonials","href":"https://taltech.com/testimonials"},{"label":"Clients","href":"https://taltech.com/industries/clients"}]}]},"search":{"prompt":"Search articles…"},"seo":{"indexing":"all"},"fonts":{"family":"Public Sans"},"icons":{"library":"lucide"},"integrations":{"ga4":{"measurementId":"G-B9095B5PL0"}},"banner":{"content":"**Questions?** Call Sales at **(800) 722-6004** or Support at **(215) 496-0222**"},"contextual":{"options":["copy","chatgpt","view","claude","mcp"],"display":"header"},"thumbnails":{"fonts":{"family":"Public Sans"}},"interaction":{"drilldown":false},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Support home","icon":"house","href":"/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"taltech-bdc45607","hasAudioNarration":false,"actualSubdomain":"taltech-bdc45607","customDomains":["support.taltech.com"],"gitSource":{"type":"github","owner":"taltechnologies","repo":"support-site","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea58b5cbdb6f4019025293","collectionId":"2220a919-ff2c-46e9-941f-4c9a1fac66ab","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea58b5cbdb6f4019025293"},"feedback":{"agentFeedback":true},"entitlements":{},"buildId":"6aee232d584f2a80bf024fd2","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Support articles","count":166},{"language":"default","tag":"WinWedge","count":113},{"language":"default","tag":"B-Coder Pro","count":55},{"language":"default","tag":"Advanced articles","count":54},{"language":"default","tag":"Barcode ActiveX \u0026 DLLs","count":42},{"language":"default","tag":"Troubleshooting","count":32},{"language":"default","tag":"Other DDE macros and code examples","count":20},{"language":"default","tag":"TCP-Com","count":19},{"language":"default","tag":"Excel DDE macro examples","count":18},{"language":"default","tag":"Barcode types","count":17}],"searchSettings":{"maxResults":8,"showContentSnippets":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@taltech.com","showHelpButton":true}},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"h1{text-wrap:balance}#content :is(h2,h3,h4,h5,h6){font-weight:650;opacity:0.85}#content .tooltip:has(a[href]){text-decoration:none}#content a:where([href]):not(:where(.card,[href^=\"#\"])){color:var(--support-link-color)}:root{--support-link-color: #09569a;--support-border-color: rgb(0 0 0 / 12%);--support-panel-radius: 12px;--support-raised-fill: linear-gradient(180deg, #f5f6f7 0%, #fff 100%);--support-raised-shadow: 0 0 0 1px rgb(38 49 59 / 14%),\n 0 2px 4px rgb(23 31 38 / 3%),\n 0 8px 24px rgb(23 31 38 / 5%),\n inset 0 1px 0 rgb(255 255 255 / 90%)}.dark{--support-link-color: #84bdfb;--support-border-color: rgb(255 255 255 / 18%);--support-raised-fill: linear-gradient(180deg, #1e2226 0%, #272b2f 100%);--support-raised-shadow: 0 0 0 1px rgb(255 255 255 / 14%),\n 0 2px 4px rgb(0 0 0 / 12%),\n 0 8px 24px rgb(0 0 0 / 18%),\n inset 0 1px 0 rgb(255 255 255 / 5%)}#content :is(.support-start-links a,a.chevron-link){display:inline-block;max-width:100%;border:0;background-image:none;text-decoration:none;font-weight:500}#content :is(.support-start-links a,a.chevron-link)::after{content:\"\\00a0›\";white-space:nowrap;font-size:1.125em;line-height:0;font-weight:400;opacity:0.8}#content :is(.support-start-links a,a.chevron-link):hover{opacity:0.8}#content :is(.support-start-links a,a.chevron-link):focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:2px}.card .not-prose{font-size:1.125rem}.card .prose{margin-top:0.5rem}.article-byline{font-size:0.875em;margin-top:2.5rem}#pagination{display:none}:is(#mobile-nav,#sidebar-content) a[target=\"_blank\"]>div>div:has(>svg){flex:0 0 auto}[data-component-part=\"tooltip-content\"]{max-width:min(20rem, calc(100vw - 2rem))}[data-component-part=\"tooltip-tip\"]{color:#000;font-size:0.875rem;line-height:1.5}.dark [data-component-part=\"tooltip-tip\"]{color:#fff}#page-context-menu button[aria-haspopup=\"menu\"]>svg{width:0.875rem;height:0.875rem;color:#000}.dark #page-context-menu button[aria-haspopup=\"menu\"]>svg{color:#fff}#navbar{--nav-control-fill: rgb(0 0 0 / 3%);--nav-control-hover-fill: rgb(0 0 0 / 10%);--nav-search-outline: rgb(0 0 0 / 14%)}.dark #navbar{--nav-control-fill: rgb(255 255 255 / 3%);--nav-control-hover-fill: rgb(255 255 255 / 10%);--nav-search-outline: rgb(255 255 255 / 14%)}#navbar [data-component-part=\"products-selector-trigger\"]{color:#000;height:36px;padding:8px 14px;background-color:var(--nav-control-fill);border-radius:12px;font-weight:500}#navbar [data-component-part=\"products-selector-trigger\"] svg{color:inherit}.dark #navbar [data-component-part=\"products-selector-trigger\"]{color:#fff}#navbar [data-component-part=\"products-selector-trigger\"]:is(:hover,[aria-expanded=\"true\"]){background-color:var(--nav-control-hover-fill)!important}.accordion-group,details.accordion{border-color:var(--support-border-color)}#search-bar-entry,#search-bar-entry-mobile{min-height:38px;color:#000;background-color:var(--nav-control-fill);border:1px solid var(--nav-search-outline);border-radius:12px;font-weight:500}.article-search-trigger{display:flex;align-items:center;gap:0.75rem;width:100%;margin-bottom:1.5rem;padding:0.75rem 1rem;min-height:44px;color:#26313b;background:var(--support-raised-fill);border:0;border-radius:var(--support-panel-radius);box-shadow:var(--support-raised-shadow);font-size:1rem;font-weight:600;text-align:left;cursor:pointer;transition:box-shadow 160ms ease}.article-search-trigger:hover{box-shadow:0 0 0 1px rgb(38 49 59 / 22%),\n 0 2px 5px rgb(23 31 38 / 4%),\n 0 10px 28px rgb(23 31 38 / 7%),\n inset 0 1px 0 rgb(255 255 255 / 90%)}.article-search-trigger svg{flex-shrink:0}#search-bar-entry-mobile{min-width:38px}#search-bar-entry svg{color:inherit}#search-bar-entry-mobile svg{background-color:currentColor}#search-bar-entry:hover,#search-bar-entry-mobile:hover{background-color:var(--nav-control-hover-fill)}#search-bar-entry:focus-visible,#search-bar-entry-mobile:focus-visible,.article-search-trigger:focus-visible{outline:2px solid #0764b9;outline-offset:3px}.dark #search-bar-entry,.dark #search-bar-entry-mobile{color:#fff;filter:none}.dark .article-search-trigger{color:#f1f4f7}.dark .article-search-trigger:hover{box-shadow:0 0 0 1px rgb(255 255 255 / 22%),\n 0 2px 5px rgb(0 0 0 / 16%),\n 0 10px 28px rgb(0 0 0 / 24%),\n inset 0 1px 0 rgb(255 255 255 / 6%)}.dark #search-bar-entry:focus-visible,.dark #search-bar-entry-mobile:focus-visible,.dark .article-search-trigger:focus-visible{outline-color:#84bdfb}#content-area:has(.product-landing){position:relative}#content-area:has(.product-landing) #header{padding-top:3.5rem}#content-area:has(.product-landing) #header>.prose{margin-top:1rem;text-wrap:balance}#content-area:has(.product-landing) #page-title{max-width:30ch;font-size:clamp(2rem, 3vw, 2.5rem);line-height:1.15;letter-spacing:-0.025em}#content:has(.product-landing){position:static;margin-block-start:2.5rem;margin-block-end:0}#body-content:has(.product-landing) #footer>div{padding-block:4rem}#content .support-home-breadcrumb{position:absolute;display:flex;align-items:center;gap:0.625rem;top:0;inset-inline-start:0;font-size:0.875rem;font-weight:400;text-decoration:none;color:inherit}#content .support-home-breadcrumb a{border:0;background:none;text-decoration:none;font-weight:400;color:inherit}#content .support-home-breadcrumb a:hover{text-decoration:underline}#content .support-home-breadcrumb a::after{display:none}#content .support-home-breadcrumb [aria-hidden]{opacity:0.45}#content .support-home-breadcrumb [aria-current]{color:rgb(var(--gray-600))}.dark #content .support-home-breadcrumb [aria-current]{color:rgb(var(--gray-300))}#body-content:has(.product-landing,.support-home-landing) #sidebar-content{display:none}#body-content:has(.product-landing,.support-home-landing) #content-container{max-width:64rem;padding-inline:1.5rem}#content-area:has(.product-landing) #header::before{content:\"\";display:block;height:88px;margin-bottom:1.5rem;background:var(--support-product-artwork);filter:drop-shadow(0 1px 2px rgb(0 0 0 / 7%)) drop-shadow(0 3px 4px rgb(0 0 0 / 4%))}#content-area:has(.product-landing[data-product=\"winwedge\"]){--support-product-artwork:\n url(\"/images/product-icons/WinWedge.svg\") left bottom / 88px 88px no-repeat,\n url(\"/images/product-icons/WinWedge%20Pro.svg\") 104px bottom / 88px 88px no-repeat,\n url(\"/images/product-icons/TCP-Wedge.svg\") 208px bottom / 56px 56px no-repeat}#content-area:has(.product-landing[data-product=\"tcp-com\"]){--support-product-artwork: url(\"/images/product-icons/TCP-Com.svg\") left bottom / 88px 88px no-repeat}#content-area:has(.product-landing[data-product=\"bc-wedge\"]){--support-product-artwork: url(\"/images/product-icons/BC-Wedge.svg\") left bottom / 88px 88px no-repeat}#content-area:has(.product-landing[data-product=\"hid-scalewedge\"]){--support-product-artwork: url(\"/images/product-icons/HID-ScaleWedge.svg\") left bottom / 88px 88px no-repeat}#content-area:has(.product-landing[data-product=\"b-coder\"]){--support-product-artwork: url(\"/images/product-icons/B-Coder.svg\") left bottom / 88px 88px no-repeat}#content-area:has(.product-landing[data-product=\"barcode-activex\"]){--support-product-artwork: url(\"/images/product-icons/Barcode%20ActiveX.svg\") left bottom / 88px 88px no-repeat}.product-landing{display:none}.support-content-band{--support-band-fill: color-mix(in srgb, rgb(var(--background-light)) 98%, black);margin-top:0;padding-block:2.5rem 4rem;background:var(--support-band-fill);box-shadow:0 0 0 100vmax var(--support-band-fill);clip-path:inset(0 -100vmax)}.dark .support-content-band{--support-band-fill: color-mix(in srgb, rgb(var(--background-dark)) 98%, white)}#content .support-start-block{margin:0 0 3rem;display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%, 15rem), 1fr));gap:2rem;width:100%;max-width:100%;padding:1.5rem;border:0;border-radius:var(--support-panel-radius);background:#fff;box-shadow:var(--support-raised-shadow)}.dark #content .support-start-block{background:rgb(var(--background-dark))}#content .support-content-band>h2{margin:0 0 1rem;font-size:1.5rem;letter-spacing:-0.02em;line-height:1.3}#content .support-content-band>.accordion-group+h3{margin:2.5rem 0 1rem;font-size:1.25rem;letter-spacing:-0.015em;line-height:1.4}#content .support-start-block h3{margin:0 0 0.75rem;font-size:1.125rem;line-height:1.4}#content .support-start-links{display:grid;grid-template-columns:minmax(0, 1fr);gap:0.375rem;line-height:1.5;max-width:40rem;margin:0;padding:0;list-style:none}#content .support-start-links>p{margin:0;padding:0}#content .support-section-description{margin:0 0 1.5rem}#content .support-content-band>.video-collection{margin:0 0 3rem}#content .support-content-band>.article-search-trigger{margin:0 0 1.5rem}#content .support-content-band>.accordion-group{margin-block:0}#content .support-content-band>.accordion-group+.support-contact-panel{margin-block-start:1.5rem}@media (max-width: 639px){.support-content-band{padding-block:2.5rem}#content:has(.product-landing){margin-block-start:2.5rem}#body-content:has(.product-landing) #footer>div{padding-block:2.5rem}#content .support-start-block,#content .support-content-band>.video-collection{margin-block-end:2.5rem}}.support-contact-panel{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 2fr);align-items:center;gap:1.25rem 2rem;margin-top:2rem;padding:1.5rem;border:1px solid var(--support-border-color);border-radius:var(--support-panel-radius);background:rgb(var(--background-light))}.dark .support-contact-panel{background:rgb(var(--background-dark))}#content .support-contact-panel h2{margin:0 0 0.25rem;font-size:1.125rem;line-height:1.4}.support-contact-availability{display:grid;gap:0.25rem;font-size:0.875rem;line-height:1.5}#content .philadelphia-time{font-variant-numeric:tabular-nums}.support-contact-availability .philadelphia-time{color:rgb(var(--gray-600))}.dark .support-contact-availability .philadelphia-time{color:rgb(var(--gray-400))}@media (max-width: 639px){.support-contact-panel{grid-template-columns:minmax(0, 1fr)}}.video-collection{--video-caption-background: #343a40;--video-border: var(--support-border-color);--video-fill: rgb(0 0 0 / 3%);--video-hover: rgb(0 0 0 / 6%);--video-selected: rgb(var(--primary) / 8%);--video-link: rgb(var(--primary));--video-muted: rgb(var(--gray-600));--video-background: rgb(var(--background-light));--video-color-scheme: light;--video-scrollbar: rgb(var(--gray-400));margin:1.25rem 0 2rem}.dark .video-collection{--video-caption-background: #1c2024;--video-fill: rgb(255 255 255 / 3%);--video-hover: rgb(255 255 255 / 7%);--video-selected: rgb(var(--primary) / 18%);--video-link: color-mix(in srgb, rgb(var(--primary)) 55%, rgb(var(--gray-100)));--video-muted: rgb(var(--gray-300));--video-background: rgb(var(--background-dark));--video-color-scheme: dark;--video-scrollbar: rgb(var(--gray-600))}.video-collection-layout{display:grid;grid-template-columns:minmax(15rem, 1fr) minmax(0, 2fr);overflow:hidden;border:1px solid var(--video-border);border-radius:var(--support-panel-radius)}.video-collection-list{display:flex;flex-direction:column;min-height:0;contain:size;background:var(--video-fill);border-right:1px solid var(--video-border)}.video-collection-scroll{min-height:0;overflow-y:auto;mask-image:linear-gradient(to bottom,\n transparent,\n black min(40px, var(--video-overflow-start, 0px)),\n black calc(100% - min(40px, var(--video-overflow-end, 0px))),\n transparent);mask-repeat:no-repeat;scrollbar-width:thin;color-scheme:var(--video-color-scheme);scrollbar-color:var(--video-scrollbar) var(--video-background)}.video-collection-scroll:has(:focus-visible){mask-image:none}.video-collection-list-header{flex-shrink:0;position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;padding:0.75rem 0.875rem;border-bottom:1px solid var(--video-border);background:var(--video-background);color:var(--video-muted);font-size:0.8125rem;font-weight:600}.video-collection-item{flex-shrink:0;display:flex;align-items:center;gap:0.75rem;width:100%;padding:0.875rem;border-bottom:1px solid var(--video-border);text-align:left;color:inherit;cursor:pointer;line-height:1.4}.video-collection-item:last-child{border-bottom:0}.video-collection-item:hover{background:var(--video-hover)}.video-collection-item[aria-pressed=\"true\"]{background:var(--video-selected)}.video-collection-item:focus-visible{position:relative;outline:2px solid var(--video-link);outline-offset:-3px;border-radius:4px}.video-collection-thumbnail{position:relative;display:grid;place-items:center;width:5rem;aspect-ratio:16 / 9;flex-shrink:0;overflow:hidden;border-radius:6px;background:#1c1917;color:#fff}.video-collection-thumbnail img{width:100%;height:100%;object-fit:cover}.video-collection-duration{position:absolute;right:3px;bottom:3px;padding:1px 4px;border-radius:3px;background:rgb(0 0 0 / 80%);color:#fff;font-size:0.75rem;line-height:1.4;font-variant-numeric:tabular-nums}.video-collection-item-title{flex:1;min-width:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:0.875rem;font-weight:500}.video-collection-selected{flex-shrink:0;color:var(--video-muted);font-size:0.625rem;visibility:hidden}.video-collection-item[aria-pressed=\"true\"] .video-collection-selected{visibility:visible}.video-collection-current{min-width:0;background:var(--video-caption-background)}.video-collection-player{display:block;width:100%;aspect-ratio:16 / 9;border:0;background:#000}.video-collection-caption{--support-link-color: #a8d2ff;padding:1rem 1.125rem;color:#f5f7fa}.video-collection-title{margin:0;font-size:1rem;font-weight:600;line-height:1.5}.video-collection-article,.video-collection-all{font-size:0.8125rem;line-height:1.5}.video-collection-article{margin-top:0.5rem}.video-collection-all{margin-top:0.875rem}@media (max-width: 767px){.video-collection-layout{grid-template-columns:minmax(0, 1fr)}.video-collection-list{contain:none;max-height:18rem;border-right:0;border-top:1px solid var(--video-border)}.video-collection-item{padding:0.75rem}.video-collection-thumbnail{width:5.5rem}.video-collection-selected{display:none}}#content a.support-product-link{color:inherit;border:0;text-decoration:none}#content a.support-product-link>span[aria-hidden]{filter:drop-shadow(0 1px 2px rgb(0 0 0 / 7%)) drop-shadow(0 3px 4px rgb(0 0 0 / 4%))}#content a.support-product-link:hover{color:var(--support-link-color)}#content a.support-product-link:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:4px}#content .support-product-subtitle{margin:0.125rem 0 0;line-height:1.35;color:rgb(var(--gray-600))}.dark #content .support-product-subtitle{color:rgb(var(--gray-300))}#content:has(.support-home-landing){margin-block-end:0}#content:has(.support-home-landing)>.support-content-band{margin-block-start:2.5rem}#content:has(.support-home-landing) .support-content-band>h2{margin-block-start:3rem}#body-content:has(.support-home-landing) #footer>div{padding-block:4rem}#content:has(.support-home-landing) .support-content-band>h2:first-child{margin-block-start:0}"}],"page":{"pagePath":"barcode-activex/print-perfect-barcodes-to-any-printer","slug":"/barcode-activex/print-perfect-barcodes-to-any-printer","pageMetadata":{"title":"Print perfect barcodes to any printer","description":"Print barcodes that scan reliably on laser, inkjet, or thermal label printers by choosing the right bar width, bar width reduction, and graphic type.","source_url":"https://www.taltech.com/support/print_perfect_barcodes_to_any_printer/","products":["B-Coder","Barcode ActiveX","Barcode DLLs"],"keywords":["barcode printer dots per module","barcode bar width reduction","print readable barcodes laser inkjet","barcode verifier print quality","vector barcode vs font bitmap"],"href":"/barcode-activex/print-perfect-barcodes-to-any-printer"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Print barcodes that scan reliably on laser, inkjet, or thermal label printers by choosing the right bar width, bar width reduction, and graphic type.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,blockquote:`blockquote`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedImage}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Printing 100% compliant barcodes from any printer to any label or document will ensure perfect readability. With good quality label printers with built-in barcode support this is usually possible as long as you carefully follow the manufacturer’s quality control directions. But good thermal printers can cost several thousand dollars and are only designed for label printing. What about printing from general purpose printers, such as laser printers? In this case the software used is critical to guarantee perfect barcodes.`}),`\n`,_jsx(_components.p,{children:`The guidelines below are based on the industry standard recommendations of the Uniform Code Council for EAN/UPC symbols but the concepts apply equally well to all barcode symbologies.`}),`\n`,_jsx(_components.p,{children:`As a user it is important to understand these concepts in selecting the best hardware and software for barcode printing.`}),`\n`,_jsx(Heading,{level:`3`,id:`thermal-transfer-barcode-label-printers`,children:`Thermal transfer barcode label printers`}),`\n`,_jsx(_components.p,{children:`These are commonly used printers for barcode labeling. It is most important with this type of printer to make sure that you follow the manufacturer’s recommendations for setting up the printer and testing the barcodes. Direct thermal and thermal transfer printers require specific settings for best results depending on the combination of label and ribbon materials. The manufacturer will supply the directions for the correct adjustment for your printer type.`}),`\n`,_jsx(_components.p,{children:`It is also very important to verify barcodes using an ANSI based verifier. This should be done after any change in the label material or any change in the printer or its settings. It should also be done on a regular basis to ensure quality is maintained and when printing a long run.`}),`\n`,_jsx(_components.p,{children:`To maintain the quality of printed barcodes the manufacturer’s directions for cleaning the print head and guide surfaces should be followed. It will also be necessary to replace the thermal print head eventually as these wear out. When this happens the barcodes will no longer be readable as one or more of the dot elements will not heat properly.`}),`\n`,_jsx(_components.p,{children:`It is so important to verify printed symbols on a regular basis that some thermal printers can be equipped with on-line verifiers.`}),`\n`,_jsx(_components.p,{children:`With thermal printers, the quality of the label design software you use will not affect the quality of the printed barcodes. This is because the software is just sending a command to print a barcode – a command that triggers the printer’s internal software to actually generate and print the correct barcode.`}),`\n`,_jsx(Heading,{level:`3`,id:`general-purpose-printers`,children:`General purpose printers`}),`\n`,_jsx(_components.p,{children:`General purpose printers, especially laser printers, are excellent for producing barcode labels on sheets of pre-cut labels (such as “Avery” labels) or on continuous feed labels. Obviously, for anyone needing extremely high quantities of barcodes on a daily basis, thermal transfer printers with their high speed would be better, but for many users general purpose printers, especially laser printers, are preferable.`}),`\n`,_jsx(_components.p,{children:`Laser printers are also perfect for creating barcodes on documents, such as medical and legal records, coded “mail-merge” letters, etc. Imagesetters, such as Linotronic printers, are used to create high quality, 2540+ dpi, film positives and negatives for commercial printing.`}),`\n`,_jsx(_components.p,{children:`With general purpose printers, including laser, desk top, ink jet, ion deposition, dot matrix and imagesetter, the software used is critical to ensuring readable symbols.`}),`\n`,_jsx(_components.p,{children:`“There is a wide variety of software packages for creating symbols using general purpose printers. Unfortunately, many of these packages are capable of producing symbols with totally unacceptable quality.”`}),`\n`,_jsx(Heading,{level:`3`,id:`ucc-guidelines-for-producing-quality-symbols-april-1998`,children:`UCC guidelines for producing quality symbols, April 1998`}),`\n`,_jsx(_components.p,{children:`The software used should be able to satisfy the following requirements:`}),`\n`,_jsx(Heading,{level:`4`,id:`dots-per-bar-width`,children:`Dots per bar width`}),`\n`,_jsx(_components.p,{children:`When specifying the narrow bar (module) width the user should be able to specify an integer multiple of the printer dot width. This is best explained with an example. For a 600dpi printer the actual dot width is 1/609.6* = 0.00164″. The module width should be specified as an integer multiple of printer dots, i.e.`}),`\n`,_jsx(_components.p,{children:`8 dots per module gives a width of 13.12 Mils and a Magnification Factor of 100.95%`}),`\n`,_jsx(_components.p,{children:`7 dots per module gives a width of 11.48 Mils and a Magnification Factor of 88.33%.`}),`\n`,_jsx(_components.p,{children:`(*A 600 dpi printer with an actual 609.6 dpi)`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/taltech-bdc45607/EjQcUno1Qb-6jNfg/images/print-bc3.gif?s=2586dc270bd0473c2429b56ab167df11`,alt:``,\"data-og-width\":`200`,width:`200`,\"data-og-height\":`76`,height:`76`,\"data-path\":`images/print-bc3.gif`,\"data-optimize\":`true`,\"data-opv\":`3`}),`\n`,_jsx(_components.p,{children:`Module (bar) width defined as 8 printer dots or 13.12 Mils or a Magnification Factor of 100.95%`}),`\n`,_jsx(_components.p,{children:`Module (bar) width defined as 13 Mils or a Magnification Factor of 100%. This is not an Integer number of printer dots. Rounding errors could occur when printing.`}),`\n`,_jsx(_components.p,{children:`The easiest way to achieve the correct module width for your printer is to have software that:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Allows you to specify the target printer resolution or finds the resolution for you for the printer you have selected.`}),`\n`,_jsx(_components.li,{children:`Then allows you to specify the module width in “printer dots” (it would already know the “dots per inch”). You would select the number of printer dots that most closely matches the Magnification Factor, or module width in Mils, that you desire. If you wanted 100% magnification an “8 printer dot” width for a 600 dpi printer would be the closest.`}),`\n`]}),`\n`,_jsx(Heading,{level:`4`,id:`bar-width-reduction`,children:`Bar width reduction`}),`\n`,_jsx(_components.p,{children:`The software you select also needs to have an option for “Bar Width Reduction.” This is important when printing to any printer that has “dot spread”. This includes ink jet printers and “wet ink” printers (but not laser printers). For these printers one dot of bar width reduction is recommended per bar width. For instance for a 300 dpi ink jet printer with a module width of 13.12 Mils (4 printer dots per module width) Bar Width Reduction of one dot would be 3.28 Mils or 25%.`}),`\n`,_jsx(_components.p,{children:`Bar Width Reduction is also required when barcodes are going to be printed on a commercial (wet ink) press. In this case the artwork containing the barcode is usually output on film from an Image setter. Image setters have resolutions of 2400+ dpi so the required bar width reduction can be specified exactly. The actual amount of reduction required is determined by the paper and ink used and this should be specified by the printer. If printing to a smooth hard surface, such as a glass bottle, Bar Width Gain may be required. Again, you should consult your commercial printer for his recommendations before generating the barcodes.`}),`\n`,_jsx(Heading,{level:`4`,id:`barcode-graphic-type`,children:`Barcode graphic type`}),`\n`,_jsx(_components.p,{children:`There are 3 main types of barcode software products:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Barcode Fonts`}),`\n`,_jsx(_components.li,{children:`Bit-map (Raster) Barcode Generators`}),`\n`,_jsx(_components.li,{children:`Vector Barcode Generators`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Each is discussed below.`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Barcode Fonts`})}),`\n`]}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsx(_components.p,{children:`“Barcode fonts have been known to create EAN/UPC symbols with serious design defects. The problems may be caused by the design of the font, an operator input, or a combination of both.”`}),`\n`]}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsx(_components.p,{children:`UCC Guidelines for Providers of EAN/UPC Symbol Design Software, July 1997.`}),`\n`,_jsx(_components.p,{children:`“Extreme caution should be used when producing EAN/UPC symbols with barcode fonts.”`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`http://www.uc-council.org/`,children:`The Uniform Code Council`}),`\\xA0does not recommend the use of fonts. As problems it cites in particular the ability to manipulate the size of individual characters (distortion), spacing between the characters (kerning) and the possibility of font or resolution substitution at the output stage. However, there are many other problems with barcode fonts. The user cannot specify the module (bar) width exactly in printer dots. Fonts do not support Bar Width Reduction. Nor do they support many of the features specific to barcode symbols such as Bearer Bars, Quiet Zones, independent symbol height and module (bar) width specification, symbol rotation and support for binary data (including ASCII nulls in Code 128, Code 39, Code 93 and PDF 417). In addition, most fonts do not automatically calculate and add check digits and other security features to barcodes.`]}),`\n`,_jsxs(_components.ol,{start:`2`,children:[`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Bit-map Barcode Generators`})}),`\n`]}),`\n`,_jsx(_components.p,{children:`A bit map image is device dependent. This means a bitmap of a one inch square to be printed at 300 dpi would be 300 pixels across by 300 pixels down. If a barcode designed to print one inch square on a 300 dpi printer were printed instead on a 600 dpi printer, the resulting barcode would be ½ inch x ½ inch. This is because there would only be 300×300 pixels in the image instead of 600×600.`}),`\n`,_jsx(_components.p,{children:`The other problem with bitmap images is their size. If you are printing to a 200 dpi printer, a one inch square would contain 200 x 200 =40,000 bits of data. This is bad enough, but for a higher resolution printer, such as a common 600 dpi printer, it would be 360,000 bits of data (and 6.5 million bits of data for a 2540 dpi Image setter!!). These huge files not only use large amounts of computer memory they also print extremely slowly.`}),`\n`,_jsxs(_components.ol,{start:`3`,children:[`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Vector Barcode Generators`})}),`\n`]}),`\n`,_jsx(_components.p,{children:`Vector graphics are perfect for defining barcode images. A vector image is a set of drawing commands that precisely defines the edges of each bar and specifies how to fill in the area created within the defined edges.`}),`\n`,_jsx(_components.p,{children:`Vector images are completely device independent as they are a set of precise commands instead of a collection of dots. A 1″ x 1″ box will print 1″ by 1″ on a 100, 600 or 2540 dpi printer! When a vector image is sent to a general printer the printer’s software converts it to a raster image so that it can print it. The Raster Image Processor in the Printer converts the precise path commands in the vector graphic into a series of pixels. Hence the exact measurements of the image are influenced by the resolution of the printer. A higher resolution printer will be able to more precisely match the exact measurements of the vector graphic. A lower resolution printer will need to round the dimensions to the nearest integer number of printer dots. This is why it is so important, especially in printers of 600 dpi or less, to specify the module (bar) width in integers of printer dots (see part 1 above).`}),`\n`,_jsx(_components.p,{children:`Vector barcode graphics are also much smaller than other barcode graphics so they print many, many times faster. For instance, a typical 1″ high UPC code at 100% magnification would create a 149 KB bitmap for a 600 dpi printer. A Windows Metafile (WMF) vector graphic of this barcode would be 2 KB and an Encapsulated Postscript (EPS) vector graphic with a TIFF preview would be 48 KB and 29 KB without the TIFF preview. Windows Metafiles (WMF) are the best graphic format for barcodes in Windows and EPS in the Mac (Macs do not support WMF graphics).`}),`\n`,_jsx(_components.p,{children:`Once the barcode is created by any barcode software it should not be resized, scaled or stretched. If the barcode is to be transferred to a second party, information, such as the minimum printer resolution for that bar width, should be communicated.`}),`\n`,_jsx(Heading,{level:`4`,id:`barcode-verification`,children:`Barcode verification`}),`\n`,_jsx(_components.p,{children:`As with Thermal Transfer printers, it is important to test the output from General Purpose printers using a barcode verifier. The UCC recommends using the test symbols:`}),`\n`,_jsx(_components.p,{children:`0 12345 01234 1`}),`\n`,_jsx(_components.p,{children:`6 78912 56789 0`}),`\n`,_jsx(_components.p,{children:`If they fall below a grade B, check that you have specified a Magnification Factor (or module width) that corresponds to an integer number of printer dots per module (bar) width. Bar Width Reduction may also be required as discussed above.`}),`\n`,_jsx(_components.p,{children:`If the user does not have a barcode verifier he can submit the barcodes to a qualified testing organization. If nothing else, at least they should be tested with a barcode reader.`}),`\n`,_jsx(Heading,{level:`4`,id:`further-information`,children:`Further information`}),`\n`,_jsx(_components.p,{children:`For the complete, in-depth, guidelines please refer to the following Uniform Code Council documents:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`UCC Guidelines for Producing Quality Symbols, April 1998`}),`\n`,_jsx(_components.li,{children:`Guidelines for providers of EAN/UPC Symbol Design Software, July 1997`}),`\n`,_jsx(_components.li,{children:`UCC Technical Bulletin #1, April 1997`}),`\n`]}),`\n`,_jsx(_components.p,{children:`You can download a FREE demo for TAL’s barcode generating software, B-Coder Pro. Use this to create barcodes in any size and any graphic format. Take the recommendations above to create barcodes as WMF Vector graphics and define the module (bar) width in “Printer Dots”. B-Coder Pro automates barcode production on labels and documents from MS Word, Access, PageMaker and other Windows application programs.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Print perfect barcodes to any printer","description":"Print barcodes that scan reliably on laser, inkjet, or thermal label printers by choosing the right bar width, bar width reduction, and graphic type.","source_url":"https://www.taltech.com/support/print_perfect_barcodes_to_any_printer/","products":["B-Coder","Barcode ActiveX","Barcode DLLs"],"keywords":["barcode printer dots per module","barcode bar width reduction","print readable barcodes laser inkjet","barcode verifier print quality","vector barcode vs font bitmap"],"href":"/barcode-activex/print-perfect-barcodes-to-any-printer"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Thermal transfer barcode label printers","slug":"thermal-transfer-barcode-label-printers","depth":3,"children":[]},{"title":"General purpose printers","slug":"general-purpose-printers","depth":3,"children":[]},{"title":"UCC guidelines for producing quality symbols, April 1998","slug":"ucc-guidelines-for-producing-quality-symbols-april-1998","depth":3,"children":[]},{"title":"Dots per bar width","slug":"dots-per-bar-width","depth":4,"children":[]},{"title":"Bar width reduction","slug":"bar-width-reduction","depth":4,"children":[]},{"title":"Barcode graphic type","slug":"barcode-graphic-type","depth":4,"children":[]},{"title":"Barcode verification","slug":"barcode-verification","depth":4,"children":[]},{"title":"Further information","slug":"further-information","depth":4,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/taltech-bdc45607/eec41a6a835842e1/search.js"],"subdomain":"taltech-bdc45607","siteName":"TALtech Support","title":"Print perfect barcodes to any printer - TALtech Support","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T21:57:23.375Z","gitLastModified":"2026-11-03T21:57:05.000Z","originalFileLocation":"barcode-activex/print-perfect-barcodes-to-any-printer.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Print barcodes that scan reliably on laser, inkjet, or thermal label printers by choosing the right bar width, bar width reduction, and graphic type.\">\u003cmeta data-mint-head name=\"application-name\" content=\"TALtech Support\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/taltech-bdc45607/YFqszPMCzxP0Sxv6/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/taltech-bdc45607/YFqszPMCzxP0Sxv6/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/taltech-bdc45607/YFqszPMCzxP0Sxv6/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/taltech-bdc45607/YFqszPMCzxP0Sxv6/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/taltech-bdc45607/YFqszPMCzxP0Sxv6/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/taltech-bdc45607/YFqszPMCzxP0Sxv6/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/taltech-bdc45607/YFqszPMCzxP0Sxv6/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/taltech-bdc45607/YFqszPMCzxP0Sxv6/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/taltech-bdc45607/YFqszPMCzxP0Sxv6/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Print perfect barcodes to any printer - TALtech Support\">\u003cmeta data-mint-head property=\"og:description\" content=\"Print barcodes that scan reliably on laser, inkjet, or thermal label printers by choosing the right bar width, bar width reduction, and graphic type.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"TALtech Support\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://support.taltech.com/barcode-activex/print-perfect-barcodes-to-any-printer\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://taltech-bdc45607.mintlify.site/_mintlify/api/og/v2?division=Barcode+concepts\u0026amp;title=Print+perfect+barcodes+to+any+printer\u0026amp;description=Print+barcodes+that+scan+reliably+on+laser%2C+inkjet%2C+or+thermal+label+printers+by+choosing+the+right+bar+width%2C+bar+width+reduction%2C+and+graphic+type.\u0026amp;theme=f8e61b9561bcdbc21b6abc28\u0026amp;signature=664ccd61d23b991b1b1f6d365ba2385a0bdc3b195335778b47edc372a2ccfb96\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Print perfect barcodes to any printer - TALtech Support\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Print barcodes that scan reliably on laser, inkjet, or thermal label printers by choosing the right bar width, bar width reduction, and graphic type.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://taltech-bdc45607.mintlify.site/_mintlify/api/og/v2?division=Barcode+concepts\u0026amp;title=Print+perfect+barcodes+to+any+printer\u0026amp;description=Print+barcodes+that+scan+reliably+on+laser%2C+inkjet%2C+or+thermal+label+printers+by+choosing+the+right+bar+width%2C+bar+width+reduction%2C+and+graphic+type.\u0026amp;theme=f8e61b9561bcdbc21b6abc28\u0026amp;signature=664ccd61d23b991b1b1f6d365ba2385a0bdc3b195335778b47edc372a2ccfb96\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/taltech-bdc45607/YFqszPMCzxP0Sxv6/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"TALtech Support\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0764B9\">\u003clink data-mint-head rel=\"canonical\" href=\"https://support.taltech.com/barcode-activex/print-perfect-barcodes-to-any-printer\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/barcode-activex/print-perfect-barcodes-to-any-printer.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://support.taltech.com/#organization\",\"name\":\"TALtech Support\",\"url\":\"https://support.taltech.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/taltech-bdc45607/x77iB9KQeUuF5CKJ/images/brand/Logo.svg?fit=max\u0026auto=format\u0026n=x77iB9KQeUuF5CKJ\u0026q=85\u0026s=281267d1812ad821819e27a3fc4627a8\"}},{\"@type\":\"WebSite\",\"@id\":\"https://support.taltech.com#website\",\"name\":\"TALtech Support\",\"url\":\"https://support.taltech.com\",\"publisher\":{\"@id\":\"https://support.taltech.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://support.taltech.com/barcode-activex/print-perfect-barcodes-to-any-printer#webpage\",\"url\":\"https://support.taltech.com/barcode-activex/print-perfect-barcodes-to-any-printer\",\"name\":\"Print perfect barcodes to any printer\",\"description\":\"Print barcodes that scan reliably on laser, inkjet, or thermal label printers by choosing the right bar width, bar width reduction, and graphic type.\",\"dateModified\":\"2026-11-03T21:57:05.000Z\",\"isPartOf\":{\"@id\":\"https://support.taltech.com#website\"},\"breadcrumb\":{\"@id\":\"https://support.taltech.com/barcode-activex/print-perfect-barcodes-to-any-printer#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://support.taltech.com/barcode-activex/print-perfect-barcodes-to-any-printer#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Support articles\",\"item\":\"https://support.taltech.com/barcode-activex/what-is-barcode-activex\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Barcode concepts\",\"item\":\"https://support.taltech.com/barcode-activex/barcode-basics\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Print perfect barcodes to any printer\",\"item\":\"https://support.taltech.com/barcode-activex/print-perfect-barcodes-to-any-printer\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://support.taltech.com/barcode-activex/print-perfect-barcodes-to-any-printer#article\",\"headline\":\"Print perfect barcodes to any printer\",\"name\":\"Print perfect barcodes to any printer\",\"description\":\"Print barcodes that scan reliably on laser, inkjet, or thermal label printers by choosing the right bar width, bar width reduction, and graphic type.\",\"url\":\"https://support.taltech.com/barcode-activex/print-perfect-barcodes-to-any-printer\",\"mainEntityOfPage\":{\"@id\":\"https://support.taltech.com/barcode-activex/print-perfect-barcodes-to-any-printer#webpage\"},\"dateModified\":\"2026-11-03T21:57:05.000Z\",\"keywords\":\"barcode printer dots per module, barcode bar width reduction, print readable barcodes laser inkjet, barcode verifier print quality, vector barcode vs font bitmap\",\"publisher\":{\"@id\":\"https://support.taltech.com/#organization\"},\"isPartOf\":{\"@id\":\"https://support.taltech.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"TALtech Support\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"TALtech Support","nav":{"global":{"anchors":[{"anchor":"Support home","icon":"house","href":"/"}]},"products":[{"product":"Support home","icon":"life-buoy","color":{"light":"#0F52BA","dark":"#3271D0"},"pages":[{"title":"Support home","href":""}]},{"product":"WinWedge","icon":"https://mintlify.s3.us-west-1.amazonaws.com/taltech-bdc45607/images/product-icons/WinWedge.svg","color":{"light":"#a38915","dark":"#a38915"},"pages":[{"title":"WinWedge","href":"/winwedge"}]},{"product":"HID-ScaleWedge","icon":"https://mintlify.s3.us-west-1.amazonaws.com/taltech-bdc45607/images/product-icons/HID-ScaleWedge.svg","pages":[{"title":"HID-ScaleWedge","href":"/hid-scalewedge"}]},{"product":"BC-Wedge","icon":"https://mintlify.s3.us-west-1.amazonaws.com/taltech-bdc45607/images/product-icons/BC-Wedge.svg","pages":[{"title":"BC-Wedge","href":"/bc-wedge"}]},{"product":"TCP-Com","icon":"https://mintlify.s3.us-west-1.amazonaws.com/taltech-bdc45607/images/product-icons/TCP-Com.svg","pages":[{"title":"TCP-Com","href":"/tcp-com"}]},{"product":"B-Coder Pro","icon":"https://mintlify.s3.us-west-1.amazonaws.com/taltech-bdc45607/images/product-icons/B-Coder.svg","pages":[{"title":"B-Coder Pro","href":"/b-coder"}]},{"product":"Barcode ActiveX \u0026 DLLs","icon":"https://mintlify.s3.us-west-1.amazonaws.com/taltech-bdc45607/images/product-icons/Barcode%20ActiveX.svg","pages":[{"title":"Barcode ActiveX \u0026 DLLs support","sidebarTitle":"Barcode ActiveX \u0026 DLLs support home","mode":"center","href":"/barcode-activex"},{"group":"Support articles","pages":[{"group":"Getting started","expanded":false,"pages":[{"title":"What is Barcode ActiveX?","href":"/barcode-activex/what-is-barcode-activex"}]},{"group":"Barcode ActiveX integration","boost":2,"expanded":false,"pages":[{"title":"Set up Barcode ActiveX in Microsoft Access","sidebarTitle":"Add barcode printing to Microsoft Access","href":"/barcode-activex/add-barcode-printing-to-microsoft-access"},{"title":"Example for using Barcode ActiveX with Excel","href":"/barcode-activex/example-for-using-barcode-activex-with-excel"},{"title":"Online barcoding: client side overview","href":"/barcode-activex/online-barcoding-client-side-overview"},{"title":"Host an ActiveX control in Visual Studio 2010 WPF app","href":"/barcode-activex/activex-wpf-vs-2010"},{"title":"Barcode ActiveX demonstration in Access","href":"/barcode-activex/barcode-activex-demonstration-in-access-2010"},{"title":"Barcode ActiveX demonstration in Access 2003","href":"/barcode-activex/barcode-activex-demonstration"},{"title":"Barcode ActiveX Microsoft Word add-ins","href":"/barcode-activex/barcode-activex-microsoft-word-add-ins"},{"title":"Centering and sizing barcodes in a Microsoft Access report","href":"/barcode-activex/centering-and-sizing-access"},{"title":"Convert an Access field in a table to barcodes","href":"/barcode-activex/convert-an-access-field-in-a-table-to-barcodes"},{"title":"Create coupon code barcodes","href":"/barcode-activex/create-coupon-code-barcodes"},{"title":"How to skip used mailing labels and print duplicates","href":"/barcode-activex/skip-used-mailing-labels-and-print-duplicates"}]},{"group":"Web servers and scripting","boost":2,"expanded":false,"pages":[{"title":"Barcode ActiveX control server side installation notes","href":"/barcode-activex/barcode-activex-control-server-side-installation-notes"},{"title":"Basic Windows Script Host example for Barcode ActiveX","href":"/barcode-activex/basic-windows-script-host-example-for-barcode-activex"},{"title":"Configure a Web server for Perl / CGI scripting","href":"/barcode-activex/configure-a-web-server-for-scripting"},{"title":"HTML form code for ActiveX Plus when using a Perl CGI script","href":"/barcode-activex/html-form-code-for-activex-plus-when-using-a-perl-cgi-script"},{"title":"Introduction to Windows Script Host","href":"/barcode-activex/introduction-to-windows-script-host"},{"title":"Online barcoding: server side overview","href":"/barcode-activex/online-barcoding-server-side-overview"},{"title":"Using Barcode ActiveX Plus with a Perl CGI script","href":"/barcode-activex/using-barcode-activex-plus-with-a-perl-cgi-script"}]},{"group":"Troubleshooting","boost":2,"expanded":false,"pages":[{"title":"Barcode ActiveX error: “unable to load DLL file”","href":"/barcode-activex/barcode-activex-error-unable-to-load-dll-file"},{"title":"Tips for printing barcodes to a low-resolution printer","href":"/barcode-activex/barcodes-are-unreadable-when-i-print-to-a-low-resoluton-printer"},{"title":"Duplicate message when concatenating into the comment property in Access","href":"/barcode-activex/duplicate-message-when-concatenating-into-the-comment-property-in-access"},{"title":"Issue compiling project on a 64-bit machine using Visual Studio","href":"/barcode-activex/issue-compiling-project-on-a-64-bit-machine-using-visual-studio"},{"title":"Troubleshooting the ActiveX control and Active Server Pages","href":"/barcode-activex/troubleshooting-the-activex-control-and-active-server-pages"},{"title":"Application throws an error on Windows 7 “unable to get the window handle…”","href":"/barcode-activex/windowless-activex-controls-are-not-supported"}]},{"group":"Barcode concepts","expanded":false,"pages":[{"title":"Barcode basics","href":"/barcode-activex/barcode-basics"},{"title":"Barcode symbologies","href":"/barcode-activex/barcode-symbologies"},{"title":"Raster vs vector images and how they relate to barcodes","description":"Learn why vector formats like WMF and EPS make better barcodes than bitmaps or barcode fonts, and which B-Coder Pro file format to use in Windows, on a Mac, or on the web.","href":"/barcode-activex/raster-vs-vector-images-and-how-they-relate-to-barcodes"},{"title":"Print perfect barcodes to any printer","href":"/barcode-activex/print-perfect-barcodes-to-any-printer"},{"title":"How a barcode reader works","description":"Learn how the main types of barcode readers work and how they send scanned data to your PC, so you can choose the right setup.","href":"/barcode-activex/how-barcode-reader-works"},{"title":"Produce high quality raster images with Barcode ActiveX","href":"/barcode-activex/produce-high-quality-raster-images-with-barcode-activex"},{"title":"Which barcode software is right for me?","href":"/barcode-activex/which-barcode-software"}]}]},{"group":"Legacy articles","boost":0.3,"expanded":false,"pages":[{"title":"Text appears inside the bars in Office 2000","href":"/barcode-activex/text-appears-inside-the-bars-in-office-2000-on-windows-2000-xp"},{"title":"Adding control to VB6’s toolbox throws error “object library not registered”","href":"/barcode-activex/adding-control-to-vb6s-toolbox-throws-error-object-library-not-registered"},{"title":"Generating compressed or uncompressed GIF files with Barcode ActiveX","href":"/barcode-activex/generating-compressed-or-uncompressed-gif-files-with-barcode-activex"},{"title":"Creating Web-friendly barcodes (LZW GIF compression)","href":"/barcode-activex/creating-web-friendly-barcodes-lzw-gif-compression"}]},{"group":"Resources","boost":0.5,"expanded":false,"pages":[{"title":"Trial downloads","url":"https://taltech.com/support-resources/free-trial-downloads","href":"/external/trial-downloads"},{"title":"Manuals and brochures","url":"https://taltech.com/support-resources/software-manuals-brochures","href":"/external/manuals"},{"title":"Online orders","url":"https://store.taltech.com/myaccount","href":"/external/store-account"},{"title":"Order and licensing info","url":"https://taltech.com/ordering","href":"/external/ordering"},{"title":"TALtech main site","url":"https://taltech.com","href":"/external/main-site"}]}]}]},"basePath":"","title":"Print perfect barcodes to any printer - TALtech Support","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["10e4515597","a74be98ba7"],"chunks":["BannerMarkdown-BcDCEkh6.js","dist-CwjSCXIK.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-eKJ4rcii.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","zoom-image-lightbox-DMoL6lHz.js","lightbox-handle-r17bVUz3.js"]}