Der Begriff Modulbreite (oder auch Modulgröße, Z-Modul, X-Modul, X-Dimension oder einfach nur X) bezeichnet abstrakt ein Element eines Strichcodes oder Matrixcodes. Einfach ausgedrückt handelt es sich dabei um die ideale Breite eines schmalen Striches wie auch einer schmalen Lücke eines Strichcodes. Diese Abstraktion erlaubt es den Aufbau der verschiedenen Codearten (Code 128, Code 39 usw) zu beschreiben, ohne dass die Notwendigkeit besteht absolute Maße zu benutzen. Die Beschreibung des Aufbaues und der Funktion der Codearten vereinfacht sich dadurch erheblich.
Im Falle von Matrixcodes (Data Matrix, QR-Code, Aztec Code usw.) handelt sich bei einem Modul um eine Matrixzelle. In diesem Fall ist eine abstrakte Matrixzelle gemeint, die "perfekte" Maße aufweist (d.h nicht verzerrt, zu dünn, breit oder hoch ist). Der Aufbau des Codes kann auch in diesem Fall vollständig mit Hilfe des abstrakten Modules ohne Angabe von absoluten Maßen beschrieben werden. Aus diesem Elementen (Modulen) wird der gesamte Code aufgebaut.
Der Strichcodetyp Code 128 besteht z.B. aus einer Ruhezone, Startzeichen, Datenzeichen, Prüfziffer, das Stoppzeichen und die rechte Ruhezone. Die Ruhezone eines Strichcodes ist meistens 10 Module (pro Seite) breit. Das Startzeichen (des Code 128 !) umfasst 11 Module wie auch die Datenzeichen. Die 11 Module teilen sich dann in 3 Striche und drei Lücken auf. Jeder Strich, wie auch jede Lücke kann 1, 2, 3 oder 4 Module (bzw. Elemente) breit werden.
Modulbreite und Scannereigenschaft
Die Angabe eines Größenbereiches für die Modulbreite ist für jede Anwendung absolut essentiell. Da Scanner optische Systeme sind, muss der Code mit der geringsten Modubreite im maximalen Leseabstand noch einwandfrei von der Optik des Scanners aufgelöst werden. Ohne diese Information kann eine Anwendung daher nicht korrekt dimensioniert werden (... der richtige Scannertyp ausgesucht werden). Im minimalen Leseabstand darf der Code nicht größer als das Lesefeld des Scanners werden.
Modulbreite und Druckereigenschaft
Da Drucksysteme eine bestimmte Auflösung haben, läßt sich nicht jede beliebige Modulgröße darstellen. Es sind nur die Modulgrößen verzerrungsfrei druckbar, die in das Raster der Druckerauflösung passen. Diese Betrachtung ist wichtig, weil die Information aus den Strichen und Lücken des Codes mit Hilfe der Strich- und Lückenbreiten und Strichpositionen dekodiert werden. Wenn die Strich- und Lückenbreiten sowie die Strichposition verzerrt gedruckt werden (z.B. weil Modulgrößen "grafisch" frei skaliert werden), wird die Leseeffizienz abnehmen (im Einzelfall oft kaum nachvollziehbar, in der Masse teilweise sehr kritisch).
In dem Artikel "Herstellung, Druck & Qualität von Strichcodes" sind die Details dazu beschrieben.
Bildliche Darstellung der Module anhand von Codebildern
Die Bilder in den Beschreibungen des Code 128, EAN Code, Code 93 und GS1 DataBar zeigen jeweils über dem Code ein Raster aus roten und blauen Streifen. Dieses Raster ist das Raster der Module des jeweiligen Codes. Das Konzept der Module eine Codes wird damit greifbar sowie die Umsetzung der Module auf einzelne Striche und Lücken sowie die Zeichenbreiten (p-werte).
Das folgende Bild eines EAN-Codes zeigt dieses Raster stellvertretend für die anderen Codearten.
Die Codes mit mehreren Strichbreiten weisen immer Strich- und Lückenbreiten auf die ganzzahlige Vielfache der Modulbreite sind.
Bei den Codes mit zwei Strichbreiten ist das etwas anders. Der dünne Strich ist ein Modul breit. Der breite Strich (wie auch Lücke) ist um den Wert der Ratio breiter als die Modulbreite.