This technical tip shows how we can use Aspose.Pdf for Java to recognize barcodes from PDF documents.
Generate Barcode and Insert in PDF Document
First, we will use Aspose.BarCode for Java and generate a barcode image. We will save this image to a file on disk. Then, we will use Aspose.Pdf for Java to create a Adobe PDF document and insert this barcode in that document. For the recognition part, we will first extract images from the PDF document using Aspose.Pdf.Kit for Java. Once images are extracted, we will pass these images to Aspose.BarCode for Java for barcode recognition.
Following is a complete java program to generate and recognize barcodes from Adobe PDF documents:
[Java]
import com.aspose.barcode.*;
import com.aspose.barcoderecognition.BarCodeReadType;
import com.aspose.barcoderecognition.BarCodeReader;
import com.aspose.pdf.elements.Pdf;
import com.aspose.pdf.elements.Section;
import com.aspose.pdf.kit.License;
import com.aspose.pdf.kit.PdfExtractor;
import java.awt.Toolkit;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class RecognitionFromPdf
{
public static void main(String[] args)
{
try
{
// set license
License licPdfKit = new License();
FileInputStream stream = new FileInputStream("AsposeLicense.lic");
licPdfKit.setLicense(stream);
com.aspose.barcode.License licBarCode = new com.aspose.barcode.License();
licBarCode.setLicense("AsposeLicense.lic");
String strPdfDoc = " output1.pdf";
String strBarCodeImage = "";
// generate barcode and add to pdf file
BarCodeBuilder builder = new BarCodeBuilder();
builder.setSymbology(Symbology.CODE39STANDARD);
builder.setCodeText("test-123");
String strBarCodeImageSave = " img.jpg";
builder.save(strBarCodeImageSave);
//Instantiate a Pdf object by calling its empty constructor
Pdf pdf1 = new Pdf();
//Create a section in the Pdf object
Section sec1 = pdf1.getSections().add();
//Create an image object in the section
com.aspose.pdf.elements.Image img1 = new com.aspose.pdf.elements.Image(sec1);
//Add image object into the Paragraphs collection of the section
sec1.getParagraphs().add(img1);
//Set the path of image file
img1.getImageInfo().setFile(strBarCodeImageSave);
img1.getImageInfo().setTitle("JPEG image");
//Save the Pdf
FileOutputStream out = new FileOutputStream(new File(strPdfDoc));
pdf1.save(out);
//Instantiate PdfExtractor object
PdfExtractor extractor = new PdfExtractor();
//Bind the input PDF document to extractor
extractor.bindPdf(strPdfDoc);
//Extract images from the input PDF document
extractor.extractImage();
String suffix = ".jpg";
int imageCount = 1;
while (extractor.hasNextImage()) {
System.out.println("Extracting image " + imageCount);
strBarCodeImage = "tmpbarcode" + imageCount + suffix;
extractor.getNextImage(strBarCodeImage);
// recognize barcode from image
BarCodeReader reader = new BarCodeReader(Toolkit.getDefaultToolkit().getImage(strBarCodeImage),BarCodeReadType.Code39Standard);
while (reader.read())
{
System.out.println("codetext: " + reader.getCodeText());
}
imageCount++;
}
}
catch(Exception ex)
{
System.out.println(ex.getMessage());
}
}
}
More about Aspose.BarCode for Java