条形码是实现自动化收集和处理数据的关键。条形码可广泛应用于各行各业,从零售业、制造业到医疗保健业和物流业。通过在 PDF 中添加条形码,您可以创建更具互动性的文档,方便扫描和处理。本文将介绍如何使用 Spire.PDF for Java 通过 Java 在 PDF 中添加一维条形码或二维码。
安装 Java 库
首先,您需要下载 Spire.PDF for Java 和 Spire.Barcode for Java 库,然后将相应的 JAR 文件作为依赖项添加到您的 Java 程序中。如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而在应用程序中导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf</artifactId>
<version>11.1.2</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.barcode</artifactId>
<version>5.1.11</version>
</dependency>
</dependencies>
Java 在 PDF 中添加条形码
Spire.PDF for Java 支持多种由不同类代表的一维条形码类型,如 PdfCodabarBarcode、PdfCode128ABarcode、PdfCode32Barcode、PdfCode39Barcode、PdfCode93Barcode。
每个类都提供了相应的方法来设置条形码文本、大小、颜色等。以下是在 PDF 页面指定位置绘制常见的 Codabar、Code128 和 Code39 条码的步骤。
- 创建一个 PdfDocument 类的对象。
- 使用 PdfDocument.getPages().add() 方法添加 PDF 页面。
- 创建一个 PdfTextWidget 对象,并使用 PdfTextWidget.draw() 方法在页面上绘制文本。
- 创建 PdfCodabarBarcode、PdfCode128ABarcode、PdfCode39Barcode 对象。
- 使用相应类的 setBarcodeToTextGapHeight() 方法设置条形码与显示文本之间的间隙。
- 使用相应类的 setTextDisplayLocation() 方法设置条形码文本显示位置。
- 使用相应类的 setTextColor() 方法设置条形码文本颜色。
- 使用相应类的 draw() 方法在 PDF 页面的指定位置绘制条形码。
- 使用 PdfDocument.saveToFile() 方法保存生成的 PDF 文件。
- Java
import com.spire.pdf.*;
import com.spire.pdf.barcode.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.Point2D;
public class DrawBarcode {
public static void main(String[] args) {
// 创建PDF文档
PdfDocument pdf = new PdfDocument();
// 添加页面
PdfPageBase page = pdf.getPages().add();
// 初始化y坐标
double y = 15;
// 创建字体
PdfTrueTypeFont font= new PdfTrueTypeFont(new Font("Arial", Font.BOLD, 12));
// 在页面上绘制文本 "Codebar:"
PdfTextWidget text = new PdfTextWidget();
text.setFont(font);
text.setText("Codebar:");
PdfLayoutResult result = text.draw(page, 0, y);
y =(float)(result.getBounds().getY()+ result.getBounds().getHeight() + 2);
// 在页面上绘制Codabar条码
PdfCodabarBarcode codebar= new PdfCodabarBarcode("00:12-3456/7890");
codebar.setBarcodeToTextGapHeight(1f);
codebar.setBarHeight(50f);
codebar.setTextDisplayLocation(TextLocation.Bottom);
PdfRGBColor blue = new PdfRGBColor(Color.blue);
codebar.setTextColor(blue);
Point2D.Float point = new Point2D.Float();
point.setLocation(0,y);
codebar.draw(page,point);
y = codebar.getBounds().getY()+ codebar.getBounds().getHeight() + 5;
// 在页面上绘制文本 "Code128-A:"
text.setText("Code128-A:");
result = text.draw(page, 0, y);
page = result.getPage();
y =result.getBounds().getY()+ result.getBounds().getHeight() + 2;
// 在页面上绘制Code128-A条码
PdfCode128ABarcode code128 = new PdfCode128ABarcode("HELLO 00-123");
code128.setBarcodeToTextGapHeight(1f);
code128.setBarHeight(50f);
code128.setTextDisplayLocation(TextLocation.Bottom);
code128.setTextColor(blue);
point.setLocation(point.x,y);
code128.draw(page, point);
y =code128.getBounds().getY()+ code128.getBounds().getHeight() + 5;
// 在页面上绘制文本 "Code39:"
text.setText("Code39:");
result = text.draw(page, 0, y);
page = result.getPage();
y =result.getBounds().getY()+ result.getBounds().getHeight() + 2;
// 在页面上绘制Code39条码
PdfCode39Barcode code39 = new PdfCode39Barcode("16-273849");
code39.setBarcodeToTextGapHeight(1f);
code39.setBarHeight(50f);
code39.setTextDisplayLocation(TextLocation.Bottom);
code39.setTextColor(blue);
point.setLocation(point.x,y);
code39.draw(page, point);
// 保存文档
pdf.saveToFile("DrawBarcode.pdf");
}
}
Java 在 PDF 中添加二维码
要在 PDF 文件中添加二维条形码,首先需要使用 Spire.Barcode for Java 库生成二维码,然后使用 Spire.PDF for Java 库将二维码图像添加到 PDF 文件中。具体步骤如下:
- 创建一个 PdfDocument 类的对象。
- 使用 PdfDocument.getPages().add() 方法添加 PDF 页面。
- 创建一个 BarcodeSettings 类的对象。
- 调用 BarcodeSettings 类的相应属性来设置条形码类型、数据、纠错级别和宽度等。
- 根据设置创建 BarCodeGenerator 类的对象。
- 使用 BarCodeGenerator.generateImage() 方法生成二维码图像。
- 使用 PdfPageBase.getCanvas().drawImage() 方法在 PDF 页面的指定位置绘制二维码图像。
- 使用 PdfDocument.saveToFile() 方法保存生成的 PDF 文件。
- Java
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import com.spire.barcode.*;
import java.awt.*;
import java.awt.image.BufferedImage;
public class DrawQRCode {
public static void main(String[] args) {
// 创建PDF文档
PdfDocument pdf = new PdfDocument();
// 添加页面
PdfPageBase page = pdf.getPages().add();
// 创建 BarcodeSettings 类的对象
BarcodeSettings settings = new BarcodeSettings();
// 将条码类型设置为二维码QR Code
settings.setType(BarCodeType.QR_Code);
// 设置二维码数据
settings.setData("ABC 123456789");
settings.setData2D("ABC 123456789");
// 设置在底部显示文本
settings.setShowTextOnBottom(true);
// 设置二维码宽度
settings.setX(2);
// 设置二维码的纠错级别
settings.setQRCodeECL(QRCodeECL.M);
// 生成二维码图片
BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
BufferedImage QRimage = barCodeGenerator.generateImage();
// 初始化y坐标
double y = 30;
// 创建字体
PdfTrueTypeFont font= new PdfTrueTypeFont(new Font("Arial", Font.BOLD, 12));
// 在页面上绘制文本
PdfTextWidget text = new PdfTextWidget();
text.setFont(font);
text.setText("QRcode:");
PdfLayoutResult result = text.draw(page, 0, y);
y =(float)(result.getBounds().getY()+ result.getBounds().getHeight() + 2);
// 在页面上绘制二维码图片
PdfImage pdfImage = PdfImage.fromImage(QRimage);
page.getCanvas().drawImage(pdfImage, 0, y);
// 保存文档
pdf.saveToFile("DrawQRCode.pdf");
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。