2013-06-21 1 views
0

SQL 쿼리에서 얻은 결과 각각에 대해 바코드를 작성하려고합니다. 기본적으로 HTML 테이블에 결과가 표시되고 마지막 열에는 $ row = [1]의 값에 바코드가 표시됩니다. 나는 이것을하는 방법에 완전한 손실에있다.바코드가있는 PHP 쿼리 결과

<?php 

//PHP Includes 
include('inc/database.php'); 
require_once('class/BCGFontFile.php'); 
require_once('class/BCGColor.php'); 
require_once('class/BCGDrawing.php'); 
require_once('class/Barcode39.php'); 

header('Content-Type: image/png'); 

// MSSQL Query 
$sql = "SELECT warehouse, pick_order_number, order_status, pick_order_type, customer_order_number 
     FROM pick_order_header 
     WHERE warehouse = 'XDGM' 
     AND order_status <> 'Complete' 
     AND order_status <> 'Closed' 
     AND pick_order_type <> 'Backorder'"; 
?> 

<!DOCTYPE HTML> 
<link rel="stylesheet" type="text/css" href="css/master.css"> 
<html> 
<title>Current Orders</title> 
<body> 

<table> 
<?php 
// SQLSRV Query 
$results = sqlsrv_query($conn, $sql); 
if($results === false) { 
    die(print_r(sqlsrv_errors(), true)); 
} 
    echo " 
      <table border=1> 
      <tr> 
       <th>Order Number</th> 
       <th>Order Status</th> 
       <th>Order Type</th> 
       <th>Customer Order</th> 
       <th>Barcode</th> 
      </tr>"; 
    while ($row = sqlsrv_fetch_array($results)) 
    { 
     $odrnum = $row[1]; 
     $odrstatus = $row[2]; 
     $odrtype = $row[3]; 
     $custorder = $row[4]; 
     $barcode = $row[1]; 

    echo " 
      <tr> 
       <td>$odrnum</td> 
       <td>$odrstatus</td> 
       <td>$odrtype</td> 
       <td>$custorder</td> 
       <td>$barcode</td> 
      </tr>"; 
    } 
    echo "</table>"; 

?> 
</table> 
</body> 
</html> 

내가 그 바코드를보고 싶다 어디

$code = new BCGcode39(); // Or another class name from the manual 
$code->setScale(2); // Resolution 
$code->setThickness(30); // Thickness 
$code->setForegroundColor($color_black); // Color of bars 
$code->setBackgroundColor($color_white); // Color of spaces 
$code->setFont($font); // Font (or 0) 
$code->parse('HELLO'); // Text 

$drawing = new BCGDrawing('', $colorfg); 
$drawing->setBarcode($code); 
$drawing->draw(); 
$drawing->finish(BCGDrawing::IMG_FORMAT_PNG); 

이 필요 알고있는 바코드를 만들려면, 난 그냥 그것을 달성하는 방법에 대한 단서가 없다

<td>$barcode</td> 

입니다 .

답변

1

당신이 접근했을 때 그다지 똑바로 보이지 않습니다. 내가 보여준 도서관을 한번도 사용한 적이 없습니다. http://www.barcodephp.com/en/manual/BCGcode39을 사용하고있는 것 같습니다.

해당 웹 사이트에 표시된 예제에 따르면 draw() 메서드의 출력은 생성 될 이미지에 해당하는 바이트 스트림입니다. 원하는 것을 성취 할 수있는 방법은 여러 가지가 있습니다. 그 중 하나는 문자열을 받아서 바코드를 출력하고 html 테이블에서 호출하는 프로세스 (다른 파일 일 가능성이 있음)를 갖는 것입니다. 의 라인을 따라

뭔가 :

1 - DrawBarcode.php

<?php 
require_once('class/BCGDrawing.php'); 
header('Content-Type: image/png'); 
$drawing = new BCGDrawing('', $colorfg); 
$drawing->setBarcode($_GET['code']); 
$drawing->draw(); 

2 - Table.php

<?php 
// MSSQL Query 
$sql = "SELECT warehouse, pick_order_number, order_status, pick_order_type, customer_order_number 
     FROM pick_order_header 
     WHERE warehouse = 'XDGM' 
     AND order_status <> 'Complete' 
     AND order_status <> 'Closed' 
     AND pick_order_type <> 'Backorder'"; 
?> 

<!DOCTYPE HTML> 
<link rel="stylesheet" type="text/css" href="css/master.css"> 
<html> 
<title>Current Orders</title> 
<body> 

<table> 
<?php 
// SQLSRV Query 
$results = sqlsrv_query($conn, $sql); 
if($results === false) { 
    die(print_r(sqlsrv_errors(), true)); 
} 
    echo " 
      <table border=1> 
      <tr> 
       <th>Order Number</th> 
       <th>Order Status</th> 
       <th>Order Type</th> 
       <th>Customer Order</th> 
       <th>Barcode</th> 
      </tr>"; 
    while ($row = sqlsrv_fetch_array($results)) 
    { 
     $odrnum = $row[1]; 
     $odrstatus = $row[2]; 
     $odrtype = $row[3]; 
     $custorder = $row[4];    

    echo " 
      <tr> 
       <td>$odrnum</td> 
       <td>$odrstatus</td> 
       <td>$odrtype</td> 
       <td>$custorder</td> 
       <td><img src="DrawBarcode.php?code=<?php echo $row[1];?>"/></td> 
      </tr>"; 
    } 
    echo "</table>"; 

?> 
</table> 
</body> 
</html> 

을해야한다. 또 다른 방법은 매우 비슷하지만 서버의 파일에 바코드를 생성 한 다음 img 태그의 소스로 바코드를 참조하는 것입니다.

+0

답장을 보내 주셔서 감사합니다. 그리는 방법이 많이 필요하므로이 방법을 사용하여 메모리를 초과하는 것을 발견했습니다. 이제는 파일을 서버에 저장 한 다음 참조하는 방법에 관심이 있습니다. 이 시나리오를 도와 주시겠습니까? – eternityhq

+0

http://www.barcodephp.com/en/userguide를 읽으면 BCGDrawing :: __ 구문의 첫 번째 매개 변수가 정확하게 파일 이름이라는 것을 알 수 있습니다. 매개 변수를 사용하는 경우 draw 메서드는 해당 파일 안에 바코드를 남겨 두어야하며 해당 파일을 img src로 간단히 사용할 수 있습니다. 그것이 모두 변경되면 기억 문제를 해결하지 못할 것입니다. BCGDrawing 객체를 다시 사용하고 이미지를 캐싱하는 방법에 대해 좀 더 연구해야합니다 (같은 이미지를 두 번 생성하지 않으려면) – Muc

+0

고마워요. 매우 도움이됩니다. – eternityhq