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