Imprimir códigos de barras en tarjetas CR80

Tengo un código de barras con un ancho de dimensiones: 162px and height: 50 px. Cuando lo imprimo en un tamaño de papel A4, su dimensión es 40 mm X 14 mmpero cuando lo imprimo en CR80 Cards(tamaño de papel más pequeño) su tamaño es 25mm X 9mm.

El código de barras en el papel A4 se escanea bien, pero los códigos de barras en las tarjetas CR80 no. Se debe a que el tamaño del código de barras se reduce para ajustarse a la página y, por lo tanto, distorsiona los códigos de barras.

Si y solo si los códigos de barras están 40mm X 19mmen tarjetas CR80, estará bien y funcionará (supuse). Entonces, ¿cómo sabré qué dimensiones (en px), debo ordenarle a mi impresora que imprima para obtener el resultado deseado?

Hola Alyssa, bienvenida a GDSE y gracias por tu pregunta. Si desea obtener más información sobre el sitio, consulte el centro de ayuda o comuníquese con uno de nosotros en el chat una vez que su reputación sea suficiente (20). ¡Sigue contribuyendo y disfruta del sitio!
¿Cómo estás imprimiendo el código de barras? ¿El código de barras es un archivo separado y solo está imprimiendo desde ese archivo o está colocando el código de barras en un documento? Si está imprimiendo el código de barras, entonces puede imprimir un archivo/documento para que no se ajuste a la página o se encoja e imprima al 100%.
¿Qué es la codificación del código de barras? (3 de 9; código 128, etc.)
también: quieres decir mm?
@Yorik --> Gracias por preguntarme, realmente se midió en mm y estaba en codificación code39. Voy a editar mi publicación para ti.

Respuestas (1)

Una comprobación rápida sugiere que el tamaño nominal para algunos tipos (EAN-*) es "25,93 mm de alto y 37,29 mm de ancho" y "ellos" sugieren que no lo reduzca más allá del 80 % (20 x 29 mm).

No vi nada específico en el código 39, pero sospecho que su problema es simplemente que ha ido demasiado lejos en la reducción y las barras están demasiado juntas.

No menciona el software que está utilizando, pero básicamente coloca la imagen más grande en la tarjeta de identificación. He usado 3 de 9 antes y descubrí que la altura es menos importante que el ancho y el espacio entre barras: las que usé probablemente tenían aproximadamente 3/8 de pulgada de alto y 1,5 pulgadas de ancho (alrededor de 9 mm de alto x 38 mm de ancho).

Si tiene problemas para ajustarlo con otra información, colóquelo grande y recorte la parte superior. Experimento.


Una cosa más: code39 es un esquema de reemplazo directo de ASCII. Esto significa que puede utilizar una fuente . 12345abcse vuelve *12345abc*y simplemente lo configura usando un tipo de letra 3of9 como free 3of9 . Esto hace que el dimensionamiento sobre la marcha no sea un problema e incluso se pueden generar utilizando un informe de base de datos, etc.


<?php
// Requires a font file on your server
$fR = 0; $fG = 0; $fB = 0;
$bR = 255; $bG = 255; $bB = 255;

$text_pad = 10;

$text = array(
    array('text' => '', 'size' => 19, 'left' => $text_pad, 'width' => 1, 'height' => 1, 'font_path' => ''),
    );

$text[0]['font_path'] = realpath('./images/free3of9.ttf'); //give it a path relative to the calling script
$text[0]['text'] = strtoupper('*12345 bobs your uncle 6789*');  //simpe code39: ONLY 0-9 A-Z (caps) . - *
$text[0]['size'] = 60;
$text[0]['left'] = $text_pad;

$result = barcode_getdimensions($text[0]['text'], $text[0]['size'], $text[0]['font_path']);

$text[0]['width'] = $result['width'];
$text[0]['height'] = $result['height'];

//************ end configuration vars
function barcode_getdimensions ($a_string, $a_size, $a_font)    {
    $tmp['width'] = 0;
    $tmp['height'] = 0;

    if ($a_size == 0)   {   return $tmp;}

    $result = imageftbbox($a_size, 0, $a_font, $a_string);

    $tmp['width'] = $result[2] - $result[0];
    $tmp['height'] = $result[1] - $result[7];

    return $tmp;

}

//output the header. Any non-image output after this point will throw errors
header("Content-type: image/png"); 
header('Content-Disposition: inline; filename=barcode.png');

$image = imagecreatetruecolor(($text_pad * 2) + $text[0]['width'],($text_pad * 2) + $text[0]['height']);
$textcolor = imagecolorallocate($image,$fR,$fG,$fB);
$bgcolor= imagecolorallocate($image,$bR,$bG,$bB);
imagefilledrectangle($image,0,0,($text_pad * 2) + $text[0]['width'],($text_pad * 2) + $text[0]['height'],$bgcolor);
imagettftext($image, $text[0]['size'], 0, $text_pad, $text_pad + $text[0]['height'], $textcolor, $text[0]['font_path'], $text[0]['text']); 

imagepng($image);
imagedestroy($image);   // always destroy image


?>
Desearía tener una imagen para poder colocarla más grande en mi tarjeta de identificación, pero desafortunadamente no es así. Estoy usando un complemento jquery para generar un código de barras (no una imagen), que es un conjunto de div con un color de fondo negro. barcode-coder.com/en/barcode-jquery-plugin-201.html
¿Me puede recomendar un sitio que genere una imagen de un código de barras, preferiblemente un complemento de javascript o jquery?
¿Esto es para su sitio web?
--> Sí, esto es para mi sitio web.
Simplemente usaría php para hacer una imagen, siempre que no estemos hablando de un gran rendimiento. Debería colocar un archivo de fuente en su servidor para que el script pueda acceder a él y luego asegurarse de que no tiene caracteres ilegales en la codificación.