Java實(shí)現(xiàn)添加條形碼到PDF表格的方法詳解
條碼的應(yīng)用已深入生活和工作的方方面面。在處理?xiàng)l碼時(shí),常需要和各種文檔格式相結(jié)合。當(dāng)需要在文檔中插入、編輯或者刪除條碼時(shí),可借助于一些專(zhuān)業(yè)的類(lèi)庫(kù)工具來(lái)實(shí)現(xiàn)。本文,以操作PDF文件為例,介紹如何在編輯表格時(shí),向單元格中添加條形碼。
程序環(huán)境
本次功能測(cè)試中,使用 Free Spire.PDF for Java。
實(shí)現(xiàn)功能的大致思路:生成條形碼,將條形碼保存為圖片,然后在PDF中的表格單元格中插入條碼圖片。
Spire.PDF for Java 中的Spire.Pdf.Barcode Package提供了多種Barcode類(lèi)型,可用于創(chuàng)建不同類(lèi)型的barcode,如圖:

jar導(dǎo)入:
可按照如下方法來(lái)導(dǎo)入Spire.Pdf.jar 版本:5.1.0
方法1:將 Free Spire.PDF for Java 包下載到本地,解壓,找到lib文件夾下的Spire.Pdf.jar文件。然后在IDEA中打開(kāi)“Project Structure”界面,然后執(zhí)行如圖步驟來(lái)手動(dòng)導(dǎo)入本地路徑下的jar文件:

方法2:通過(guò)Maven倉(cāng)庫(kù)下載導(dǎo)入,如下配置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>下面,通過(guò)Java代碼示例展示如何實(shí)現(xiàn)添加條形碼到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 {
//創(chuàng)建PDF文檔
PdfDocument pdf = new PdfDocument();
PdfPageBase page = pdf.getPages().add();
//創(chuàng)建PdfGrid類(lèi)的表格對(duì)象
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());
//定義數(shù)據(jù)
String[] data = {"產(chǎn)品代碼;批次;交易單號(hào);訂單條碼",
"A1024;一批次;ORD10610; ;",
};
String[][] dataSource = new String[data.length][];
for (int i = 0; i < data.length; i++) {
dataSource[i] = data[i].split("[;]");
}
//填充數(shù)據(jù)到表格
grid.setDataSource(dataSource);
//創(chuàng)建條形碼
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);
//繪制表格到頁(yè)面指定位置
grid.draw(page, 50, 100);
//保存PDF文檔
pdf.saveToFile("AddBarcodeToTable.pdf",FileFormat.PDF);
pdf.dispose();
}
}文檔效果:

到此這篇關(guān)于Java實(shí)現(xiàn)添加條形碼到PDF表格的方法詳解的文章就介紹到這了,更多相關(guān)Java添加條形碼到PDF內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java Thread之Sleep()使用方法總結(jié)
這篇文章主要介紹了Java Thread之Sleep()使用方法總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
初步認(rèn)識(shí)JVM的體系結(jié)構(gòu)
大家都知道,Java中JVM的重要性,學(xué)習(xí)了JVM你對(duì)Java的運(yùn)行機(jī)制、編譯過(guò)程和如何對(duì)Java程序進(jìn)行調(diào)優(yōu)相信都會(huì)有一個(gè)很好的認(rèn)知.在面試中JVM也是非常重要的一部分,比如JVM調(diào)優(yōu),JVM對(duì)象分配規(guī)則,內(nèi)存模型、方法區(qū),還有種要GC等,需要的朋友可以參考下2021-06-06
解決idea配置Tomcat Deployment沒(méi)有artifact選項(xiàng)的問(wèn)題
今天在配置的時(shí)候tomcat deployment中卻找不到artifact,沒(méi)有artifact就不能打成war包上傳到服務(wù)器了,那么怎么解決沒(méi)有artifact選項(xiàng)的問(wèn)題呢,今天通過(guò)本文給大家分享idea配置Tomcat Deployment沒(méi)有artifact選項(xiàng)的解決方案,一起看看吧2023-10-10
使用Spring處理x-www-form-urlencoded方式
這篇文章主要介紹了使用Spring處理x-www-form-urlencoded方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
java中計(jì)算字符串長(zhǎng)度的方法及u4E00與u9FBB的認(rèn)識(shí)
字符串采用unicode編碼的方式時(shí),計(jì)算字符串長(zhǎng)度的方法找出UNICODE編碼中的漢字的代表的范圍“\u4E00” 到“\u9FBB”之間感興趣的朋友可以參考本文,或許對(duì)你有所幫助2013-01-01
如何把spring boot項(xiàng)目部署到tomcat容器中
本文給大家分享如何把spring boot項(xiàng)目部署到tomcat容器中,本文給大家介紹的非常詳細(xì),需要的朋友參考下2017-04-04
java8如何用Stream查L(zhǎng)ist對(duì)象某屬性是否有重復(fù)
這篇文章主要介紹了java8如何用Stream查L(zhǎng)ist對(duì)象某屬性是否有重復(fù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09

