How to Read Barcode from PDF Documents

Skip to end of metadata
Go to start of metadata
In this article, we will explain 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.

Extract Images from PDF Document and Read Barcodes

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.setSymbologyType(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(strBarCodeImage,BarCodeReadType.getCode39Standard());
                while (reader.read())
                {
                    System.out.println("codetext: " + reader.getCodeText());
                }
                imageCount++;
                reader.close();
            }
        }
        catch(Exception ex)
        {
            System.out.println(ex.getMessage());
        }
    }
}
 
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.