Java如何从Word,Excel,PowerPoint和PDF读取条形码
#java #document #barcode #scan

一个条形码,由条形和空间(或点)组成,是数字和角色的可读代表。如今,条形码已在杂货店,医生办公室,律师事务所广泛使用,邮局,零售店和无数其他商店。能够阅读 code39 code128 pdf417 datamatrix qr 和来自各种文档的其他条形码(例如Word,Excel,PowerPoint和PDF)可能是一个真正的好处。

在本文中,我将介绍如何使用Spire.Office for Java读取MS Office文档和PDF的条形码。此库支持了40多个以上以上通常看到的1D或2D条形码类型。

添加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]);
        }
    }
}

ReadFromWord

阅读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]);
        }
    }
}

FromExcel

从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;
    }
}

FromPowerPoint

从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]);
        }
    }
}

FromPDF

笔记:

如果您收到一条读取的消息。Barcode评估版本,则意味着未经许可证就无法识别特定的条形码类型。您可以从E-iceblue申请一个月的临时性以摆脱限制。