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 相关文章推荐
Java用自带的Image IO给图片添加水印
Jun 15 Java/Android
SpringBoot集成Redis,并自定义对象序列化操作
Jun 22 Java/Android
mybatis 获取无数据的字段不显示的问题
Jul 15 Java/Android
gateway与spring-boot-starter-web冲突问题的解决
Jul 16 Java/Android
Java中CyclicBarrier和CountDownLatch的用法与区别
Aug 23 Java/Android
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
Sep 25 Java/Android
JAVA API 实用类 String详解
Oct 05 Java/Android
Java9新特性对HTTP2协议支持与非阻塞HTTP API
Mar 16 Java/Android
Java 通过手写分布式雪花SnowFlake生成ID方法详解
Apr 07 Java/Android
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
Apr 13 Java/Android
SpringBoot全局异常处理方案分享
May 25 Java/Android
Android 中的类文件和类加载器详情
Jun 05 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设计模式  Command(命令模式)
2011/06/17 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
限制textbox或textarea输入字符长度的JS代码
2013/10/16 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
2014/06/09 Javascript
jQuery+CSS实现简单切换菜单示例
2016/07/27 Javascript
JS碰撞运动实现方法详解
2016/12/15 Javascript
js获取浏览器的各种属性
2017/04/27 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
微信小程序canvas绘制圆角base64图片的实现
2019/08/18 Javascript
js实现网页版贪吃蛇游戏
2020/02/22 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
2013/12/08 Python
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
pandas 层次化索引的实现方法
2019/07/06 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
2020/05/10 Python
Python接口自动化测试的实现
2020/08/28 Python
python切割图片的示例
2020/11/12 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
博士研究生自我鉴定范文
2013/12/04 职场文书
餐厅经理岗位职责范本
2014/02/17 职场文书
安全施工标语
2014/06/07 职场文书
我与祖国共奋进演讲稿
2014/09/13 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
学会感恩主题班会
2015/08/12 职场文书