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 相关文章推荐
springboot集成springCloud中gateway时启动报错的解决
Jul 16 Java/Android
java设计模式--原型模式详解
Jul 21 Java/Android
java设计模式--建造者模式详解
Jul 21 Java/Android
Java spring定时任务详解
Oct 05 Java/Android
springboot新建项目pom.xml文件第一行报错的解决
Jan 18 Java/Android
Java基础——Map集合
Apr 01 Java/Android
java高级用法JNA强大的Memory和Pointer
Apr 19 Java/Android
Android Studio实现简易进制转换计算器
May 20 Java/Android
Android Studio实现带三角函数对数运算功能的高级计算器
May 20 Java/Android
Android Gradle 插件自定义Plugin实现注意事项
Jun 16 Java/Android
Spring boot admin 服务监控利器详解
Aug 05 Java/Android
Java获取字符串编码格式实现思路
Sep 23 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/02/03 PHP
PHP获取文件夹内文件数的方法
2015/03/12 PHP
php如何实现只替换一次或N次
2015/10/29 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
php微信开发之关注事件
2018/06/14 PHP
PHP常用函数之获取汉字首字母功能示例
2019/10/21 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
jquery一句话全选/取消全选
2011/03/01 Javascript
有关javascript的性能优化 (repaint和reflow)
2013/04/12 Javascript
javascript正则表达式使用replace()替换手机号的方法
2015/01/19 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
基于Vue制作组织架构树组件
2017/12/06 Javascript
基于webpack.config.js 参数详解
2018/03/20 Javascript
React组件内事件传参实现tab切换的示例代码
2018/07/04 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
Win7上搭建Cocos2d-x 3.1.1开发环境
2014/07/03 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
python实现的生成word文档功能示例
2019/08/23 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
Sixt美国租车:高端豪华车型自驾体验
2017/09/02 全球购物
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
Marlies Dekkers内衣美国官方网上商店:高端内衣品牌
2018/11/12 全球购物
Java的基础面试题附答案
2016/01/10 面试题
求职简历中自我评价
2014/01/28 职场文书
2014乡镇机关党员个人对照检查材料思想汇报
2014/10/09 职场文书
期中考试复习计划
2015/01/19 职场文书
开会通知
2015/04/20 职场文书
2015年社区民政工作总结
2015/04/21 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
使用JS前端技术实现静态图片局部流动效果
2022/08/05 Javascript