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. }  

(完)

原文地址:https://www.cnblogs.com/akweb/p/13332266.html