ในบทความนี้ เราจะมาแนะนำการ สร้าง Barcode อย่างง่าย ด้วย Library
PHP Barcode Generator กันครับ
https://github.com/picqer/php-barcode-generator
รายละเอียด
PHP Barcode Generator นั้นรองรับการสร้าง Barcode ในรูปแบบของไฟล์
- SVG
- PNG
- JPG
- HTML
สำหรับ Barcode Type รองรับการสร้าง Barcode ได้หลายรูปแบบ เช่น
- TYPE_CODE_39
- TYPE_CODE_128
- TYPE_EAN_13
- และ อื่น ๆ
ซึ่งแต่ละแบบ จะเหมาะกับลักษณะ ของ การเก็บข้อมูล ที่ต่างกันครับ ต้องเลือกรูปแบบให้เหมาะสมกับ Barcode ที่เราจะสร้างครับ
การติดตั้ง PHP Barcode Generator
การติดตั้งเราต้องทำการติดตั้งด้วย Comporser ครับ
composer require picqer/php-barcode-generator
สำหรับใครที่ไม่อยาก ติดตั้งด้วย Composer สามารถ Load ตัวอย่าง Code ได้ในตอนท้ายของบทความครับ
การใช้งาน PHP Barcode Generator
<?php include "src/BarcodeGenerator.php"; include "src/BarcodeGeneratorHTML.php"; $code = "000001";//รหัส Barcode ที่ต้องการสร้าง $generator = new Picqer\Barcode\BarcodeGeneratorHTML(); $border = 2;//กำหนดความหน้าของเส้น Barcode $height = 50;//กำหนดความสูงของ Barcode echo $generator->getBarcode($code , $generator::TYPE_CODE_128,$border,$height); echo $code ; echo "<hr>"; ?>
ตัวอย่างผลการทำงาน
ตัวอย่างการสร้าง Barcode รายการสินค้าจากฐานข้อมูล MySQL
สร้างฐานข้อมูล Barcode ดังนี้
CREATE TABLE `barcode` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code` varchar(50) DEFAULT NULL, `product` varchar(50) DEFAULT NULL, `price` int(11) DEFAULT NULL, `units` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; insert into barcode (id, code, product, price, units) values (1, '373343328-9', 'Crab - Meat', 46, 'PGH'); insert into barcode (id, code, product, price, units) values (2, '476988663-2', 'Chicken - Wieners', 37, 'TPVG'); insert into barcode (id, code, product, price, units) values (3, '986716735-X', 'Flower - Commercial Bronze', 23, 'UBND'); insert into barcode (id, code, product, price, units) values (4, '304731212-5', 'Bulgar', 100, 'NXPI'); insert into barcode (id, code, product, price, units) values (5, '268711160-0', 'Milk - Buttermilk', 35, 'SSYS'); insert into barcode (id, code, product, price, units) values (6, '203075759-4', 'Veal - Heart', 40, 'EOT'); insert into barcode (id, code, product, price, units) values (7, '513220011-7', 'Soup - Knorr, Veg / Beef', 60, 'TSRO'); insert into barcode (id, code, product, price, units) values (8, '719168560-3', 'Squash - Sunburst', 30, 'LHCG'); insert into barcode (id, code, product, price, units) values (9, '532894227-2', 'Arizona - Green Tea', 56, 'BFO'); insert into barcode (id, code, product, price, units) values (10, '784923698-X', 'Dill - Primerba, Paste', 78, 'CFRX');
สร้างไฟล์ Example.php ดังนี้
1.ในไฟล์ Example บรรทัดที่ 1 – 2 จะมีการ Include ไฟล์ BarcodeGenerator.php และ BarcodeGeneratorHTML.php
2.สร้าง function barcode รับค่าตัวแปร $code เพื่อสร้าง barcode
3.ในส่วนของการแสดงผล Table มีการเรียก function barcode เพื่อแสดงผล barcode
<?php include "src/BarcodeGenerator.php"; include "src/BarcodeGeneratorHTML.php"; function barcode($code){ $generator = new Picqer\Barcode\BarcodeGeneratorHTML(); $border = 2;//กำหนดความหน้าของเส้น Barcode $height = 40;//กำหนดความสูงของ Barcode return $generator->getBarcode($code , $generator::TYPE_CODE_128,$border,$height); } $servername = "localhost"; $username = "root"; $password = ""; $db_name = "barcode"; // สร้างการเชื่อมต่อฐานข้อมูล $conn = mysqli_connect($servername, $username, $password,$db_name); //กำหนด charset ให้เป็น utf8 เพื่อรองรับภาษาไทย mysqli_set_charset($conn,"utf8"); // ตรวจสอบการเชื่อมต่อฐานข้อมูล if (!$conn) { //กรณีเชื่อมต่อไม่ได้ die("Connection failed: " . mysqli_connect_error()); } ?> <!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous"> <title>Barcode Genrator</title> </head> <body> <div class="container"> <h4>Barcode Genrator</h4> <?php $sql = "SELECT * FROM barcode"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { echo "<table class='table'>"; while ($r = mysqli_fetch_assoc($result)) { echo "<tr>"; echo "<td>"; echo barcode($r['code'])."<br>"; echo "รหัส : ".$r['code']."<br>"; echo "สินค้า : ".$r['product']."<br>"; echo "ราคา : ".$r['price']." บาท"; echo "</td>"; echo "</tr>"; } echo "</table>"; } mysqli_close($conn); ?> </div> <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js" integrity="sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T" crossorigin="anonymous"></script> </body> </html>
ตัวอย่างผลการทำงาน
SourceCode ประกอบบทความ
ขอขอบคุณข้อมูลจาก
https://github.com/picqer/php-barcode-generator