This is a ScriptMaster module sent in by Benjamin Brittain. It generates bar codes using the barcode4j library from Krysalis. This only demonstrates 4 bar code types, but there are many more supported by this library.
===Input Variables===
barcode_contents=07g129091pe01
type=datamatrixrectangle
size=10
===Jar Files===
Barcode4j.jar (268.1k) Barcodes <http://sourceforge.net/projects/barcode4j/files/barcode4j/>
===Notes===
===Script===
import org.krysalis.barcode4j.impl.datamatrix.DataMatrixBean
import org.krysalis.barcode4j.impl.code128.Code128Bean
import org.krysalis.barcode4j.impl.pdf417.PDF417Bean
import org.krysalis.barcode4j.output.java2d.Java2DCanvasProvider
import org.krysalis.barcode4j.impl.datamatrix.SymbolShapeHint
import java.awt.*
import java.awt.image.*
if (type == 'datamatrixrectangle'){
DataMatrixBean bean = new DataMatrixBean();
bean.setModuleWidth(Integer.parseInt(size));
bean.setShape(SymbolShapeHint.FORCE_RECTANGLE )
s = bean.calcDimensions(barcode_contents);
ss = Math.floor(s.getWidthPlusQuiet()).toInteger();
image = new BufferedImage(ss, ss, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = image.getGraphics();
g2.setBackground(Color.WHITE);
g2.clearRect(0, 0, image.getWidth(), image.getHeight());
g2.setColor(Color.BLACK);
Java2DCanvasProvider cc = new Java2DCanvasProvider(g2, 0);
bean.generateBarcode(cc, barcode_contents);
}
if (type == 'datamatrix'){
DataMatrixBean bean = new DataMatrixBean();
bean.setModuleWidth(Integer.parseInt(size));
bean.setShape(SymbolShapeHint.FORCE_SQUARE )
s = bean.calcDimensions(barcode_contents);
ss = Math.floor(s.getWidthPlusQuiet()).toInteger();
image = new BufferedImage(ss, ss, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = image.getGraphics();
g2.setBackground(Color.WHITE);
g2.clearRect(0, 0, image.getWidth(), image.getHeight());
g2.setColor(Color.BLACK);
Java2DCanvasProvider cc = new Java2DCanvasProvider(g2, 0);
bean.generateBarcode(cc, barcode_contents);
}
if (type == 'code128'){
Code128Bean bean = new Code128Bean()
bean.setModuleWidth(2);
bean.doQuietZone(false)
bb = Integer.parseInt(size)
bean.setBarHeight(bb)
s = bean.calcDimensions(barcode_contents)
zz = Math.ceil(s.getWidthPlusQuiet()).toInteger()
ss = Math.floor(s.getWidthPlusQuiet()).toInteger()
image = new BufferedImage(ss , bb, BufferedImage.TYPE_INT_RGB)
Graphics2D g2 = image.getGraphics()
g2.setBackground(Color.WHITE);
g2.clearRect(0, 0, image.getWidth(), image.getHeight());
g2.setColor(Color.BLACK);
Java2DCanvasProvider cc = new Java2DCanvasProvider(g2, 0)
bean.generateBarcode(cc, barcode_contents)
}
if (type == 'pdf417'){
PDF417Bean bean = new PDF417Bean();
bean.setModuleWidth(2);
bean.doQuietZone(false)
bean.setBarHeight(Integer.parseInt(size));
s = bean.calcDimensions(barcode_contents)
zz = Math.ceil(s.getWidthPlusQuiet()).toInteger()
ss = Math.floor(s.getWidthPlusQuiet()).toInteger()
image = new BufferedImage(ss , ss, BufferedImage.TYPE_INT_RGB)
Graphics2D g2 = image.getGraphics()
g2.setBackground(Color.WHITE);
g2.clearRect(0, 0, image.getWidth(), image.getHeight());
g2.setColor(Color.BLACK);
Java2DCanvasProvider cc = new Java2DCanvasProvider(g2, 0)
bean.generateBarcode(cc, barcode_contents)
}
return image;