ข้อมูลองค์ความรู้โดย
กฤษณี โภโต
ตำแหน่ง ผู้จัดการ

สร้าง BarCode จาก Java โดยใช้ lib ของ ZXing ( Open Source )

ประเภททางด้าน IT หลัก :   Development & Integration
ประเภททางด้าน IT ย่อย :   Java
  ลงข้อมูลเมื่อ 13:38:50 10/05/2013
  Page View (2557) แบ่งปัน

สร้าง BarCode จาก Java โดยใช้ lib ของ ZXing ( Open Source )

lib ของ Zxing เป็น source Code ของภาษา Java ที่มี Class ต่างๆ ที่สามารถสร้าง BarCode ได้ในหลายๆๆรูปแบบ ทั้ง 1มิติและ 2 มิติ โดยสามารถดาวโหลด Source Code ได้ที่นี่ ดาวโหลด

เมื่อได้ทำการดาวโหลดมาแล้วให้ Unzip ออกมาจะได้ไฟล์ Source ต่างๆของ ZXing ให้ทำการรวมไฟล์ Class ของ โพล์เดอร์ core และ javase (วิธีทำหาได้จาก Google เลยนะ) เมื่อได้ไฟล์ core.jar และ javase.jar มาแล้วให้ทำการ Import เข้าไปยัง lib ของโปรเจ็คของเรา

แล้วทำการเขียน Function Main เข้าไป ตามโค้ด้านล่างนี้


Code:
package test_barcode;

import com.google.zxing.ChecksumException;
import com.google.zxing.FormatException;
import com.google.zxing.NotFoundException;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.Reader;
import com.google.zxing.Result;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.oned.*;
import com.google.zxing.qrcode.QRCodeWriter;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;

public class Test_barcode {

    public static void main(String[] args) throws FileNotFoundException, IOException, WriterException, NotFoundException, ChecksumException, FormatException {
        // TODO code application logic here
        int width_Barcode_nomal = 440;
        int height_Barcode_nomal = 48;


        BitMatrix bitMatrix_Barcode_nomal;

        bitMatrix_Barcode_nomal = new Code128Writer().encode("1014578944752", BarcodeFormat.CODE_128, width_Barcode_nomal, height_Barcode_nomal);
        MatrixToImageWriter.writeToStream(bitMatrix_Barcode_nomal, "png", new FileOutputStream(new File("zxing_barcode.png")));

        String text = "48729678987965445648544588777"; // this is the text that we want to encode

        int width = 400;
        int height = 300; // change the height and width as per your requirement

// (ImageIO.getWriterFormatNames() returns a list of supported formats)
        String imageFormat = "png"; // could be "gif", "tiff", "jpeg" 

        BitMatrix bitMatrix = new QRCodeWriter().encode(text, BarcodeFormat.QR_CODE, width, height);
        MatrixToImageWriter.writeToStream(bitMatrix, imageFormat, new FileOutputStream(new File("qrcode.png")));

        InputStream barCodeInputStream = new FileInputStream("zxing_barcode.png");
        BufferedImage barCodeBufferedImage = ImageIO.read(barCodeInputStream);

        LuminanceSource source = new BufferedImageLuminanceSource(barCodeBufferedImage);
        BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
        Reader reader = new MultiFormatReader();
        Result result = reader.decode(bitmap);

        System.out.println("Barcode text is " + result.getText());


    }
}

ก็จะได้บาร์โค้ดที่อยู่ในรูปแบบรูปภาพ



ที่มา : http://citecclub.org



องค์ความรู้ที่มีผู้อ่านมากสุด
บทที่ 13 Math Function
ในการเขียนโปรแกรม มีบางครั้งที่เราต้องอาศัยการคำนวณทางคณิตศาสตร์ JavaScript ก็มีคุณสมบัติในการคำนวณทางคณิตศาสตร์กะเค้าเหมือนกันครับ

โดย... กฤษณี โภโต

บทที่ 2 เรื่องของตัวแปร JavaScript
JavaScript ก็เหมือนภาษาที่ใช้เขียนโปรแกรมทั่วไป ตรงที่มีตัวแปรสำหรับเก็บค่า จากส่วนหนึ่งของ Program แล้วก็เอาไปใช้ในส่วนอื่นๆได้ ตัวแปรก็คือ ชื่อที่เรากำหนดขึ้นมาสำหรับเก็บค่า อย่างเช่น เราอาจกำหนดตัวแปรชื่อว่า imageName เพื่อไปเก็บชื่อไฟล์ภาพๆหนึ่ง หรือ อาจกำหนดให้ amount ไปเก็บจำนวนเต็ม เป็นต้น

โดย... กฤษณี โภโต

บทที่ 9 Document Object
Document object คืออะไร Document Object หมายถึงเอกสาร HTML ที่เป็นเวบเพจที่กำลังแสดงอยู่ในหน้าต่างหลัก เป็น Propertiy ของ window (window.document) Document Object เปรียบเสมือนหน้าหนังสือ หากคุณลองเปิดหนังสือดูจะเห็น หมายเลขหน้า และ หมายเลขบท ในทาง OOP หมายเลขหน้าและหมายเลขบทเหล่านั้นก็เป็น Properties สำหรับบอกคุณสมบัติ ของหน้านั้น ว่าอยู่ในหน้าที่เท่าไหร่ บทใด นอกจากนี้ ในหน้าหนังสือยังมีเนื้อหาสาระที่ประกอบอยู่ภายใน ไม่ว่าจะเป็นเนื้อหา หัวข้อ ย่อหน้า รูปภาพ ตาราง ฯลฯ สิ่งเหล่านี้ก็นับเป็น Properties ของหน้าหนังสือเช่นกันครับ

โดย... กฤษณี โภโต

บทที่ 14 String
ไม่ว่าจะเขียนโปรแกรมด้วยภาษาใด การจัดการกับ String ก็เป็นความสามารถที่ขาดไม่ได้ ใน JavaScript ก็เช่นกัน

โดย... กฤษณี โภโต

บทที่ 10 Form Java
คุณคงเคยพบกับ Banner ข้างบนนี้มาก่อนนะครับ เจ้านี่แหละ มันเกิดจากการนำ object form ไปประยุกต์ ใช้ กับ setTimeout ในบทที่ผ่านมา และ นอกจากนี้แล้ว Form ยังมีคุณสมบัติน่าสนใจอีกมาก ทั้ง Button Checkbox radio ฯลฯ รวมทั้ง text ที่อยู่ข้างบนนี้ด้วยครับ

โดย... กฤษณี โภโต

บทที่ 6 Event Java
Event คืออะไร

โดย... กฤษณี โภโต

บทที่ 12 Images
บทที่ 12 Images

โดย... กฤษณี โภโต

บทที่ 7 OOP for JavaScript
Object เป็นความสามารถที่สำคัญอย่างหนึ่งของ JavaScript เรียกได้ว่าเป็นพระเอกของเรื่องเลยเชียวนะ หน้านี้ผมจะแนะนำให้รู้จักกับ Object ก่อนว่าเป็นอย่างไรนะครับ

โดย... กฤษณี โภโต

บทที่ 11 Links
บทที่ 11 Links

โดย... กฤษณี โภโต

บทที่ 3 Operator in JavaScript
บทที่ 3 Operator in JavaScript

โดย... กฤษณี โภโต