You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用iText在二维码中添加Logo?(无法使用ZXing库)

用iText为二维码添加中心Logo的实现方法

核心思路是先生成二维码图片,再将Logo图片叠加到二维码的中心位置,以下是完整实现代码:

// 1. 生成基础二维码
BarcodeQRCode qrcode = new BarcodeQRCode(myString.trim(), 1, 1, null);
Image qrcodeImage = qrcode.getImage();
qrcodeImage.scalePercent(200); // 缩放二维码到目标尺寸

// 2. 加载Logo图片(替换为你的Logo路径)
Image logoImage = Image.getInstance("path/to/your/logo.png");
// 控制Logo大小,建议为二维码的1/5左右,避免遮挡识别区域
float logoScale = 20; // 缩放比例,可根据实际调整
logoImage.scalePercent(logoScale);

// 3. 计算Logo的居中位置
float qrWidth = qrcodeImage.getScaledWidth();
float qrHeight = qrcodeImage.getScaledHeight();
float logoWidth = logoImage.getScaledWidth();
float logoHeight = logoImage.getScaledHeight();

// 计算中心偏移量
float x = qrcodeImage.getAbsoluteX() + (qrWidth - logoWidth) / 2;
float y = qrcodeImage.getAbsoluteY() + (qrHeight - logoHeight) / 2;
logoImage.setAbsolutePosition(x, y);

// 4. 将二维码和Logo依次添加到文档
qrcodeImage.setAbsolutePosition(10, 500);
doc.add(qrcodeImage);
doc.add(logoImage);

关键说明

  • Logo尺寸控制:Logo的缩放比例建议在15%-25%之间,过大的Logo会遮挡二维码的定位和数据区域,导致无法识别。
  • 位置计算:通过二维码的尺寸减去Logo尺寸后取半,确保Logo完全居中。
  • 图片格式:支持PNG、JPG等常见图片格式,若Logo有透明背景,优先使用PNG格式以保证显示效果。

内容的提问来源于stack exchange,提问作者Sachin J

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 20:06:23