网站首页 > java教程 正文
条码的应用已深入生活和工作的方方面面。在处理条码时,常需要和各种文档格式相结合。当需要在文档中插入、编辑或者删除条码时,可借助于一些专业的类库工具来实现。本文,以操作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—
猜你喜欢
- 2024-10-27 源码分享:在pdf上加盖电子签章(pdf文件上加盖电子印章)
- 2024-10-27 从腾讯T3-3大佬手上获得的Java架构进阶PDF文档,图文并茂,真香
- 2024-10-27 数据如何转成html表格、pdf、xmind文件格式下载?
- 2024-10-27 Java 给PDF文档设置有效时间(java word pdf)
- 2024-10-27 Spire.PDF for Java 8.9.1 增强了 PDF 到 Excel 和 PDFA3A 的转换
- 2024-10-27 Java | 调用打印机打印PDF文件(java调用打印机设备进行打印)
- 2024-10-27 「更新指南」Aspose.PDF for Java v19.5全新上线 | 附下载
- 2024-10-27 Java pdf下载优化:Java图片压缩(java对图片进行压缩)
- 2024-10-27 Spire.PDF for Java 8.10.1 增强了 PDF 到图片的转换
- 2024-10-27 iText7实现PDF电子签章(pdf 电子签)
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)