2013-03-14 134 views
0

因此,我使用關閉http://barcode-coder.com/en/的PHP類來生成條碼。從PHP條碼類隨機輸出字符

我得到在我的網頁這樣的輸出:

GIF87a,,¡üüþüü,,,þ„Ëí£œ´Ú+Þ¼û†"£Œæ‰‚Zʶî+–ðLkçz(ïþ~û ‡¿ñÈ "—Ì「± í(£ÔêäiÍB¦Ú.ëírÃä#¸\  £×º3»©~Ë_îù1nÏë÷[¾ÿ€HX˜fˆ˜˜5¨ØèHÃø(9iIy‰‰a™ÉÙé°éš *Z*IjššˆªÚÈê»+[+Gk›[†«Û«Åë,\ŒDlœüƒ¬ÜŒÃìý-]Bm‚­ÝÍÁí^.^ÞgŽ™¾>ÍîžBþ/ßM_Ÿ}_­¿Ýï¯À€É,fð`°„ {1l˜ë!ÄZ'ƪh±ÆþŒ©6r,åñc¨";‘,9 eÀ「*)±ly &¾—2Ѭ¹ ç»›:ñìù 躟Bý-:©¹£Jí0mzê<©ÞžREcõ*™¬Z½píú,?±Ò¾’¥bö,」´j™°m{nA¹ÆÞÒb÷®¼zuðíû°CÁºþ†aø°‹ÄŠ「4–Åøñ‰È’GP®¼ ³ªËš=pîü 4HÑ¢>「¶`ú4…Ôª3´æÄúõƒØ²Ð®½à6nݵyËöýxk᪉Ÿ6N¹hå ™wv®:Ô«[¿Ž=»öíÜ»{ÿ>¼øñäË›?oþªôÊë%·ü¾q|Åó×'|_p~Àûþûö×ûß]Ò5 \Âu`[ ªµàY ’õ X‚5aWju¡z¸¹´á$Rõ¡T!B5bS%*u"R)µ¢P-õbO1ê4#N5Öt£L9´cK=ªô#JA–4¤HE~t$GIf´¤EMNô$DQ64¥BUt%AY®ÔaL]:²¥?aî3æL_‚y¦Mi*Rf=mÊóæNkæ4§!qºs';yU§}úô'!{¦3(:….hP‰þqh9ŠóèT‹5)¥•&u©‘V•©¦æ±©=Ÿ:5ê¡jsj>¥Fµ*©ZóêX­®kY³Òz+V¹î²ëV½†Që?¿z5¬Å†ue¬Á:³¬@É*ûì!Ñ3-µÕÂq-¶Ù.Ѭ2Ýεm\áŽKn¹æž‹nºê®Ën»î¾o¼òÎKo½öÞ‹o¾úîËo¿þþpÀLpÁŒp /ÌpÃ?qÄOLqÅ×S; 

我並不甚至遠程接近搞清楚爲什麼這個被拋出。我從dafont獲得了Code 39條形碼,並且我只是使用了包含在php類中的示例測試。我的實現是錯誤的還是有必要的附加代碼?

...Code 
include('barcode.php'); 
Code... 

然後

<?php 
    include('../../inc/php-barcode.php'); 
    $font= '../../inc/3OF9_NEW.TTF'; 
    // -------------------------------------------------- // 
    //     PROPERTIES 
    // -------------------------------------------------- // 

    // download a ttf font here for example : http://www.dafont.com/fr/nottke.font 

    // - - 

    $fontSize = 10; // GD1 in px ; GD2 in point 
    $marge = 10; // between barcode and hri in pixel 
    $x  = 125; // barcode center 
    $y  = 125; // barcode center 
    $height = 50; // barcode height in 1D ; module size in 2D 
    $width = 2; // barcode height in 1D ; not use in 2D 
    $angle = 90; // rotation in degrees : nb : non horizontable barcode might not be usable because of pixelisation 

    $code  = 'abcdef4'; // barcode, of course ;) 
    $type  = 'Barcode39'; 

    // -------------------------------------------------- // 
    //     USEFUL 
    // -------------------------------------------------- // 

    function drawCross($im, $color, $x, $y){ 
    imageline($im, $x - 10, $y, $x + 10, $y, $color); 
    imageline($im, $x, $y- 10, $x, $y + 10, $color); 
    } 

    // -------------------------------------------------- // 
    //   ALLOCATE GD RESSOURCE 
    // -------------------------------------------------- // 
    $im  = imagecreatetruecolor(300, 300); 
    $black = ImageColorAllocate($im,0x00,0x00,0x00); 
    $white = ImageColorAllocate($im,0xff,0xff,0xff); 
    $red = ImageColorAllocate($im,0xff,0x00,0x00); 
    $blue = ImageColorAllocate($im,0x00,0x00,0xff); 
    imagefilledrectangle($im, 0, 0, 300, 300, $white); 

    // -------------------------------------------------- // 
    //      BARCODE 
    // -------------------------------------------------- // 
    $data = Barcode::gd($im, $black, $x, $y, $angle, $type, array('code'=>$code), $width, $height); 

    // -------------------------------------------------- // 
    //      HRI 
    // -------------------------------------------------- // 
    if (isset($font)){ 
    $box = imagettfbbox($fontSize, 0, $font, $data['hri']); 
    $len = $box[2] - $box[0]; 
    Barcode::rotate(-$len/2, ($data['height']/2) + $fontSize + $marge, $angle, $xt, $yt); 
    imagettftext($im, $fontSize, $angle, $x + $xt, $y + $yt, $blue, $font, $data['hri']); 
    } 


    // -------------------------------------------------- // 
    //     MIDDLE AXE 
    // -------------------------------------------------- // 
    imageline($im, $x, 0, $x, 250, $red); 
    imageline($im, 0, $y, 250, $y, $red); 

    // -------------------------------------------------- // 
    //     BARCODE BOUNDARIES 
    // -------------------------------------------------- // 
    for($i=1; $i<5; $i++){ 
    drawCross($im, $blue, $data['p'.$i]['x'], $data['p'.$i]['y']); 
    } 

    // -------------------------------------------------- // 
    //     GENERATE 
    // -------------------------------------------------- // 
    header('Content-type: image/gif'); 
    imagegif($im); 
    imagedestroy($im); 
?> 
+1

那就是* image *。你確定'Content-Type'頭部設置正確嗎?也許之前有其他輸出? – deceze 2013-03-14 20:16:35

+0

是啊,它在一張桌子。不知道你必須自己打電話給 – gta0004 2013-03-14 20:49:54

回答

1

條形碼類創建GIF圖像 - 它不應該在你的HTML頁面的正文中使用,但單獨調用,從一個IMG標籤,類似爲此:

<p>Here is your barcode: 
<img src="/call/to/your/barcode?parm1=barcode_parm_1"> 
</p> 

通過這種方法,你將有效地使兩個請求到Web服務器:

  1. 奠定了將包含條形碼
  2. 渲染和服務器條形碼的HTML

另一種方法是構建一個圖像文件的HTML頁面加載,然後引用新文件「src」屬性,但我推斷你想要動態生成的條形碼總是

如果確實需要單獨調用它,請確保您的PHP代碼正在傳遞適當的內容標題。

+0

哦。得到它了。現在要弄明白爲什麼它只顯示一個紅十字。謝謝! – gta0004 2013-03-14 20:31:11