Java新增條形碼到PDF表格

iceblue發表於2022-06-07

條碼的應用已深入生活和工作的方方面面。在處理條碼時,常需要和各種文件格式相結合。當需要在文件中插入、編輯或者刪除條碼時,可藉助於一些專業的類庫工具來實現。本文,以操作PDF檔案為例,介紹如何在編輯表格時,向單元格中新增條形碼。

 


 

【程式環境】

本次功能測試中,使用 Free Spire.PDF for Java

實現功能的大致思路:生成條形碼,將條形碼儲存為圖片,然後在PDF中的表格單元格中插入條碼圖片。

Spire.PDF for Java 中的Spire.Pdf.Barcode Package提供了多種Barcode型別,可用於建立不同型別的barcode,如圖:

jar匯入:

可按照如下方法來匯入Spire.Pdf.jar 版本:5.1.0

方法1:將 Free Spire.PDF for Java 包下載到本地,解壓,找到lib資料夾下的Spire.Pdf.jar檔案。然後在IDEA中開啟“Project Structure”介面,然後執行如圖步驟來手動匯入本地路徑下的jar檔案:

方法2:通過Maven倉庫下載匯入,如下配置pom.xml:

<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <name>e-iceblue</name>
            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
        </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

下面,通過Java程式碼示例展示如何實現新增條形碼到PDF中的表格。

 


 

【程式碼示例】

Java

import com.spire.pdf.*;
import com.spire.pdf.barcode.PdfCodabarBarcode;
import com.spire.pdf.barcode.TextLocation;
import com.spire.pdf.graphics.PdfBrushes;
import com.spire.pdf.graphics.PdfImage;
import com.spire.pdf.graphics.PdfRGBColor;
import com.spire.pdf.graphics.PdfTrueTypeFont;
import com.spire.pdf.grid.PdfGrid;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class AddBarcodeToTable {
    public static void main(String[] args)throws IOException {
        //建立PDF文件
        PdfDocument pdf = new PdfDocument();
        PdfPageBase page = pdf.getPages().add();

        //建立PdfGrid類的表格物件
        PdfGrid grid = new PdfGrid();
        grid.getStyle().setCellPadding(new PdfPaddings(5,5,3,3));
        grid.getStyle().setFont(new PdfTrueTypeFont(new Font("Arial Unicode MS", Font.PLAIN,10), true));
        grid.getStyle().setTextBrush(PdfBrushes.getBlack());

        //定義資料
        String[] data = {"產品程式碼;批次;交易單號;訂單條碼",
                "A1024;一批次;ORD10610; ;",
        };
        String[][] dataSource = new String[data.length][];
        for (int i = 0; i < data.length; i++) {
            dataSource[i] = data[i].split("[;]");
        }
        //填充資料到表格
        grid.setDataSource(dataSource);

        //建立條形碼
        PdfCodabarBarcode barcode = new PdfCodabarBarcode("00:12-3456/7890");
        barcode.setBarcodeToTextGapHeight(1f);
        barcode.setNarrowBarWidth(2);
        barcode.setEnableCheckDigit(true);
        barcode.setShowCheckDigit(true);
        barcode.setTextDisplayLocation(TextLocation.Bottom);
        PdfRGBColor blue = new PdfRGBColor(Color.blue);
        barcode.setTextColor(blue);

        //將條碼儲存為.png圖片並新增到單元格
        BufferedImage bufferedImage = barcode.toImage();
        ImageIO.write(bufferedImage, "png", new File("F:\\IDEAProject\\Table_PDF\\CODE128.png"));
        grid.getRows().get(1).getCells().get(3).getStyle().setBackgroundImage(PdfImage.fromFile("CODE128.png"));
        grid.getRows().get(1).setHeight(50f);
        grid.getColumns().get(3).setWidth(120f);

        //繪製表格到頁面指定位置
        grid.draw(page, 50, 100);

        //儲存PDF文件
        pdf.saveToFile("AddBarcodeToTable.pdf",FileFormat.PDF);
        pdf.dispose();
    }
}

文件效果:

 

 

★ 閱讀推薦:C#/VB.NET 在PDF表格中新增條形碼

 

—END—

 

相關文章