条码的应用已深入生活和工作的方方面面。在处理条码时,常需要和各种文档格式相结合。当需要在文档中插入、编辑或者删除条码时,可借助于一些专业的类库工具来实现。本文,以操作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—

最新文章

  1. MAPPING SEGMENTS TO PAGES
  2. eval()字符串转成对象
  3. 武汉科技大学ACM :1004: 华科版C语言程序设计教程(第二版)课后习题3.7
  4. pyqt 托盘例子学习
  5. windows10下面部署nginx(解决文件名中文乱码问题)
  6. ios打包unity应用以及配置签名
  7. MATLAB求马氏距离(Mahalanobis distance)
  8. Jmeter监控服务器笔记
  9. ajax----发送异步请求的步骤
  10. WPF多屏最大化
  11. Shell的并发
  12. ubuntu下spark安装配置
  13. c++ primer读书笔记之c++11(四)
  14. 【微信小程序】微信小程序 文本过长,自动换行的问题
  15. Solo and Mute
  16. 针对浏览器不支持JavaScript的简单处理
  17. hive学习(三) hive的分区
  18. SQL多行并一行统计例子之STUFF()函数+FOR XML PATH()函数应用
  19. Linux下安装Sybase ASE 16
  20. hive_学习_02_hive整合hbase(失败)

热门文章

  1. 《头号玩家》AI电影调研报告(五)
  2. Mybatis-plugins分页助手实现查询数据分页
  3. Netty初见-三大组件-简单使用
  4. Jenkins+gitlab手动部署
  5. 硬件vendor id查询对照列表
  6. nmtui 工具使用的话,需要开启NetworkManager(网卡文件不存在ens192)
  7. RFC 标准文档
  8. 『忘了再学』Shell基础 — 8、管道符介绍
  9. The 18th Zhejiang Provincial Collegiate Programming Contest
  10. Java学习day40