Java實(shí)現(xiàn)添加條形碼到PDF表格的方法詳解
條碼的應(yīng)用已深入生活和工作的方方面面。在處理?xiàng)l碼時(shí),常需要和各種文檔格式相結(jié)合。當(dāng)需要在文檔中插入、編輯或者刪除條碼時(shí),可借助于一些專業(yè)的類庫工具來實(shí)現(xiàn)。本文,以操作PDF文件為例,介紹如何在編輯表格時(shí),向單元格中添加條形碼。
程序環(huán)境
本次功能測試中,使用 Free Spire.PDF for Java。
實(shí)現(xiàn)功能的大致思路:生成條形碼,將條形碼保存為圖片,然后在PDF中的表格單元格中插入條碼圖片。
Spire.PDF for Java 中的Spire.Pdf.Barcode Package提供了多種Barcode類型,可用于創(chuàng)建不同類型的barcode,如圖:
jar導(dǎo)入:
可按照如下方法來導(dǎo)入Spire.Pdf.jar 版本:5.1.0
方法1:將 Free Spire.PDF for Java 包下載到本地,解壓,找到lib文件夾下的Spire.Pdf.jar文件。然后在IDEA中打開“Project Structure”界面,然后執(zhí)行如圖步驟來手動(dòng)導(dǎo)入本地路徑下的jar文件:
方法2:通過Maven倉庫下載導(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>
下面,通過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類的表格對(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); //繪制表格到頁面指定位置 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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java Thread之Sleep()使用方法總結(jié)
這篇文章主要介紹了Java Thread之Sleep()使用方法總結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05初步認(rèn)識(shí)JVM的體系結(jié)構(gòu)
大家都知道,Java中JVM的重要性,學(xué)習(xí)了JVM你對(duì)Java的運(yùn)行機(jī)制、編譯過程和如何對(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沒有artifact選項(xiàng)的問題
今天在配置的時(shí)候tomcat deployment中卻找不到artifact,沒有artifact就不能打成war包上傳到服務(wù)器了,那么怎么解決沒有artifact選項(xiàng)的問題呢,今天通過本文給大家分享idea配置Tomcat Deployment沒有artifact選項(xiàng)的解決方案,一起看看吧2023-10-10使用Spring處理x-www-form-urlencoded方式
這篇文章主要介紹了使用Spring處理x-www-form-urlencoded方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11java中計(jì)算字符串長度的方法及u4E00與u9FBB的認(rèn)識(shí)
字符串采用unicode編碼的方式時(shí),計(jì)算字符串長度的方法找出UNICODE編碼中的漢字的代表的范圍“\u4E00” 到“\u9FBB”之間感興趣的朋友可以參考本文,或許對(duì)你有所幫助2013-01-01如何把spring boot項(xiàng)目部署到tomcat容器中
本文給大家分享如何把spring boot項(xiàng)目部署到tomcat容器中,本文給大家介紹的非常詳細(xì),需要的朋友參考下2017-04-04java8如何用Stream查List對(duì)象某屬性是否有重復(fù)
這篇文章主要介紹了java8如何用Stream查List對(duì)象某屬性是否有重復(fù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09