zxing` lib用于在我的spring mvc应用程序中生成qr代码。他们很好地生成代码,现在我想要在qr图像底部的自定义文本。 例如----
我用过的图书馆。
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>2.2</version>
</dependency>
我使用的代码
String charset = "UTF-8"; // or "ISO-8859-1"
Map hintMap = new HashMap();
hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
createQRCode(code,
dirPath ,
charset, hintMap, 200, 200);
public static void createQRCode(String qrCodeData, String filePath, String charset, Map hintMap, int qrCodeheight,
int qrCodewidth) throws WriterException, IOException {
BitMatrix matrix = new MultiFormatWriter().encode(new String(qrCodeData.getBytes(charset), charset),
BarcodeFormat.QR_CODE, qrCodewidth, qrCodeheight, hintMap);
MatrixToImageWriter.writeToFile(matrix, filePath.substring(filePath.lastIndexOf('.') + 1), new File(filePath));
}
答案 0 :(得分:0)
您可以在生成条形码图像后手动绘制文本:
var result = qrcoder.Write(inputData);
using (var g = Graphics.FromImage(result))
using (var font = new Font(FontFamily.GenericMonospace, 12))
using (var brush = new SolidBrush(Color.Black))
using(var format = new StringFormat(){Alignment = StringAlignment.Center})
{
int margin = 5, textHeight = 20;
var rect = new RectangleF(margin, result.Height - textHeight,
result.Width - 2 * margin, textHeight);
g.DrawString(inputData, font, brush, rect, format);
}
result.Save(tempFileName);
您可以选择自己的字体大小和字体系列,从而更好地满足您的目标。
文本的位置由您要绘制的矩形(矩形)和format.Alignment属性确定