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

 更新时间:2022年06月07日 14:52:43   作者:E-iceblue  
条码的应用已深入生活和工作的方方面面。本文以操作PDF文件为例,介绍如何利用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();
    }
}

文档效果:

到此这篇关于Java实现添加条形码到PDF表格的方法详解的文章就介绍到这了,更多相关Java添加条形码到PDF内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈MyBatis 如何执行一条 SQL语句

    浅谈MyBatis 如何执行一条 SQL语句

    Mybatis 是 Java 开发中比较常用的 ORM 框架。在日常工作中,我们都是直接通过 Spring Boot 自动配置,并直接使用,但是却不知道 Mybatis 是如何执行一条 SQL 语句的,下面就一起讲解一下
    2021-05-05
  • Java并发编程之Fork/Join框架的理解

    Java并发编程之Fork/Join框架的理解

    今天带大家学习Java并发编程的相关知识,文中对Fork/Join框架作了非常详细的介绍,对正在学习有关知识的小伙伴们很有帮助,需要的朋友可以参考下
    2021-06-06
  • Java中HashSet和LinkedHashSet详解

    Java中HashSet和LinkedHashSet详解

    这篇文章主要介绍了Java中HashSet和LinkedHashSet详解,   HashSet是Set接口的子类,其内部采用了HashMap作为数据存储,HashSet其实就是在操作HashMap的key,HashSet是无序存储的,不能保证元素的顺序;HashSet并没有进行同步处理,因此是线程不安全的,需要的朋友可以参考下
    2023-09-09
  • springboot项目中后端接收前端传参的方法示例详解

    springboot项目中后端接收前端传参的方法示例详解

    这篇文章主要介绍了springboot项目中一些后端接收前端传参的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • SpringBoot整合Quartz实现动态配置的代码示例

    SpringBoot整合Quartz实现动态配置的代码示例

    这篇文章将介绍如何把Quartz定时任务做成接口,实现以下功能的动态配置添加任务,修改任务,暂停任务,恢复任务,删除任务,任务列表,任务详情,文章通过代码示例介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • .idea文件夹里面iml文件的作用及说明

    .idea文件夹里面iml文件的作用及说明

    这篇文章主要介绍了.idea文件夹里面iml文件的作用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • JavaWeb搭建网上图书商城毕业设计

    JavaWeb搭建网上图书商城毕业设计

    这篇文章主要介绍了JavaWeb搭建网上图书商城框架,特别适合正在为网上商城毕业设计烦恼的同学,需要的朋友可以参考下
    2015-11-11
  • mybatis中的setting配置详解

    mybatis中的setting配置详解

    这篇文章主要给大家介绍了关于mybatis中setting配置的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • SpringBoot集成WebSocket遇到的问题及解决

    SpringBoot集成WebSocket遇到的问题及解决

    这篇文章主要介绍了SpringBoot集成WebSocket遇到的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。
    2023-07-07
  • java数据结构基础:单链表与双向链表

    java数据结构基础:单链表与双向链表

    这篇文章主要为大家详细介绍了java实现单链表、双向链表的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08

最新评论