Java实现添加条码或二维码到Word文档


Posted in Java/Android onJune 01, 2022

本文介绍如何在Word文档中添加条码、二维码。可在文档正文段落中添加,也可在页眉页脚中添加。下面将通过Java代码示例介绍如何实现。

使用工具:Free Spire.Office for Java(免费版)

关于Jar导入的方法:

方法1通过E-iceblue官网下载jar包,下载后,解压,将lib文件夹下的Spire.Office.jar导入Java程序;

方法2:通过创建Maven程序,并配置在pom.xml文件中配置Maven仓库路径并指定Free Spire.Office for Java的Maven依赖,配置完成后,在IDEA中,点击“Import Changes”导入JAR包。

<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <url>http://repo.e-iceblue.cn/repository/maven-public/</url>
        </repository>
</repositories>

<dependencies>
    <dependency>
       <groupId>e-iceblue</groupId>
  <artifactId>spire.office.free</artifactId>
  <version>3.1.1</version>
</dependency>
</dependencies>

jar导入结果如下图所示:

Java实现添加条码或二维码到Word文档

Java代码示例

1. 添加条码到Word(这里以添加到Word正文、页脚为例)

import com.spire.barcode.*;
import com.spire.doc.*;
import com.spire.doc.documents.HorizontalAlignment;
import com.spire.doc.documents.Paragraph;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class AddBarcode {
    public static void main(String[] args) throws IOException {
        //创建Document对象,加载Word文档
        Document doc = new Document();
        doc.loadFromFile("test.docx");

        //获取所有section
        for (int i = 0 ; i<doc.getSections().getCount();i++)
        {
            Section section = doc.getSections().get(i);

            //使用Spire.Barcode的BarcodeSettings和BarcodeGenerator类创建条码并保存为图片
            BarcodeSettings settings = new BarcodeSettings();
            settings.setType(BarCodeType.Code_128);
            settings.setData("123456789");
            settings.setData2D("123456789");
            settings.setShowText(false);
            settings.setBarHeight(4);
            settings.setX(0.3f);
            settings.hasBorder(true);
            settings.setBorderWidth(0.5f);
            settings.setBorderColor(new Color(135,206,250));
            settings.setBackColor(new Color(240,255,255));
            BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
            BufferedImage bufferedImage = barCodeGenerator.generateImage();
            ImageIO.write(bufferedImage, "png", new File("Barcode.png"));

            //添加条码到正文段落
            Paragraph paragraph = section.addParagraph();
            paragraph.setText("收货码:");
            paragraph.appendPicture("Barcode.png");
            paragraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Right);

            //添加条码图片到Word页脚
            HeaderFooter footer = section.getHeadersFooters().getFooter();
            Paragraph footerpara = footer.addParagraph();
            footerpara.setText("扫码识真伪:");
            footerpara.appendPicture("Barcode.png");
            footerpara.getFormat().setHorizontalAlignment(HorizontalAlignment.Left);
        }

        //保存文档
        doc.saveToFile("BarCodeToWord.docx", FileFormat.Docx_2013);
        doc.dispose();
    }
}

条码添加效果:

Java实现添加条码或二维码到Word文档

2. 添加二维码到Word(这里以添加到正文、页眉为例)

import com.spire.barcode.*;
import com.spire.doc.*;
import com.spire.doc.documents.HorizontalAlignment;
import com.spire.doc.documents.Paragraph;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.IOException;

public class AddQRCode {
    public static void main(String[] args) throws IOException {
        //创建Document对象,加载Word文档
        Document doc = new Document();
        doc.loadFromFile("test.docx");

        //获取所有section
        for (int i = 0 ; i<doc.getSections().getCount();i++)
        {
            Section section = doc.getSections().get(i);

            //使用Spire.Barcode的BarcodeSettings和BarcodeGenerator类创建二维码并保存为图片
            BarcodeSettings settings = new BarcodeSettings();
            settings.setType(BarCodeType.QR_Code);
            settings.setData("123456");
            settings.setData2D("123456");
            settings.setX(0.7f);
            settings.setLeftMargin(0);
            settings.setShowTextOnBottom(true);
            settings.setQRCodeECL(QRCodeECL.Q);
            settings.setQRCodeDataMode(QRCodeDataMode.Numeric);
            BarCodeGenerator generator = new BarCodeGenerator(settings);
            Image image = generator.generateImage();
            ImageIO.write((RenderedImage) image, "png", new File("QRCode.png"));

            //添加二维码到正文段落
            Paragraph paragraph = section.addParagraph();
            paragraph.appendPicture("QRCode.png");
            paragraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Right);
            
            //添加二维码图片到Word页眉
            HeaderFooter header = section.getHeadersFooters().getHeader();
            Paragraph headerpara = header.addParagraph();
            headerpara.appendPicture("QRCode.png");
            headerpara.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
        }

        //保存文档
        doc.saveToFile("QRCodeToWord.docx", FileFormat.Docx_2013);
        doc.dispose();
    }
}

二维码添加效果:

Java实现添加条码或二维码到Word文档

以上就是Java实现添加条码或二维码到Word文档的详细内容,更多关于Java添加条码 二维码到Word的资料请关注三水点靠木其它相关文章!


Tags in this post...

Java/Android 相关文章推荐
分析Netty直接内存原理及应用
Jun 14 Java/Android
Java常用函数式接口总结
Jun 29 Java/Android
解决ObjectMapper.convertValue() 遇到的一些问题
Jun 30 Java/Android
详解Java ES多节点任务的高效分发与收集实现
Jun 30 Java/Android
浅谈Java父子类加载顺序
Aug 04 Java/Android
浅谈sql_@SelectProvider及使用注意说明
Aug 04 Java/Android
SpringBoot整合minio快速入门教程(代码示例)
Apr 03 Java/Android
MyBatis配置文件解析与MyBatis实例演示
Apr 07 Java/Android
教你在 Java 中实现 Dijkstra 最短路算法的方法
Apr 08 Java/Android
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
Apr 13 Java/Android
springboot读取nacos配置文件
May 20 Java/Android
springboot创建的web项目整合Quartz框架的项目实践
Jun 21 Java/Android
Spring IOC容器Bean的作用域及生命周期实例
May 30 #Java/Android
spring IOC容器的Bean管理XML自动装配过程
May 30 #Java/Android
利用正则表达式匹配浮点型数据
May 30 #Java/Android
JavaScript正则表达式实现注册信息校验功能
May 30 #Java/Android
Java时间工具类Date的常用处理方法
May 25 #Java/Android
Java实现扫雷游戏详细代码讲解
多线程Spring通过@Scheduled实现定时任务
May 25 #Java/Android
You might like
第十一节--重载
2006/11/16 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
2011/10/30 PHP
PHP的反射机制实例详解
2017/03/29 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
JQery jstree 大数据量问题解决方法
2010/03/09 Javascript
我的Node.js学习之路(四)--单元测试
2014/07/06 Javascript
js实现正方形颜色从下往上升的效果
2014/08/04 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
2015/08/24 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
2016/03/01 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
微信小程序支付PHP代码
2018/08/23 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
nodejs中的异步编程知识点详解
2021/01/17 NodeJs
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
对python中的float除法和整除法的实例详解
2019/07/20 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
2019/08/22 Python
python -v 报错问题的解决方法
2020/09/15 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
老海军美国官网:Old Navy
2016/09/05 全球购物
GLAMGLOW格莱魅美国官网:美国知名的面膜品牌
2016/12/31 全球购物
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
美容院营销方案
2014/03/05 职场文书
财务负责人岗位职责
2015/02/03 职场文书
海洋天堂观后感
2015/06/05 职场文书
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python
vue3使用vue-router的完整步骤记录
2021/06/20 Vue.js