0

SQL クエリから取得した結果ごとにバーコードを作成しようとしています。基本的に、結果は HTML テーブルに表示されます。最後の列には、$row=[1] の値にバーコード = を表示します。私はこれを行う方法について完全に途方に暮れています。

<?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>

私はそれを達成する方法についての手がかりがありません。

4

1 に答える 1

1

あなたがそれに近づいたので、それはそれほど単純ではないようです。私はあなたが示しているライブラリを使用したことがありません。あなたはhttp://www.barcodephp.com/en/manual/BCGcode39を使用していると思います。

その Web サイトに示されている例では、draw()メソッドからの出力は、生成されるイメージに対応するバイトストリームであることがわかります。やりたいことを実現する方法はたくさんあります。そのうちの 1 つは、文字列を受け取り、対応するバーコードを出力し、それを 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 - テーブル.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 タグのソースとして参照することです。

于 2013-06-21T16:35:21.193 に答える