Introduction
A barcode is an image of data that can be read by machines. Barcodes are often used to help organize information or prices about an object. If you own a business, being able to read barcodes such as Code39, Code128, PDF417, EAN-8, EAN-13, DataMatrix and QR from different sources, is important. In this article, you will learn how to read barcode from MS office documents and PDFs in Java by using Spire.Office for Java library.
- Read Barcode in Word in Java
- Read Barcode in Excel in Java
- Read Barcode in PowerPoint in Java
- Read Barcode in PDF in Java
Add Spire.Office.jar as a Dependency
Spire.Office for Java is a class library for processing Word, Excel, PowerPoint, PDF and many more file formats in Java applications. You can download it from E-iceblue website and add the Spire.Office.jar file in your Java application as a dependency. If you use Maven, you can easily import the jar file in your application using the following configurations.
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.office</artifactId>
<verson>7.10.1</version>
</dependency>
</dependencies>
Steps to Read Barcode from Different Documents
Using Spire.Office to read barcode from various types of documents can be very simply. Firstly, we just need to convert these files to BufferedImage, and then use the BarcodeScanner.scan method to detect and recognize all barcodes in the image. The following are the detailed steps.
- Create an object of the class that represents Word, Excel, PowerPoint or PDF.
- Load the sample document from file using loadFromFile method.
- Convert a specific page, worksheet or slide to image.
- Read all barcodes from the image using scan method.
Read Barcode in Word in Java
import com.spire.barcode.BarcodeScanner;
import com.spire.doc.Document;
import com.spire.doc.documents.ImageType;
import java.awt.image.BufferedImage;
public class ReadBarcodeInWord {
public static void main(String[] args) {
//Create a Document object
Document doc = new Document();
//Load a sample Word document
doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\Barcode.docx");
//Convert the first page to image
BufferedImage image = doc.saveToImages(0, ImageType.Bitmap);
//Scan barcode from the image
String[] data = BarcodeScanner.scan(image);
//Print out the result
for (int i = 0; i < data.length; i++)
{
System.out.println(data[i]);
}
}
}
Read Barcode in Excel in Java
import com.spire.barcode.BarcodeScanner;
import com.spire.xls.CellRange;
import com.spire.xls.Workbook;
import java.awt.image.BufferedImage;
public class ReadBarcodeInExcel {
public static void main(String[] args) {
//Create a Workbook object
Workbook wb = new Workbook();
//Load a sample Excel file
wb.loadFromFile("C:\\Users\\Administrator\\Desktop\\Barcode.xlsx");
//Get all located range from the first worksheet
CellRange cellRange = wb.getWorksheets().get(0).getAllocatedRange();
//Convert the range to image
BufferedImage image = wb.getWorksheets().get(0).saveToImage(1,1,cellRange.getLastRow(),cellRange.getLastColumn());
//Scan barcode from the image
String[] data = BarcodeScanner.scan(image);
//Print out the result
for (int i = 0; i < data.length; i++)
{
System.out.println(data[i]);
}
}
}
Read Barcode in PowerPoint in Java
import com.spire.barcode.BarcodeScanner;
import com.spire.presentation.Presentation;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class ReadBarcodeInPowerPoint {
public static void main(String[] args) throws Exception {
//Create a Presentation object
Presentation presentation = new Presentation();
//Load a sample PowerPoint file
presentation.loadFromFile("C:\\Users\\Administrator\\Desktop\\barcode.pptx");
//Save the first slide as image
BufferedImage image = presentation.getSlides().get(0).saveAsImage();
//Convert image to stream
InputStream imageStream = bufferedImageToInputStream(image);
//Scan barcode from the image stream
String[] data = BarcodeScanner.scan(imageStream);
//Print out the result
for (int i = 0; i < data.length; i++) {
System.out.println(data[i]);
}
}
public static InputStream bufferedImageToInputStream(BufferedImage image) throws IOException {
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image, "png", os);
InputStream input = new ByteArrayInputStream(os.toByteArray());
return input;
}
}
Read Barcode in PDF in Java
import com.spire.barcode.BarcodeScanner;
import com.spire.license.LicenseProvider;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.graphics.PdfImageType;
import java.awt.image.BufferedImage;
public class ReadBarcodeInPdf {
public static void main(String[] args) {
//Create a PdfDocument object
PdfDocument doc = new PdfDocument();
//Load a sample PDF file
doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\Barcode.pdf");
//Convert the first page to image
BufferedImage image = doc.saveAsImage(0, PdfImageType.Bitmap);
//Scan barcode from the image
String[] data = BarcodeScanner.scan(image);
//Print out the result
for (int i = 0; i < data.length; i++)
{
System.out.println(data[i]);
}
}
}
Note:
If you get a message that reads “Not supported in Spire.Barcode Evaluation version”, it means that a specific barcode type cannot be recognized without a license. You can apply for a one-month temporary from E-iceblue to get rid of the limitation.