您的位置 首页 java

Java 在Word文档中添加条形码(一维码)、二维码

在日常生活中,条形码(一维码)和二维码主要是作为物品的标识来使用。条形码主要应用在商品标识、防伪、超市收银等场合;相比条形码(一维码)来说,二维码可以包含更多的信息,如网址、文字、图片等等。本文将使用Java代码来将条形码(一维码)和二维码添加到Word文档中。添加位置可是文档正文段落,也可是页眉页脚。

使用工具及Jar包导入

本教程需要用到 Free Spire.Office for Java 免费 )控件。在运行代码前,需将控件中的Spire.Office.jar导入IDEA。可通过 E-iceblue中文官网 下载产品包,然后手动导入;也可通过 Maven 仓库安装导入(仅需在pom.xml中引入以下代码)

 <repositories>
        <repository>
            <id>com.e-iceblue</id>
            <url>
        </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.office.free</artifactId>
        <version>3.9.0</version>
    </dependency>
</dependencies>  

代码示例

示例1 添加条形码(一维码)到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 BarcodeToWord {
    public static void main(String[] args) throws IOException {
        //创建Document对象,加载Word文档
        Document doc = new Document();
        doc.loadFromFile("C:\Users\Test1\Desktop\Sample.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("output/Barcode.png"));

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

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

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

添加效果:

示例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 QRCodeToWord {
    public static void main(String[] args) throws IOException {
        //创建Document对象,加载Word文档
        Document doc = new Document();
        doc.loadFromFile("C:\Users\Test1\Desktop\Sample.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("output/QRCode.png"));

            //添加二维码到正文段落
            Paragraph paragraph = section.addParagraph();
            paragraph.appendPicture("output/QRCode.png");
            paragraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Right);

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

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

添加效果:

文章来源:智云一二三科技

文章标题:Java 在Word文档中添加条形码(一维码)、二维码

文章地址:https://www.zhihuclub.com/171617.shtml

关于作者: 智云科技

热门文章

网站地图