The attached project uses inline Java code and the ITEXT library to create various types of 1D and 2D barcodes. The barcodes are store in a PDF file(s). Change the code in the B4J class or add additional classes in the attached project to create separate PDF files for each of the different 1D and 2D barcodes.
Notice that I have commented the majority of code in the class module so that the project will only create PDF417, Datamatrix, and QR Codes - they are stored in Belinda.pdf that you will find in directory ItextBarcodes of the B4J project - see the code in the class module if you for eg want to save it to the /Files folder of the B4J project.
Sure you will figure out the rest. Browse the web - it is mighty helpful...
Posting the B4J project and the required library files that you should download from HERE (CLICK HERE)
Sample Code (Main Activity):
Code in the project class module:
Notice that I have commented the majority of code in the class module so that the project will only create PDF417, Datamatrix, and QR Codes - they are stored in Belinda.pdf that you will find in directory ItextBarcodes of the B4J project - see the code in the class module if you for eg want to save it to the /Files folder of the B4J project.
Sure you will figure out the rest. Browse the web - it is mighty helpful...
Posting the B4J project and the required library files that you should download from HERE (CLICK HERE)
Sample Code (Main Activity):
B4X:
#Region Project Attributes
#MainFormWidth: 800
#MainFormHeight: 600
#AdditionalJar: javase-2.2
#AdditionalJar: itextpdf-5.5.6
#End Region
Sub Process_Globals
Private fx As JFX
Private MainForm As Form
Dim itl As itextlib
End Sub
Sub AppStart (Form1 As Form, Args() As String)
MainForm = Form1
MainForm.SetFormStyle("UNIFIED")
MainForm.RootPane.LoadLayout("main") 'Load the layout file.
MainForm.Show
MainForm.BackColor = fx.Colors.ARGB(100,0,0,255)
itl.Initialize
'change the call here to add variables that you can pass to the class
'such as for eg the string to encode...It is hard coded in the class at present
'Also surf the web to find some other possibilities that you can add the the existing B4J class or by adding new classes
'Use something like "jd-gui" to explore "itextpdf-5.5.6.jar" for other possiblilities
itl.createPdf
End Sub
Code in the project class module:
B4X:
'Class module
Sub Class_Globals
Private nativeMe As JavaObject
End Sub
'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize
nativeMe = Me
End Sub
Public Sub createPdf()
Dim fn As String = "Belinda.pdf"
nativeMe.RunMethod("createPdf", Array(fn))
End Sub
#If Java
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Image;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.Barcode;
import com.itextpdf.text.pdf.Barcode128;
import com.itextpdf.text.pdf.Barcode39;
import com.itextpdf.text.pdf.BarcodeCodabar;
import com.itextpdf.text.pdf.BarcodeDatamatrix;
import com.itextpdf.text.pdf.BarcodeEAN;
import com.itextpdf.text.pdf.BarcodeEANSUPP;
import com.itextpdf.text.pdf.BarcodeInter25;
import com.itextpdf.text.pdf.BarcodePDF417;
import com.itextpdf.text.pdf.BarcodePostnet;
import com.itextpdf.text.pdf.BarcodeQRCode;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import java.io.File;
import java.io.FileOutputStream;
public void createPdf(String filename) throws IOException, DocumentException {
String configFilePath = new File(System.getProperty("user.dir")).getParent() + "/ItextBarcodes/";
// step 1
Document document = new Document(new Rectangle(340, 842));
// step 2
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(configFilePath + filename));
// step 3
document.open();
// step 4
PdfContentByte cb = writer.getDirectContent();
// // EAN 13
// document.add(new Paragraph("Barcode EAN.UCC-13"));
// BarcodeEAN codeEAN = new BarcodeEAN();
// codeEAN.setCode("4512345678906");
// document.add(new Paragraph("default:"));
// document.add(codeEAN.createImageWithBarcode(cb, null, null));
// codeEAN.setGuardBars(false);
// document.add(new Paragraph("without guard bars:"));
// document.add(codeEAN.createImageWithBarcode(cb, null, null));
// codeEAN.setBaseline(-1f);
// codeEAN.setGuardBars(true);
// document.add(new Paragraph("text above:"));
// document.add(codeEAN.createImageWithBarcode(cb, null, null));
// codeEAN.setBaseline(codeEAN.getSize());
//
// // UPC A
// document.add(new Paragraph("Barcode UCC-12 (UPC-A)"));
// codeEAN.setCodeType(Barcode.UPCA);
// codeEAN.setCode("785342304749");
// document.add(codeEAN.createImageWithBarcode(cb, null, null));
//
// // EAN 8
// document.add(new Paragraph("Barcode EAN.UCC-8"));
// codeEAN.setCodeType(Barcode.EAN8);
// codeEAN.setBarHeight(codeEAN.getSize() * 1.5f);
// codeEAN.setCode("34569870");
// document.add(codeEAN.createImageWithBarcode(cb, null, null));
//
// // UPC E
// document.add(new Paragraph("Barcode UPC-E"));
// codeEAN.setCodeType(Barcode.UPCE);
// codeEAN.setCode("03456781");
// document.add(codeEAN.createImageWithBarcode(cb, null, null));
// codeEAN.setBarHeight(codeEAN.getSize() * 3f);
//
// // EANSUPP
// document.add(new Paragraph("Bookland"));
// document.add(new Paragraph("ISBN 0-321-30474-8"));
// codeEAN.setCodeType(Barcode.EAN13);
// codeEAN.setCode("9781935182610");
// BarcodeEAN codeSUPP = new BarcodeEAN();
// codeSUPP.setCodeType(Barcode.SUPP5);
// codeSUPP.setCode("55999");
// codeSUPP.setBaseline(-2);
// BarcodeEANSUPP eanSupp = new BarcodeEANSUPP(codeEAN, codeSUPP);
// document.add(eanSupp.createImageWithBarcode(cb, null, BaseColor.BLUE));
//
// // CODE 128
// document.add(new Paragraph("Barcode 128"));
// Barcode128 code128 = new Barcode128();
// code128.setCode("0123456789 hello");
// document.add(code128.createImageWithBarcode(cb, null, null));
// code128.setCode("0123456789\uffffMy Raw Barcode (0 - 9)");
// code128.setCodeType(Barcode.CODE128_RAW);
// document.add(code128.createImageWithBarcode(cb, null, null));
//
// // Data for the barcode :
// String code402 = "24132399420058289";
// String code90 = "3700000050";
// String code421 = "422356";
// StringBuffer data = new StringBuffer(code402);
// data.append(Barcode128.FNC1);
// data.append(code90);
// data.append(Barcode128.FNC1);
// data.append(code421);
// Barcode128 shipBarCode = new Barcode128();
// shipBarCode.setX(0.75f);
// shipBarCode.setN(1.5f);
// shipBarCode.setSize(10f);
// shipBarCode.setTextAlignment(Element.ALIGN_CENTER);
// shipBarCode.setBaseline(10f);
// shipBarCode.setBarHeight(50f);
// shipBarCode.setCode(data.toString());
// document.add(shipBarCode.createImageWithBarcode(cb, BaseColor.BLACK,
// BaseColor.BLUE));
//
// // it is composed of 3 blocks whith AI 01, 3101 and 10
// Barcode128 uccEan128 = new Barcode128();
// uccEan128.setCodeType(Barcode.CODE128_UCC);
// uccEan128.setCode("(01)00000090311314(10)ABC123(15)060916");
// document.add(uccEan128.createImageWithBarcode(cb, BaseColor.BLUE,
// BaseColor.BLACK));
// uccEan128.setCode("0191234567890121310100035510ABC123");
// document.add(uccEan128.createImageWithBarcode(cb, BaseColor.BLUE,
// BaseColor.RED));
// uccEan128.setCode("(01)28880123456788");
// document.add(uccEan128.createImageWithBarcode(cb, BaseColor.BLUE,
// BaseColor.BLACK));
//
// // INTER25
// document.add(new Paragraph("Barcode Interleaved 2 of 5"));
// BarcodeInter25 code25 = new BarcodeInter25();
// code25.setGenerateChecksum(true);
// code25.setCode("41-1200076041-001");
// document.add(code25.createImageWithBarcode(cb, null, null));
// code25.setCode("411200076041001");
// document.add(code25.createImageWithBarcode(cb, null, null));
// code25.setCode("0611012345678");
// code25.setChecksumText(true);
// document.add(code25.createImageWithBarcode(cb, null, null));
//
// // POSTNET
// document.add(new Paragraph("Barcode Postnet"));
// BarcodePostnet codePost = new BarcodePostnet();
// document.add(new Paragraph("ZIP"));
// codePost.setCode("01234");
// document.add(codePost.createImageWithBarcode(cb, null, null));
// document.add(new Paragraph("ZIP+4"));
// codePost.setCode("012345678");
// document.add(codePost.createImageWithBarcode(cb, null, null));
// document.add(new Paragraph("ZIP+4 and dp"));
// codePost.setCode("01234567890");
// document.add(codePost.createImageWithBarcode(cb, null, null));
//
// document.add(new Paragraph("Barcode Planet"));
// BarcodePostnet codePlanet = new BarcodePostnet();
// codePlanet.setCode("01234567890");
// codePlanet.setCodeType(Barcode.PLANET);
// document.add(codePlanet.createImageWithBarcode(cb, null, null));
//
// // CODE 39
// document.add(new Paragraph("Barcode 3 of 9"));
// Barcode39 code39 = new Barcode39();
// code39.setCode("ITEXT IN ACTION");
// document.add(code39.createImageWithBarcode(cb, null, null));
//
// document.add(new Paragraph("Barcode 3 of 9 extended"));
// Barcode39 code39ext = new Barcode39();
// code39ext.setCode("iText in Action");
// code39ext.setStartStopText(false);
// code39ext.setExtended(true);
// document.add(code39ext.createImageWithBarcode(cb, null, null));
//
// // CODABAR
// document.add(new Paragraph("Codabar"));
// BarcodeCodabar codabar = new BarcodeCodabar();
// codabar.setCode("A123A");
// codabar.setStartStopText(true);
// document.add(codabar.createImageWithBarcode(cb, null, null));
// PDF417
document.add(new Paragraph("Barcode PDF417"));
BarcodePDF417 pdf417 = new BarcodePDF417();
String text = "Hi. This was created by Johan Schoeman - just for the fun of it. "
+ "You can use it or you can loose it - it is up to you. "
+ "I suggest you search the internet for other examples of how to use the ITEXT library. "
+ "It might open up a whole new world of possibilities. - so, enjoy it and have some fun!";
pdf417.setText(text);
Image img = pdf417.getImage();
img.scalePercent(50, 50 * pdf417.getYHeight());
document.add(img);
// Datamatrix
document.add(new Paragraph("Barcode Datamatrix"));
BarcodeDatamatrix datamatrix = new BarcodeDatamatrix();
datamatrix.generate(text);
img = datamatrix.createImage();
document.add(img);
//QR Code
document.add(new Paragraph("Barcode QRCode"));
BarcodeQRCode qrcode = new BarcodeQRCode(text, 1, 1, null);
img = qrcode.getImage();
document.add(img);
// step 5
document.close();
}
#End If