在日常生活中,条形码(一维码)和二维码主要是作为物品的标识来使用。条形码主要应用在商品标识、防伪、超市收银等场合;相比条形码(一维码)来说,二维码可以包含更多的信息,如网址、文字、图片等等。本文将使用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();
}
}
添加效果: