BarcodeUtils.java 4.51 KB
package fi.insomnia.bortal.utilities;

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

import org.krysalis.barcode4j.BarcodeDimension;
import org.krysalis.barcode4j.BarcodeGenerator;
import org.krysalis.barcode4j.impl.code128.Code128Bean;
import org.krysalis.barcode4j.impl.upcean.EAN13Bean;
import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider;

public class BarcodeUtils {

	public static InputStream getBarcode(String message) throws IOException {
		// BarcodeGenerator bean = new DataMatrixBean();
		BarcodeGenerator bean = new Code128Bean();
		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);

		canvas.establishDimensions(new BarcodeDimension(200, 15));

		bean.generateBarcode(canvas, message);
		canvas.finish();

		ByteArrayInputStream istream = new ByteArrayInputStream(out.toByteArray());
		return istream;
	}

	public static InputStream getBarcodeEAN(String message) throws IOException {
		// BarcodeGenerator bean = new DataMatrixBean();
		BarcodeGenerator bean = new EAN13Bean();
		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);

		canvas.establishDimensions(new BarcodeDimension(200, 15));

		bean.generateBarcode(canvas, message);
		canvas.finish();

		ByteArrayInputStream istream = new ByteArrayInputStream(out.toByteArray());
		return istream;
	}
	// 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) {
	// BarcodeUtils bb = new BarcodeUtils();
	// try {
	// bb.barcode4j();
	// } catch (FileNotFoundException e) {
	// // TODO Auto-generated catch block
	// e.printStackTrace();
	// } catch (Exception e) {
	// // TODO Auto-generated catch block
	// e.printStackTrace();
	// }
	// }
}