Skip to content

Gratis barcodegenerator — EAN-13, UPC-A & Code 128

Genereer EAN-13, UPC-A, Code 128, Code 39 en 11 andere soorten barcodes als SVG of afdrukklare PNG. Typ 12 cijfers; het controlecijfer wordt aangevuld. Is er één fout, dan noemen we het cijfer dat het moet zijn.

Geen tracking Draait in je browser Gratis
Barcodes worden getekend in je browser. Er wordt niets geüpload.

Uiterlijk & afdrukgrootte

Batch genereren (één waarde per regel)

Regels die de validatie niet doorstaan, staan met hun reden vermeld in skipped.txt in de ZIP.

Een barcode die in de retail moet scannen, heeft een door GS1 uitgegeven bedrijfsprefix nodig. Deze tool tekent de afbeelding; hij wijst geen nummers toe. Interne labels hebben geen registratie nodig.

Elk getal op deze pagina is eerst berekend en daarna twee keer gecontroleerd. De controlecijfers zijn geverifieerd tegen echte gepubliceerde barcodes — de ISBN-13 van een gedrukt studieboek, een Coca-Cola-blikje van 330 ml, en de referentievoorbeelden voor UPC-A en EAN-8 — en onafhankelijk tegen de eigen berekening van de encoder. De aantallen modules van Code 128 komen uit een formule die sample voor sample tegen de gerenderde uitvoer is getest, en zo is ook de straf voor een oneven aantal cijfers ontdekt. De bewering dat GS1-prefixen niet het land van herkomst aangeven, is het eigen gepubliceerde standpunt van GS1. — Go Tools Engineering · Sep 24, 2026

Geschreven en beoordeeld door de ontwikkelaars die de encoderingstools van Go Tools bouwen. De aantallen modules, de rekensom van het controlecijfer en het gedrag van de encoder die hier worden beschreven, zijn gemeten tegen een draaiende engine in plaats van overgenomen uit andermans samenvattingen.

Snelle antwoorden

Mag ik een product verkopen met een barcode die hier is gegenereerd?

Alleen als het nummer aan jou is uitgegeven. De afbeelding die deze pagina tekent is correct en zal scannen, maar het *nummer* erin moet je hebben toegewezen gekregen door een GS1-lidorganisatie voordat het systeem van een retailer het accepteert. Een nummer verzinnen dat begint met een geregistreerd prefix riskeert een botsing met een nummer dat al aan iemand anders is toegewezen. Interne labels — schappen, bakken, activa, werkbonnen — hebben geen toewijzing nodig; gebruik Code 128.

Heeft EAN-13 12 cijfers nodig, of 13?

Allebei werkt. Het dertiende is een controlecijfer dat is afgeleid van de eerste twaalf, dus je kunt allebei intypen. Typ je 12, dan wordt het cijfer toegevoegd en aan je getoond; typ je 13, dan wordt het geverifieerd, met de verwachte waarde erbij als het niet klopt.

Betekent een barcode die met 690 begint dat het product in China is gemaakt?

Nee. 690–699 en 680–681 zijn de prefixreeksen die door GS1 China worden beheerd, 489 is Hongkong, 471 Taiwan, 958 Macau. Maar GS1 stelt uitdrukkelijk dat een lidbedrijf overal ter wereld mag produceren en een prefix mag aanvragen bij de organisatie van zijn keuze, dus het prefix identificeert **wie het nummer heeft uitgegeven**, niet waar de goederen vandaan komen.

Waarom scant mijn barcode op het scherm wel, maar op papier niet?

Bijna altijd de stille zone, of een geschaalde afbeelding. Op volgorde van hoe vaak het de oorzaak is: de stille zone werd afgesneden door een labelrand of kader; de afbeelding werd geschaald in een opmaakprogramma waardoor een module geen heel aantal printer-dots meer is; de modulebreedte is simpelweg te klein voor de scanner en de afdrukresolutie. Alle drie worden beslist voordat je afdrukt, en alle drie worden op deze pagina getoond.

Wat een 1D-barcode eigenlijk bevat

Een lineaire barcode is een run-length-codering van één string. Elk teken wordt een vast patroon van balken en spaties, gemeten in modules — de breedte van de smalste balk, genoteerd als X. Code 128 gebruikt 11 modules per symbool; een string van negen tekens komt uit op 134 modules breed, omdat het totaal 11 × (tekens + 2) + 13 is: één startsymbool, één controlesymbool, en een stopteken van 13 modules.

Twee dingen die deel uitmaken van het symbool maar op lege ruimte lijken, zijn waar de meeste zelfgemaakte barcodes op stuklopen. Het eerste is de stille zone, de blanco marge aan weerszijden; een scanner gebruikt die om de rand van de code te vinden, en een logo of een tabelrand die erin doorloopt, maakt de hele code onleesbaar. Het tweede is het controlecijfer in de retailsymbologieën, één cijfer berekend uit de andere waarmee een scanner een verkeerde lezing kan afwijzen in plaats van een verkeerd productnummer af te geven.

Code 128   text = "HELLO-123"

  symbols = 1 (start) + 9 (data) + 1 (check)   = 11
  modules = 11 × 11 + 13 (stop)                = 134
  X = 3px                                      = 402 px
  + quiet zone 10X + 10X                       = 462 px

Wat deze generator doet

De rekensom van het controlecijfer, zichtbaar

Elk cijfer met zijn gewicht, de gewogen som en de modulostap. Plak je 13 cijfers en klopt de laatste niet, dan noemt de pagina welk cijfer het had moeten zijn en biedt met één klik het gecorrigeerde nummer aan — in plaats van simpelweg “ongeldig” te melden.

De stille zone getekend op de voorvertoning

Niet alleen een getal in een tabel. De marge die de specificatie vereist, wordt gekleurd op de voorvertoning, en is asymmetrisch waar de specificatie dat ook is — EAN-13 wil 11X links en 7X rechts, niet 10X aan beide kanten.

Modulebreedte in dots, op de resolutie van je printer

Eén module is bij 203 dpi 0.125 mm, bij 300 dpi 0.085 mm, bij 600 dpi 0.042 mm. Het paneel rekent de gekozen modulebreedte om naar millimeters bij de resolutie die je kiest, zodat de afdrukgrootte een beslissing is en geen verrassing.

Code 128-breedte, met de gekozen subset

In subset C worden cijfers twee aan twee in een symbool gekoppeld, dus acht cijfers nemen 79 modules in beslag waar teken-voor-teken-codering er 123 zou kosten — 35.8% smaller. Het overzicht toont welke subset is gebruikt en wat dat heeft bespaard.

Vijftien symbologieën, niets wordt geüpload

EAN-13, EAN-8, UPC-A, UPC-E, ITF-14, Interleaved 2 of 5, Code 128 met zijn A/B/C-subsets, Code 39, Code 93, Codabar, MSI en Pharmacode. Alles wordt getekend door JavaScript in de pagina; geen enkele waarde verlaat de pagina.

Batch naar ZIP, met de mislukkingen uitgelegd

Plak één waarde per regel en krijg SVG- of PNG-bestanden in een ZIP. Regels die de validatie niet doorstaan, worden niet stilletjes weggelaten — ze belanden in skipped.txt met de reden erbij, zodat een batch van 100 die 97 bestanden oplevert je vertelt welke drie het waren en waarom.

Andere manieren om dezelfde barcode te maken

bwip-js

npx bwip-js --bcid=ean13 --text=9780306406157 --scale=3 out.png

Een van BWIPP afgeleide engine met verreweg de breedste symbologiedekking — meer dan honderd, inclusief 2D en post — beschikbaar als CLI en bibliotheek. De moeite waard wanneer barcodes door een buildstap worden gegenereerd, of wanneer je een symbologie nodig hebt die deze pagina niet dekt. Let op: er wordt geen stille zone toegevoegd tenzij je paddingleft/paddingright meegeeft, en height is in millimeters, niet in pixels.

python-barcode

python -m barcode ean13 9780306406157 -o out.svg

Handig binnen een Python-pijplijn en schrijft standaard SVG. Dekt de EAN/UPC-familie, Code 39 en Code 128; de meer ongebruikelijke symbologieën en GS1-toepassingsidentificatoren vallen erbuiten.

ZXing / zxing-cpp

Java- en C++-bibliotheken, generator plus lezer

De gebruikelijke keuze wanneer dezelfde codebase codes zowel moet schrijven als lezen. De lezer is de bekendere helft; voor het schrijven is de dekking van symbologieën smaller dan die van BWIPP.

Barcodelettertypen in Excel of Word

Installeer een Code 39- of Code 128-TrueType-lettertype en typ de waarde

Populair omdat er geen tooling voor nodig is, en de gebruikelijke bron van onscanbare labels. Bij Code 39-lettertypen moet je de *-scheidingstekens zelf toevoegen; bij Code 128-lettertypen moet je het controleteken zelf berekenen; en een lettertype rendert op de grootte die het document aangeeft, zonder controle over de modulebreedte.

GS1-lidorganisatie

Vraag een bedrijfsprefix aan

Geen generator, en niet optioneel als de code in de retail moet werken. GS1 geeft het nummer uit; de balken tekenen is het makkelijke deel. Interne magazijn- en assetlabels hebben helemaal geen toewijzing nodig.

Doorgerekende voorbeelden

EAN-13: 12 cijfers erin, controlecijfer berekend

978030640615
9780306406157

digit    9  7  8  0  3  0  6  4  0  6  1  5
weight  ×1 ×3 ×1 ×3 ×1 ×3 ×1 ×3 ×1 ×3 ×1 ×3
product  9 21  8  0  3  0  6 12  0 18  1 15

sum = 93,  93 mod 10 = 3,  check = (10 - 3) mod 10 = 7

De gewichten wisselen 3 en 1 af, te beginnen bij het meest rechtse cijfer van de payload. Studieboeken zeggen meestal “oneven en even posities”, wat voor elke lengte een andere formule vereist; door van rechts te tellen ontstaat één regel die de 12 cijfers van EAN-13, de 11 van UPC-A en de 7 van EAN-8 allemaal dekt. Dit specifieke nummer is de ISBN-13 van een bekend studieboek, dus het antwoord is te controleren aan het gedrukte boek.

Een verkeerd controlecijfer wordt benoemd, niet afgewezen

9780306406158
The last digit should be 7, not 8.
[ Use 9780306406157 ]

De onderliggende encoder weigert het nummer meteen — hij gooit ean13badCheckDigit. Dat is correct, maar nutteloos: een nummer dat van een verpakking is overgenomen, heeft veel vaker één verkeerd getypt cijfer dan dat het structureel fout is, en het enige wat iemand nodig heeft, is welk cijfer dat is. Daarom vindt de validatie plaats vóórdat de encoder wordt aangeroepen.

Subset C van Code 128 halveert de breedte van cijfers

12345678
subset C:  4 symbols  ->  79 modules
subset B:  8 symbols  -> 123 modules

saving: 35.8%

Subset C encodeert twee cijfers per symbool. Het aantal modules volgt 11 × symbolen + 35, dus het halveren van het aantal symbolen halveert bijna ook de breedte. Daarom loont het om een puur numerieke interne code ook puur numeriek te houden — al één letter toevoegen dwingt de hele string terug naar één teken per symbool.

Een oneven aantal cijfers kost een wisselsymbool

12345
12345    (5 digits)  -> 79 modules
123456   (6 digits)  -> 68 modules
12345678 (8 digits)  -> 79 modules

Subset C kan een overgebleven cijfer niet koppelen, dus een numerieke string met een oneven lengte betaalt voor één extra wisselsymbool. Het gevolg is echt contra-intuïtief en de moeite waard om te weten voordat je een nummeringsschema ontwerpt: zes cijfers zijn smaller dan vijf, en vijf cijfers nemen precies evenveel ruimte in als acht. Houd interne numerieke codes even lang en je krijgt de kortere barcode gratis.

Modulebreedte, dots en millimeters

X = 3 modules px, printer = 203 dpi
1 dot @ 203 dpi = 0.125 mm
X = 3 dot        = 0.375 mm
EAN-13 symbol    = 95 modules
+ quiet 11X + 7X = 113 X  = 42.4 mm

Een thermische printer kan alleen hele dots plaatsen. Exporteren op 1× en afdrukken op dezelfde resolutie zorgt dat elke module een heel aantal dots blijft. De afbeelding achteraf schalen in een opmaakprogramma doet dat niet: de module wordt een gebroken aantal dots, de printer rondt elke balk apart af, en de verhouding tussen balk en spatie schuift geleidelijk totdat scanners het laten afweten.

Zo genereer je een barcode

  1. 1

    Kies de symbologie

    Producten in de detailhandel gebruiken EAN-13 (EAN-8 voor kleine verpakkingen, UPC-A in Noord-Amerika). Dozen gebruiken ITF-14. Alles wat intern blijft — schaplabels, assettags, werkbonnen — hoort bij Code 128: dat heeft geen registratie nodig en bundelt cijfers twee per symbool.

  2. 2

    Typ de gegevens

    EAN-13 neemt 12 of 13 cijfers, UPC-A 11 of 12, EAN-8 7 of 8. Bij de kortere vorm wordt het controlecijfer voor je toegevoegd. Code 128 en Code 39 accepteren tekst van variabele lengte.

  3. 3

    Stel de afdrukgrootte in, niet de zoom

    Kies de modulebreedte en de resolutie van de printer die je gaat gebruiken. Het paneel laat zien hoeveel millimeter één module bij die resolutie wordt. Een geëxporteerde afbeelding achteraf verkleinen of vergroten in een opmaakprogramma is wat de scanbaarheid breekt, dus stel de grootte hier in plaats daarvan in.

  4. 4

    Exporteren

    SVG blijft scherp op elke afdrukgrootte en is wat labelsoftware het liefst ziet. PNG op 2× of 4× is voor plekken die geen vectoren aankunnen. De batchmodus neemt één waarde per regel en levert een ZIP, met eventuele afgekeurde regels inclusief reden erbij vermeld.

Fouten die deze tool uitlegt in plaats van ze alleen af te wijzen

“Ongeldige barcode” bij één verkeerd getypt cijfer

Een EAN-13 van 13 cijfers waarvan het laatste cijfer niet bij de andere twaalf past, is in de praktijk de meest voorkomende invoer. Te horen krijgen welk cijfer het moet zijn, kost één blik; te horen krijgen dat het nummer ongeldig is, kost een tochtje naar een aparte rekenmachine.

✗ Fout
9780306406158  ->  ongeldige EAN-13
✓ Correct
9780306406158  ->  het laatste cijfer moet 7 zijn, niet 8
                   [ Gebruik 9780306406157 ]

De tool laten stilletjes een controlecijfer toevoegen

Twaalf cijfers erin en dertien eruit is het gedrag dat je wilt, maar alleen als je erover wordt geïnformeerd — anders wijkt het nummer dat je afdrukt af van het nummer in je spreadsheet, en weet niemand meer welke leidend is.

✗ Fout
in:  978030640615
uit: barcode (13 cijfers, zonder vermelding)
✓ Correct
in:  978030640615
uit: barcode + “controlecijfer 7 automatisch toegevoegd”

Chinese tekst in een Code 128 zetten

De encoder houdt je niet tegen. Wat eruit komt scant wel, maar decodeert niet naar de tekens die je hebt ingevoerd, en de barcode is merkbaar breder dan de tekstlengte doet vermoeden.

✗ Fout
Code 128 <- 订单  (2 tekens, 134 modules — hetzelfde als 9 ASCII-tekens)
✓ Correct
Code 128 <- ORDER-2026-0042  (ASCII, en de breedte komt overeen met de inhoud)

Een stille zone die door een labelrand wordt opgegeten

Generators staan standaard op helemaal geen marge. Tegen de rand van een smal label geplaatst, of binnen een ontwerp met kader, verliest de code de lege strook die een scanner nodig heeft om hem te lokaliseren, en wordt hij simpelweg nooit gelezen.

✗ Fout
|▐▌▐▐▌ ▐▌▐ ▌▐▐▌|   <- labelrand raakt de balken
✓ Correct
|    ▐▌▐▐▌ ▐▌▐ ▌▐▐▌    |   <- 11X links, 7X rechts blanco gehouden

De geëxporteerde afbeelding schalen om in de opmaak te passen

Schalen naar een “mooie” fysieke grootte maakt van één module een gebroken aantal printer-dots. De printer rondt elke balk apart af, de verhouding tussen balk en spatie schuift, en de code gaat geleidelijk achteruit — wat erger is dan meteen falen, omdat hij de bureautest doorstaat maar het in het veld laat afweten.

✗ Fout
exporteer op 1x, schaal daarna naar 38 mm in het opmaakprogramma
✓ Correct
stel de modulebreedte in zodat de code 38 mm is bij 300 dpi, exporteer op 1x, plaats op 100%

Waar mensen dit voor gebruiken

Een nummer controleren voordat je 5.000 labels afdrukt
Je hebt een 13-cijferig nummer uit een spreadsheet en geen manier om te zien of het laatste cijfer klopt. Plak het erin: de gewogen som wordt uitgeschreven, en een verkeerd laatste cijfer wordt benoemd in plaats van weggestopt onder “ongeldig”.
Interne schap-, bak- en assetlabels
Magazijnlocaties, assettags en werkbonnummers hebben helemaal geen geregistreerd nummer nodig. Code 128 encodeert letters en cijfers, en koppelt cijfers twee aan twee per symbool, zodat een numerieke locatiecode compact blijft.
Doosetiketten voor een retailzending
ITF-14 encodeert het 14-cijferige nummer van de verzendcontainer, afgeleid van de GTIN van het artikel. Hier accepteert het 13 of 14 cijfers, en het controlecijfer volgt dezelfde modulo-10-regel als EAN-13.
Een barcode namaken vanaf een foto van een verpakking
Lees de cijfers die onder de balken staan afgedrukt, typ ze in en vergelijk. Omdat het controlecijfer wordt geverifieerd, wordt een cijfer dat je verkeerd hebt gelezen hier opgemerkt in plaats van aan de kassa.
Een reeks opeenvolgende codes genereren
Plak een kolom waarden uit een spreadsheet in het batchpaneel en download de hele set als SVG. Vectorbestanden kun je direct in labelsoftware plaatsen, zonder resampling.

Hoe elke symbologie encodeert

EAN-13 — 13 cijfers, en de stille zone is asymmetrisch
Twaalf cijfers payload plus één controlecijfer. De stille zone is 11X links en 7X rechts; een symmetrische marge verspilt óf ruimte, óf snijdt de linkerrand af. De mensleesbare cijfers maken deel uit van de voorgeschreven opmaak, met het eerste cijfer buiten de balken aan de linkerkant — daarom vreet het centreren van die tekst, zoals sommige generators doen, ongemerkt in de linker stille zone.
UPC-A en UPC-E — hetzelfde nummer, twee lengtes
UPC-A is 11 cijfers plus een controlecijfer en gebruikt dezelfde modulo-10-regel als EAN-13; een UPC-A-nummer is een EAN-13 met een voorloopnul. UPC-E is een gecomprimeerde vorm van 6 cijfers voor kleine verpakkingen, die de scanner terugbrengt tot het volledige nummer in plaats van dat het een ander nummer is.
Code 128 — drie subsets, voor je gekozen
Subset A dekt controletekens en hoofdletters, B dekt het afdrukbare ASCII-bereik inclusief kleine letters, C encodeert twee cijfers per symbool. De automatische modus schakelt ertussen om de kortste codering te krijgen, en daarom toont het overzicht in welke subset het is uitgekomen: C voor cijfers met een even lengte, CB wanneer een oneven lengte een wissel afdwong, B voor alles met een niet-cijfer.
Code 128 kan geen Chinese, Japanse of Koreaanse tekst bevatten
De tekenset stopt bij Latin-1. CJK-tekst aan de encoder voeren geeft geen fout — het levert stilletjes een bredere barcode op waarvan de inhoud niet meer overeenkomt met wat je hebt getypt (één Han-teken neemt de symboolbreedte van vijf ASCII-tekens in beslag). Omdat deze storing stil is, wijst deze pagina zulke invoer meteen af, in plaats van een barcode te tekenen waarvan je pas na het printen zou ontdekken dat hij fout is.
Code 39 en Code 93 — zelfcontrolerend, geen registratie
Code 39 encodeert cijfers, hoofdletters en zeven symbolen, heeft geen controleteken nodig, en is leesbaar door vrijwel elke ooit gemaakte scanner; de prijs daarvoor is breedte, ruwweg 13 modules per teken. Code 93 is compacter en voegt twee verplichte controletekens toe. Beide blijven gangbaar bij industriële en militaire labeling.
ITF-14 en Interleaved 2 of 5 — paren cijfers
Interleaved 2 of 5 encodeert cijfers in paren — één cijfer in de balken, de volgende in de spaties — dus accepteert het alleen een even aantal; een waarde met een oneven lengte krijgt een voorloopnul, wat het geëncodeerde nummer verandert. ITF-14 is de vaste 14-cijferige doosvorm en wordt normaal gedrukt met een dikke rand, de bearer bar, die als taak heeft te voorkomen dat een gedeeltelijk beschadigde rand als een kortere code wordt gelezen.

Een barcode maken die ook echt scant

Bepaal de afdrukgrootte hier, en schaal de afbeelding daarna nooit meer
Stel de modulebreedte en resolutie in het uiterlijkpaneel in en exporteer op 1×. De hoek van de afbeelding verslepen in Word, Illustrator of een labelontwerper resamplet de modules naar een gebroken aantal printer-dots, en ongelijke balken zijn verreweg de meest voorkomende oorzaak van een barcode die op het scherm scant maar op papier niet.
Laat de stille zone echt leeg
De gekleurde stroken op de voorvertoning maken deel uit van het symbool. Er mag niets in staan — geen rand, geen logo, geen aangrenzende tekst en geen rand van het label. Is je label te smal om ze te bevatten, verklein dan de modulebreedte in plaats van te bijsnijden.
Geef de voorkeur aan SVG voor alles wat wordt afgedrukt
Vectoruitvoer heeft geen resolutie, dus de printerdriver rasterizeert de balken één keer, op zijn eigen apparaatresolutie. Een PNG heeft zich al vastgelegd op een pixelraster, en als dat raster niet overeenkomt met dat van de printer, worden de balken geresampled.
Houd interne numerieke codes even lang
Code 128 koppelt cijfers twee per symbool; een oneven aantal kost een extra wisselsymbool, dus een code van vijf cijfers is breder dan een van zes. Ontwerp je een nummeringsschema vanaf nul, dan is dit gratis breedtewinst.
Test met de scanner die hem daadwerkelijk gaat lezen
Print één label op de echte printer, op de echte grootte, op het echte materiaal, en scan het met het echte apparaat. Camera-apps op telefoons zijn veel toleranter dan een laserscanner op een vaste afstand, en thermisch materiaal- en lintcombinaties verschillen in hoeveel de inkt uitloopt.

Veelgestelde vragen

Mag ik een hier gegenereerde barcode gebruiken op een product in een winkel?
De afbeelding is geldig en zal scannen, maar een retailbarcode is alleen bruikbaar als het erin geëncodeerde nummer aan jou is toegewezen. Nummers worden uitgegeven door GS1-lidorganisaties — GS1 Nederland voor Nederland, GS1 Belgium & Luxembourg voor België en Luxemburg, en de bijbehorende organisatie in elke andere markt. Deze tool tekent de balken; hij wijst geen nummers toe, en geen enkele online generator kan dat. Zijn de labels voor je eigen magazijn, schappen of vaste activa, dan is helemaal geen toewijzing nodig en is Code 128 de juiste keuze.
Hoe wordt het EAN-13-controlecijfer berekend?
Neem de twaalf cijfers en vermenigvuldig ze, beginnend bij het meest rechtse, afwisselend met 3 en 1. Tel de producten op. Het controlecijfer is wat die som optilt tot het eerstvolgende veelvoud van tien — formeel (10 - sum mod 10) mod 10. Voor 978030640615 is de som 93, dus is het controlecijfer 7. Deze pagina legt de hele berekening onder het invoerveld uit. Dezelfde regel geldt voor de 11 cijfers van UPC-A, de 7 van EAN-8 en de 13 van ITF-14, omdat het tellen van gewichten vanaf rechts de lengte irrelevant maakt.
Wat vertelt een prefix zoals 690 of 489 me?
Het identificeert de GS1-lidorganisatie die het nummer heeft uitgegeven. 690–699 en 680–681 worden beheerd door GS1 China, 489 door GS1 Hong Kong, 471 door GS1 Taiwan, 958 door GS1 Macau, en 978–979 zijn gereserveerd voor ISBN's. Het vertelt je niet het land van fabricage: het eigen standpunt van GS1 is dat lidbedrijven overal producten kunnen maken en een prefix kunnen aanvragen bij welke organisatie ze ook kiezen. De wijdverbreide bewering dat 690 “gemaakt in China” betekent, is door verschillende factcheckorganisaties precies om deze reden gecontroleerd en afgewezen.
Welke symbologie moet ik kiezen?
Wordt het artikel via de retail verkocht, dan ligt de keuze al vast: EAN-13, of EAN-8 als de verpakking te klein is, of UPC-A in Noord-Amerika, met ITF-14 op de verzenddoos. Voor alles wat intern blijft, gebruik je Code 128 — het accepteert letters en cijfers, heeft geen registratie nodig en comprimeert numerieke gegevens tot twee cijfers per symbool. Code 39 is alleen het overwegen waard als je een heel oude scanner moet bedienen, want het is voor dezelfde inhoud zo'n 40% breder.
Waarom is mijn vijfcijferige Code 128 breder dan een zescijferige?
Omdat subset C twee cijfers in elk symbool stopt en een oneven laatste cijfer niet kan koppelen, betaalt een numerieke string met een oneven lengte voor één extra wisselsymbool. Vijf cijfers komen uit op 79 modules breed en zes op 68 — en vijf cijfers zijn toevallig precies even breed als acht. Ben je nog bezig je nummeringsschema te ontwerpen, dan kost het niets om de codes een even lengte te geven, en levert het een smaller label op.
Wat is de stille zone en hoeveel heb ik nodig?
Het is de blanco marge aan weerszijden van de balken, gemeten in modules (X). Een scanner gebruikt die lege strook om te bepalen waar de code begint, dus hoort ze bij het symbool en is geen decoratie. EAN-13 vereist 11X links en 7X rechts — asymmetrisch, wat generators te pakken neemt die aan beide kanten dezelfde marge toepassen. UPC-A wil 9X aan elke kant, EAN-8 7X, en Code 128, Code 39 en ITF-14 minstens 10X. Op deze pagina wordt de vereiste marge gekleurd op de voorvertoning, zodat je ziet of je label er ruimte voor laat.
Kan een barcode Chinese tekens bevatten?
Geen enkele gangbare 1D-barcode. Code 128 stopt bij Latin-1, en Code 39 dekt nog minder. Erger nog, de meeste encoders weigeren CJK-invoer niet — ze produceren een barcode die scant maar decodeert naar iets anders dan wat je hebt getypt, en die opvallend breder is dan het aantal tekens doet vermoeden. Deze pagina blokkeert het in plaats daarvan. Heb je echt Chinese tekst nodig in een scanbaar symbool, gebruik dan een QR-codegenerator — QR heeft een speciale Kanji-modus en kent deze beperking niet.
SVG of PNG?
SVG voor alles wat wordt afgedrukt. Het heeft geen eigen resolutie, dus de printer rasterizeert de balken één keer op zijn eigen resolutie en elke module komt op een hele dot terecht. PNG heeft zich al vastgelegd op een pixelraster; komt dat raster niet overeen met dat van de printer, dan worden de balken geresampled en schuift de verhouding tussen balk en spatie. Gebruik PNG alleen waar vectoren niet worden geaccepteerd, en exporteer op 2× of 4× zodat er resolutie over is.
Hoe genereer ik in één keer veel barcodes?
Open het batchpaneel, plak één waarde per regel — een kolom die je direct uit een spreadsheet plakt werkt prima — kies SVG of PNG, en je krijgt een ZIP met per waarde een eigen bestandsnaam. Regels die de validatie niet doorstaan, worden niet stilletjes overgeslagen: ze worden verzameld in skipped.txt met de reden erbij, zodat een batch van 100 die 97 bestanden oplevert je vertelt welke drie mislukten en waarom. Alles gebeurt in de browser, dus de grootte van de batch wordt begrensd door je eigen machine, niet door een serverquota.
Op welke resolutie moet ik afdrukken?
Wat je printer daadwerkelijk is — het nut van hem hier te kiezen is dat de pagina je kan vertellen wat één module in millimeters betekent. Bij 203 dpi, de gangbare thermische resolutie, is één dot 0.125 mm, dus is een module van drie dots 0.375 mm. Bij 300 dpi is een dot 0.085 mm en bij 600 dpi 0.042 mm. Een hogere resolutie laat je een kleinere module gebruiken, wat ertoe doet als het label klein is; het zorgt er niet voor dat een verkeerd bemeten barcode beter scant.
Kan deze pagina een barcode uit een afbeelding lezen?
Nee — hij genereert alleen. Een gedrukte 1D-barcode uit een foto lezen is een ander probleem en vraagt om een andere tool. De QR-decoder elders op deze site verwerkt alleen QR-codes en zal geen EAN-13 of Code 128 decoderen. Deze pagina kan ook niet opzoeken bij welk product een nummer hoort; daarvoor is een GS1-productdatabase nodig.
Wordt er iets geüpload?
Nee. De encoder is een JavaScript-module die in de pagina wordt geladen, en elke barcode — inclusief een hele batchrun met bijbehorende ZIP — ontstaat op je eigen machine. Wat je typt gaat nergens naartoe, komt niet in een URL terecht en verdwijnt zodra je het tabblad sluit; alleen de uiterlijkinstellingen (modulebreedte, balkhoogte, resolutie) blijven lokaal bewaard zodat je ze niet opnieuw hoeft in te stellen.

Gerelateerde tools

Alle tools bekijken →