一个条形码,由条形和空间(或点)组成,是数字和角色的可读代表。如今,条形码已在杂货店,医生办公室,律师事务所广泛使用,邮局,零售店和无数其他商店。能够阅读 code39 , code128 , pdf417 , datamatrix , qr 和来自各种文档的其他条形码(例如Word,Excel,PowerPoint和PDF)可能是一个真正的好处。
在本文中,我将介绍如何使用Spire.Office for Java读取MS Office文档和PDF的条形码。此库支持了40多个以上以上通常看到的1D或2D条形码类型。
- Read Barcode from Word in Java
- Read Barcode from Excel in Java
- Read Barcode from PowerPoint in Java
- Read Barcode from PDF in Java
添加spire.offfice.jar作为依赖关系
如果您正在从事Maven项目,则可以使用以下方式将依赖项包括在pom.xml文件中:
<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>
<version>7.12.4</version>
</dependency>
</dependencies>
如果您不使用Maven,则可以从this location中的zip文件中找到所需的JAR文件。将所有JAR文件包括在应用程序LIB文件夹中以运行本教程中给出的示例代码。
从Java中读取文字的条形码
以下是使用spire.office for Java读取文字的特定页面的条形码的步骤。
- 创建文档对象。
- 使用 document.loadfromfile() methot。加载包含条形码的示例单词文件。
- 使用 document.savetoimages(int PageIndex,ImageType类型)方法。
- 使用 barcodescanner.scan()()方法扫描条形码和返回字符串阵列中的结果。
import com.spire.barcode.BarcodeScanner;
import com.spire.doc.Document;
import com.spire.doc.documents.ImageType;
import java.awt.image.BufferedImage;
public class ReadBarcodeFromWord {
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\\Invoice.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]);
}
}
}
阅读Java中Excel的条形码
以下是使用spire.office for Java读取条形码的步骤。
- 创建工作簿对象。
- 使用 workbook.loadfromfile() methot。加载包含条形码的样本Excel文件。
- 使用 workbook.getWorksheets()。get() methot。 获取第一个工作表。
- 使用 xlsworksheet.savetoimage(int firstrow,int firstColumn,int int lastrow,int lastcolumn) 方法。。
- 使用 barcodescanner.scan()()方法扫描条形码和返回字符串阵列中的结果。
import com.spire.barcode.BarcodeScanner;
import com.spire.xls.CellRange;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import java.awt.image.BufferedImage;
public class ReadBarcodeFromExcel {
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\\Invoice.xlsx");
//Get the first worksheet
Worksheet sheet = wb.getWorksheets().get(0);
//Get all located range from the first worksheet
CellRange cellRange = sheet.getAllocatedRange();
//Convert the range to image
BufferedImage image = sheet.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]);
}
}
}
从Java中的PowerPoint读取条形码
从PowerPoint幻灯片读取条形码的步骤如下。
- 创建演示对象。
- 使用 essiveration.loadfromfile() methot。 加载示例PowerPoint文件。
- 使用 estraination.getSlides()。get() methot。 获取第一个幻灯片
- 使用 islide.savasimage() methot。 将幻灯片转换为图像。
- 使用 barcodescanner.scan()()方法扫描条形码和返回字符串阵列中的结果。
import com.spire.barcode.BarcodeScanner;
import com.spire.presentation.ISlide;
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 ReadBarcodeFromPowerPoint {
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\\Invoice.pptx");
//Get the first slide
ISlide slide = presentation.getSlides().get(0);
//Save the first slide as image
BufferedImage image = slide.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;
}
}
从Java中读取PDF的条形码
以下是使用spire.office for Java读取条形码的步骤。
- 创建 pdfdocument 对象。
- 使用 pdfdocument.loadfromfile() methot。
- 使用 pdfdocument.saveasimage(int pageIndex,pdfimagetype type) 将第一页转换为图像。
- 使用 barcodescanner.scan()()方法扫描条形码和返回字符串阵列中的结果。
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 ReadBarcodeFromPdf {
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\\Invoice.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]);
}
}
}
笔记:
如果您收到一条读取的消息。Barcode评估版本,则意味着未经许可证就无法识别特定的条形码类型。您可以从E-iceblue申请一个月的临时性以摆脱限制。