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 相关文章推荐
Spring Bean的实例化之属性注入源码剖析过程
Jun 13 Java/Android
一篇带你入门Java垃圾回收器
Jun 16 Java/Android
Java中使用Filter过滤器的方法
Jun 28 Java/Android
spring boot中nativeQuery的用法
Jul 26 Java/Android
使用logback实现按自己的需求打印日志到自定义的文件里
Aug 30 Java/Android
Spring中的使用@Async异步调用方法
Nov 01 Java/Android
SSM项目使用拦截器实现登录验证功能
Jan 22 Java/Android
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
Apr 19 Java/Android
带你了解Java中的ForkJoin
Apr 28 Java/Android
Springboot-cli 开发脚手架,权限认证,附demo演示
Apr 28 Java/Android
Jmerte 分布式压测及分布式压测配置
Apr 30 Java/Android
Spring JPA 增加字段执行异常问题及解决
Jun 10 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/07/17 PHP
php+mysqli数据库连接的两种方式
2015/01/28 PHP
PHP学习笔记之session
2018/05/06 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
laravel 解决Validator使用中出现的问题
2019/10/25 PHP
javascript 函数参数限制说明
2010/11/19 Javascript
js去除重复字符串两种实现方法
2013/01/09 Javascript
asp.net刷新本页面的六种方法总结
2014/01/07 Javascript
JavaScript类继承及实例化的方法
2015/07/25 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
JS 验证码功能的三种实现方式
2018/11/26 Javascript
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
ES6新增的数组知识实例小结
2020/05/23 Javascript
python中的sort方法使用详解
2014/07/25 Python
简单理解Python中的装饰器
2015/07/31 Python
实例Python处理XML文件的方法
2015/08/31 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
Python文件监听工具pyinotify与watchdog实例
2018/10/15 Python
在Python中pandas.DataFrame重置索引名称的实例
2018/11/06 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
python图的深度优先和广度优先算法实例分析
2019/10/26 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
Python semaphore evevt生产者消费者模型原理解析
2020/03/18 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
Hunkemöller瑞士网上商店:欧洲最大的内衣品牌之一
2018/12/03 全球购物
Microsoft Advertising美国:微软搜索广告
2019/05/01 全球购物
宝拉珍选英国官网:Paula’s Choice英国
2019/05/29 全球购物
餐饮加盟计划书
2014/01/10 职场文书
酒店优秀员工事迹材料
2014/06/02 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server
Java实现简易的分词器功能
2021/06/15 Java/Android
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技