phpbar.de logo

Mailinglisten-Archive

[php] Barcode PDF147

[php] Barcode PDF147

Stefan Bartsch bs at gmx.net
Mon Mai 10 19:07:51 CEST 2004


At 21:36 09.05.2004, you wrote:
>Hi,
>
>gibt es bereits irgend wie eine Möglichkeit einen Barcode vom Typ
>"PDF147" mit PHP zu generieren?
>
>MfG
>Mario
>--
>** Allgemeine deutschsprachige PHP-Liste: php at phpbar.de **
>Informationen: http://www.phpbar.de
>http://lists.phpbar.de/mailman/listinfo/php

Hi,

auf der PHP-Homepage hab ich vor kurzem mal folgendes gesehen. Ist 
vielleicht nicht genau das was du suchst, aber das kann man anpassen,
wenn man die Spezifikation von dem o.g. Barcode kennt.

Gruß,
Stefan Bartsch

-----------------------------------------------------------------------
Source: http://de3.php.net/image

A fun little function to output UPC-A 11-digit barcodes. Thanks to 
barcodeisland.com for the specs.

<?php

function UPCAbarcode($code) {
   $lw = 2; $hi = 100;
   $Lencode = array('0001101','0011001','0010011','0111101','0100011',
                    '0110001','0101111','0111011','0110111','0001011');
   $Rencode = array('1110010','1100110','1101100','1000010','1011100',
                    '1001110','1010000','1000100','1001000','1110100');
   $ends = '101'; $center = '01010';
   /* UPC-A Must be 11 digits, we compute the checksum. */
   if ( strlen($code) != 11 ) { die("UPC-A Must be 11 digits."); }
   /* Compute the EAN-13 Checksum digit */
   $ncode = '0'.$code;
   $even = 0; $odd = 0;
   for ($x=0;$x<12;$x++) {
    if ($x % 2) { $odd += $ncode[$x]; } else { $even += $ncode[$x]; }
   }
   $code.=(10 - (($odd * 3 + $even) % 10)) % 10;
   /* Create the bar encoding using a binary string */
   $bars=$ends;
   $bars.=$Lencode[$code[0]];
   for($x=1;$x<6;$x++) {
    $bars.=$Lencode[$code[$x]];
   }
   $bars.=$center;
   for($x=6;$x<12;$x++) {
    $bars.=$Rencode[$code[$x]];
   }
   $bars.=$ends;
   /* Generate the Barcode Image */
   $img = ImageCreate($lw*95+30,$hi+30);
   $fg = ImageColorAllocate($img, 0, 0, 0);
   $bg = ImageColorAllocate($img, 255, 255, 255);
   ImageFilledRectangle($img, 0, 0, $lw*95+30, $hi+30, $bg);
   $shift=10;
   for ($x=0;$x<strlen($bars);$x++) {
    if (($x<10) || ($x>=45 && $x<50) || ($x >=85)) { $sh=10; } else { $sh=0; }
    if ($bars[$x] == '1') { $color = $fg; } else { $color = $bg; }
    ImageFilledRectangle($img, ($x*$lw)+15,5,($x+1)*$lw+14,$hi+5+$sh,$color);
   }
   /* Add the Human Readable Label */
   ImageString($img,4,5,$hi-5,$code[0],$fg);
   for ($x=0;$x<5;$x++) {
    ImageString($img,5,$lw*(13+$x*6)+15,$hi+5,$code[$x+1],$fg);
    ImageString($img,5,$lw*(53+$x*6)+15,$hi+5,$code[$x+6],$fg);
   }
   ImageString($img,4,$lw*95+17,$hi-5,$code[11],$fg);
   /* Output the Header and Content. */
   header("Content-Type: image/png");
   ImagePNG($img);
}

UPCAbarcode('12345678901');

?>  



php::bar PHP Wiki   -   Listenarchive