• Java 添加条码、二维码到Word文档


    本文介绍如何在Word文档中添加条码、二维码。可在文档正文段落中添加,也可在页眉页脚中添加。下面将通过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包。

    Xml代码  
    1. <repositories>  
    2.         <repository>  
    3.             <id>com.e-iceblue</id>  
    4.             <url>http://repo.e-iceblue.cn/repository/maven-public/</url>  
    5.         </repository>  
    6. </repositories>  
    7.   
    8. <dependencies>  
    9.     <dependency>  
    10.        <groupId>e-iceblue</groupId>  
    11.   <artifactId>spire.office.free</artifactId>  
    12.   <version>3.1.1</version>  
    13. </dependency>  
    14. </dependencies>  

     (Ecllipse的导入方法,参考这篇文章

    二、Java代码示例

    1. 添加条码到Word(这里以添加到Word正文、页脚为例)

    Java代码  
    1. import com.spire.barcode.*;  
    2. import com.spire.doc.*;  
    3. import com.spire.doc.documents.HorizontalAlignment;  
    4. import com.spire.doc.documents.Paragraph;  
    5.   
    6. import javax.imageio.ImageIO;  
    7. import java.awt.*;  
    8. import java.awt.image.BufferedImage;  
    9. import java.io.File;  
    10. import java.io.IOException;  
    11.   
    12. public class AddBarcode {  
    13.     public static void main(String[] args) throws IOException {  
    14.         //创建Document对象,加载Word文档  
    15.         Document doc = new Document();  
    16.         doc.loadFromFile("test.docx");  
    17.   
    18.         //获取所有section  
    19.         for (int i = 0 ; i<doc.getSections().getCount();i++)  
    20.         {  
    21.             Section section = doc.getSections().get(i);  
    22.   
    23.             //使用Spire.Barcode的BarcodeSettings和BarcodeGenerator类创建条码并保存为图片  
    24.             BarcodeSettings settings = new BarcodeSettings();  
    25.             settings.setType(BarCodeType.Code_128);  
    26.             settings.setData("123456789");  
    27.             settings.setData2D("123456789");  
    28.             settings.setShowText(false);  
    29.             settings.setBarHeight(4);  
    30.             settings.setX(0.3f);  
    31.             settings.hasBorder(true);  
    32.             settings.setBorderWidth(0.5f);  
    33.             settings.setBorderColor(new Color(135,206,250));  
    34.             settings.setBackColor(new Color(240,255,255));  
    35.             BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);  
    36.             BufferedImage bufferedImage = barCodeGenerator.generateImage();  
    37.             ImageIO.write(bufferedImage, "png", new File("Barcode.png"));  
    38.   
    39.             //添加条码到正文段落  
    40.             Paragraph paragraph = section.addParagraph();  
    41.             paragraph.setText("收货码:");  
    42.             paragraph.appendPicture("Barcode.png");  
    43.             paragraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Right);  
    44.   
    45.             //添加条码图片到Word页脚  
    46.             HeaderFooter footer = section.getHeadersFooters().getFooter();  
    47.             Paragraph footerpara = footer.addParagraph();  
    48.             footerpara.setText("扫码识真伪:");  
    49.             footerpara.appendPicture("Barcode.png");  
    50.             footerpara.getFormat().setHorizontalAlignment(HorizontalAlignment.Left);  
    51.         }  
    52.   
    53.         //保存文档  
    54.         doc.saveToFile("BarCodeToWord.docx", FileFormat.Docx_2013);  
    55.         doc.dispose();  
    56.     }  
    57. }  

    2. 添加二维码到Word(这里以添加到正文、页眉为例)

    Java代码  
    1. import com.spire.barcode.*;  
    2. import com.spire.doc.*;  
    3. import com.spire.doc.documents.HorizontalAlignment;  
    4. import com.spire.doc.documents.Paragraph;  
    5.   
    6. import javax.imageio.ImageIO;  
    7. import java.awt.*;  
    8. import java.awt.image.RenderedImage;  
    9. import java.io.File;  
    10. import java.io.IOException;  
    11.   
    12. public class AddQRCode {  
    13.     public static void main(String[] args) throws IOException {  
    14.         //创建Document对象,加载Word文档  
    15.         Document doc = new Document();  
    16.         doc.loadFromFile("test.docx");  
    17.   
    18.         //获取所有section  
    19.         for (int i = 0 ; i<doc.getSections().getCount();i++)  
    20.         {  
    21.             Section section = doc.getSections().get(i);  
    22.   
    23.             //使用Spire.Barcode的BarcodeSettings和BarcodeGenerator类创建二维码并保存为图片  
    24.             BarcodeSettings settings = new BarcodeSettings();  
    25.             settings.setType(BarCodeType.QR_Code);  
    26.             settings.setData("123456");  
    27.             settings.setData2D("123456");  
    28.             settings.setX(0.7f);  
    29.             settings.setLeftMargin(0);  
    30.             settings.setShowTextOnBottom(true);  
    31.             settings.setQRCodeECL(QRCodeECL.Q);  
    32.             settings.setQRCodeDataMode(QRCodeDataMode.Numeric);  
    33.             BarCodeGenerator generator = new BarCodeGenerator(settings);  
    34.             Image image = generator.generateImage();  
    35.             ImageIO.write((RenderedImage) image, "png", new File("QRCode.png"));  
    36.   
    37.             //添加二维码到正文段落  
    38.             Paragraph paragraph = section.addParagraph();  
    39.             paragraph.appendPicture("QRCode.png");  
    40.             paragraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Right);  
    41.               
    42.             //添加二维码图片到Word页眉  
    43.             HeaderFooter header = section.getHeadersFooters().getHeader();  
    44.             Paragraph headerpara = header.addParagraph();  
    45.             headerpara.appendPicture("QRCode.png");  
    46.             headerpara.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);  
    47.         }  
    48.   
    49.         //保存文档  
    50.         doc.saveToFile("QRCodeToWord.docx", FileFormat.Docx_2013);  
    51.         doc.dispose();  
    52.     }  
    53. }  

    (完)

  • 相关阅读:
    apache2+django+virtualenv 服务器部署实战
    从 relu 的多种实现来看 torch.nn 与 torch.nn.functional 的区别与联系
    Causal Corpus 事件因果关系语料统计
    Event StoryLine Corpus 论文阅读
    哈工大计算机网络Week2-网络应用数据交换
    哈工大计算机网络Week3-传输层
    哈工大计算机网络Week1-网络应用
    哈工大计算机网络Week0-概述
    python爬虫入门
    对scanner.close方法的误解以及无法补救的错误
  • 原文地址:https://www.cnblogs.com/akweb/p/13332266.html
Copyright © 2020-2023  润新知