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 相关文章推荐
解决tk mapper 通用mapper的bug问题
Jun 16 Java/Android
解决SpringCloud Feign传对象参数调用失败的问题
Jun 23 Java/Android
详解Java分布式事务的 6 种解决方案
Jun 26 Java/Android
Spring Boot 整合 Apache Dubbo的示例代码
Jul 04 Java/Android
SpringCloud之@FeignClient()注解的使用方式
Sep 25 Java/Android
SSM项目使用拦截器实现登录验证功能
Jan 22 Java/Android
SpringBoot整合Minio文件存储
Apr 03 Java/Android
Java 通过手写分布式雪花SnowFlake生成ID方法详解
Apr 07 Java/Android
解决springboot druid数据库连接失败后一直重连的方法
Apr 19 Java/Android
SpringBoot全局异常处理方案分享
May 25 Java/Android
SpringCloud超详细讲解Feign声明式服务调用
Jun 21 Java/Android
Java实现字符串转为驼峰格式的方法详解
Jul 07 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
简单的PHP缓存设计实现代码
2011/09/30 PHP
PHP编码规范的深入探讨
2013/06/06 PHP
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
php实现简单四则运算器
2020/11/29 PHP
Javascript中call和apply函数的比较和使用实例
2015/02/03 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
深究AngularJS之ui-router详解
2017/06/13 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
Vue+Mock.js模拟登录和表格的增删改查功能
2018/07/26 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
2018/09/01 Javascript
解决百度Echarts图表坐标轴越界的方法
2018/10/17 Javascript
微信小程序swiper实现文字纵向轮播提示效果
2020/01/21 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
[10:07]2014DOTA2国际邀请赛 实拍选手现场观战DK对阵Titan
2014/07/12 DOTA
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
基于Python log 的正确打开方式
2018/04/28 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
Selenium(Python web测试工具)基本用法详解
2018/08/10 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
python批量提取图片信息并保存的实现
2021/02/05 Python
软件设计的目标是什么
2016/12/04 面试题
客户表扬信范文
2014/01/10 职场文书
班级出游活动计划书
2014/08/15 职场文书
2014年保洁工作总结
2014/11/24 职场文书
劳动仲裁调解书
2015/05/20 职场文书
团队执行力培训心得体会
2015/08/15 职场文书
实例讲解Python中sys.argv[]的用法
2021/06/03 Python
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL
sentinel支持的redis高可用集群配置详解
2022/04/01 Redis