條碼的應用已深入生活和工作的方方面面。在處理條碼時,常需要和各種文檔格式相結合。當需要在文檔中插入、編輯或者删除條碼時,可借助于一些專業的類庫工具來實作。本文,以操作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—