BarcodeBean.java 3.67 KB
package fi.insomnia.bortal.beans;

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Date;

import javax.imageio.ImageIO;

import org.jbarcode.JBarcode;
import org.jbarcode.JBarcodeFactory;
import org.krysalis.barcode4j.BarcodeGenerator;
import org.krysalis.barcode4j.impl.code128.Code128Bean;
import org.krysalis.barcode4j.impl.datamatrix.DataMatrixBean;
import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider;

import com.pdfjet.A4;
import com.pdfjet.Image;
import com.pdfjet.ImageType;
import com.pdfjet.IoStream;
import com.pdfjet.PDF;
import com.pdfjet.Page;

public class BarcodeBean {

    public void barcode4j() throws FileNotFoundException, Exception {
        long start = new Date().getTime();

        File outFile = new File("/tmp/rairai2.pdf");
        PDF pdf = new PDF(new FileOutputStream(outFile));
        System.out.println("pre CreateCode: " + (new Date().getTime() - start));

        BarcodeGenerator bean = new DataMatrixBean();

        ByteArrayOutputStream out = new ByteArrayOutputStream();
        System.out.println("created: " + (new Date().getTime() - start));

        BitmapCanvasProvider canvas = new BitmapCanvasProvider(
                out, "image/png", 150, BufferedImage.TYPE_BYTE_BINARY, false, 0);
     
        bean.generateBarcode(canvas, "Foobar Rairai");
        canvas.finish();
        
        ByteArrayInputStream istream = new ByteArrayInputStream(out.toByteArray());

        Image img = new Image(pdf, istream, ImageType.PNG);
        Page page = new Page(pdf, A4.PORTRAIT);
        img.drawOn(page);
        System.out.println("post draw: " + (new Date().getTime() - start));

        pdf.flush();
        System.out.println("post flush: " + (new Date().getTime() - start));

    }

    public String asdasd() throws FileNotFoundException, Exception {
           long start = new Date().getTime();
        JBarcode code = JBarcodeFactory.getInstance().createCode128();
        System.out.println("pre CreateCode: " + (new Date().getTime() - start));

        BufferedImage barcode = code.createBarcode("Foobar Rairai");
        System.out.println("created: " + (new Date().getTime() - start));
        ImageIO.write(barcode, "JPEG", new File("/tmp/rairai.jpeg"));
        System.out.println("To File: " + (new Date().getTime() - start));

        File out = new File("/tmp/rairai2.pdf");
        PDF pdf = new PDF(new FileOutputStream(out));

        System.out.println("Pre stream: " + (new Date().getTime() - start));

        ByteArrayOutputStream jpegstream = new ByteArrayOutputStream();
        ImageIO.write(barcode, "JPEG", jpegstream);
        System.out.println("post stream: " + (new Date().getTime() - start));

        ByteArrayInputStream istream = new ByteArrayInputStream(jpegstream.toByteArray());
        System.out.println("post istream: " + (new Date().getTime() - start));

        Page page = new Page(pdf, A4.PORTRAIT);

        
        Image img = new Image(pdf, istream, ImageType.JPEG);
        img.drawOn(page);
        System.out.println("post draw: " + (new Date().getTime() - start));

        pdf.flush();
        System.out.println("post flush: " + (new Date().getTime() - start));

        return "";
    }

    public static void main(String[] args) {
        BarcodeBean bb = new BarcodeBean();
        try {
            bb.barcode4j();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}