QR 码(快速响应码)是二维条码或矩阵条码的一种。它是包含有关附加项目信息的机器可读标签。本文将指导您以编程方式在 Java 中生成 QR 代码以对文档和图像进行电子签名。
以下是所涵盖主题的快速链接:
QR 码生成器 - Java API
在本文中,我使用 GroupDocs.Signature for Java API 生成 QR 码并将它们附加到 PDF 文件、Word 文档、电子表格、演示文稿和图像中。此 API 支持各种文件格式的不同类型的电子签名。在二维码类型中,API 支持以下类型:
- 阿兹特克法典
- 二维码
- GS1 数据矩阵
- GS1二维码
- 二维码
下载和配置
您可以从 downloads 部分获取 JAR 文件,或者在继续查看示例之前在基于 Maven 的 Java 应用程序中添加以下 pom.xml 配置。有关详细信息,您可以访问API 参考。
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>21.2</version>
</dependency>
用Java生成二维码——添加到PDF、Word、Excel、PPT
Signature 和 QrCodeSignOptions 类可以在 Java 中快速创建和添加不同类型的 QR 码到文档和图像。
- 使用源文档创建 Signature 类对象。
- 使用 QrCodeSignOptions 类设置 QR 码属性。
- 最重要的是,从二维码类型中选择合适的。
- 使用 Signature 对象调用 sign 方法,传递生成的文档路径和 QR 码选项。
以下 Java 代码将生成二维码并将其附加到提供的 PDF 文档中。
// 使用 GroupDocs.Signature for Java API 对 PDF、Excel、PPT、Word 文档和带有二维码的图像进行电子签名
Signature signature = new Signature("filePath/document.pdf"); // Provide any DOC, PDF, XLS, PPT, PNG, JPG, WebP file.
// 使用预定义文本创建 QR 码选项
QrCodeSignOptions options = new QrCodeSignOptions("Signed by GroupDocs");
options.setEncodeType(QrCodeTypes.QR);
options.setAllPages(true);
// 设置二维码位置和外观
options.setLeft(50);
options.setTop(50);
options.setHeight(90);
options.setWidth(90);
// 签署文件并保存文件
signature.sign("filePath/document-with-qr-code.pdf", options);
此处显示的是生成的 PDF 文件,其中包含使用上述代码添加的 QR 码。同样,您可以提供任何 word 文档、电子表格、演示文稿或任何其他 支持的文档格式 来附加二维码。
在 Java 中生成二维码 - 添加到 JPG、PNG 或 WebP 图像
现在,您可能会想,将 QR 码添加到图像中会有不同的策略。答案是不。您可以使用上面相同的代码生成 QR 码并将其添加到图像中。该 API 允许您将二维码添加到 JPG/JPEG、PNG、WebP、BMP、GIF、SVG、CMX 和 TIFF 图像。
您还可以更改 QR 码的外观,例如背景颜色、前景色、透明度等。在这里,我将黑色背景色和前景色设置为白色。
// 在Java中改变QR码的外观
// 设置背景色、前景色、透明度等。
Background background = new Background();
background.setColor(Color.BLACK);
background.setTransparency(0.5);
options.setBackground(background);
options.setForeColor(Color.WHITE);
结论
现在,您应该有足够的信心在 Java 应用程序中生成 QR 代码,以使用 GroupDocs.Signature 对文档和图像进行电子签名。要消除 文档 中的任何歧义或任何未解决的场景,请随时联系 论坛 上的支持团队。 GitHub 上还提供了许多其他示例。