Cómo generar un código de barras en PHP

Los códigos de barras son códigos legibles por máquinas que se generan utilizando elementos como el nombre del producto, su ID, su precio... El código de barras designado se adjunta al producto para obtener información del mismo utilizando, logicamente, una máquina para leer códigos de barras. Este tipo de código son muy útiles para artículos de venta rápida ya que nos permite identificar los artículos rápidamente y también para administrar inventario y así evitar la acumulación de stock.

Como ves, los códigos de barras son muy útiles y necesarios en muchos desarrollos con PHP para administrar inventarios, etc., en este tutorial te mostraré cómo implementar ungenerador de códigos de barras usando PHP.

Para este tutorial seguiremos la siguiente estructura de ficheros:

  • index.php
  • barcode.php

Crear el formulario para generar códigos de barras

Antes que nada en el fichero index.php tendremos que crear un formulario, el cual, basándonos en varias opciones, al enviarlo se generará un código de barras:

<div class="row">
<div class="col-md-4">
<form method="post">
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label>Product Name or Number</label>
<input type="text" name="barcodeText" class="form-control" value="<?php echo @$_POST['barcodeText'];?>">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label>Barcode Type</label>
<select name="barcodeType" id="barcodeType" class="form-control">
<option value="codabar" <?php echo (@$_POST['barcodeType'] == 'codabar' ? 'selected="selected"' : ''); ?>>Codabar</option>
<option value="code128" <?php echo (@$_POST['barcodeType'] == 'code128' ? 'selected="selected"' : ''); ?>>Code128</option>
<option value="code39" <?php echo (@$_POST['barcodeType'] == 'code39' ? 'selected="selected"' : ''); ?>>Code39</option>
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label>Barcode Display</label>
<select name="barcodeDisplay" class="form-control" required>
<option value="horizontal" <?php echo (@$_POST['barcodeDisplay'] == 'horizontal' ? 'selected="selected"' : ''); ?>>Horizontal</option>
<option value="vertical" <?php echo (@$_POST['barcodeDisplay'] == 'vertical' ? 'selected="selected"' : ''); ?>>Vertical</option>
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<input type="hidden" name="barcodeSize" id="barcodeSize" value="20">
<input type="hidden" name="printText" id="printText" value="true">
<input type="submit" name="generateBarcode" class="btn btn-success form-control" value="Generate Barcode">
</div>
</div>
</form>
</div>
</div>

Librería para generar códigos de barras

Ahora tendremos que descargar la librería que nos permitirá generar códigos de barras mediante PHP. Dicha librería cuenta con unas cuantas opciones que nos permitirán gestionar distintos códigos de barras como Codabar, Code128 o Code39 y también mostrar el código de barras en horizontal o vertical. También podremos definir el tamaño de salida del código (10, 20, hasta un máximo de 400) e incluso agregar un texto al código de barras. Veremos alguna de estas opciones en el próximo ejemplo.

Generar código de barras con PHP

Al enviar el formulario, generaremos un código de barras pasándole cómo parámetros algunos de los elementos recibidos. Después mostraremos el código de barras en la etiqueta img.

<?php
if(isset($_POST['generateBarcode'])) {
$barcodeText = trim($_POST['barcodeText']);
$barcodeType=$_POST['barcodeType'];
$barcodeDisplay=$_POST['barcodeDisplay'];
$barcodeSize=$_POST['barcodeSize'];
$printText=$_POST['printText'];
if($barcodeText != '') {
echo '<h4>Barcode:</h4>';
echo '<img class="barcode" alt="'.$barcodeText.'" src="barcode.php?text='.$barcodeText.'&codetype='.$barcodeType.'&orientation='.$barcodeDisplay.'&size='.$barcodeSize.'&print='.$printText.'"/>';
} else {
echo '<div class="alert alert-danger">Enter product name or number to generate barcode!</div>';
}
}
?>

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP