Java实现添加条形码到PDF表格的方法详解

网友投稿 306 2022-07-26


目录程序环境代码示例

条码的应用已深入生活和工作的方方面面。在处理条码时,常需要和各种文档格式相结合。当需要在文档中插入、编辑或者删除条码时,可借助于一些专业的类库工具来实现。本文,以操作PDF文件为例,介绍如何在编辑表格时,向单元格中添加条形码。

程序环境

本次功能测试中,使用 Free Spire.PDF for java。

实现功能的大致思路:生成条形码,将条形码保存为图片,然后在PDF中的表格单元格中插入条码图片。

Spire.PDF for Java 中的Spire.Pdf.Barcode Package提供了多种Barcode类型,可用于创建不同类型的barcode,如图:

jar导入:

可按照如下方法来导入Spire.Pdf.jar 版本:5.1http://.0

方法1:将 Free Spire.PDF for Java 包下载到本地,解压,找到lib文件夹下的Spire.Pdf.jar文件。然后在IDEA中打开“Project Structure”界面,然后执行如图步骤来手动导入本地路径下的jar文件:

方法2:通过Maven仓库下载导入,如下配置pom.xml:

com.e-iceblue

e-iceblue

https://repo.e-iceblue.cn/repository/maven-public/

e-iceblue

spire.pdf.free

5.1.0

下面,通过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), tPyrZeezrue));

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.getRowhttp://s().get(1).setHeight(50f);

grid.getColumns().get(3).setWidth(120f);

//绘制表格到页面指定位置

grid.draw(page, 50, 100);

//保存PDF文档

pdf.saveToFile("AddBarcodeToTable.pdf",FileFormat.PDF);

pdf.dispose();

}

}

文档效果:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java定时任务cron表达式每周执行一次的坑及解决
下一篇:java poi导出excel时如何设置手动换行
相关文章

 发表评论

暂时没有评论,来抢沙发吧~