【问题标题】:Get bytes from iText's Barcode39 image从 iText 的 Barcode39 图像中获取字节
【发布时间】:2011-08-10 15:04:54
【问题描述】:

如何从使用 itext 的barcode39 类生成的图像中获取字节?我有:

Document document = new Document(new Rectangle(340, 842));
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
PdfContentByte cb = writer.getDirectContent();
Barcode39 code39ext = new Barcode39();
code39ext.setCode("Testing Text");
code39ext.setStartStopText(false);
code39ext.setExtended(true);
Image img = code39ext.createImageWithBarcode(cb, null, null);

现在我需要帮助从 img 获取字节,以便通过电子邮件发送并将其保存到文件中。

提前致谢。

【问题讨论】:

  • createImageWithBarcode 创建一个包装在 itextpdf.Image 中的 PdfTemplate。没有像素信息存在......但请参阅 jCoder 对“实现方式”的回答。

标签: java image itext barcode


【解决方案1】:

假设您实际上不需要PDF文件而只需要条形码图像,那么您可以尝试:

Barcode39 code39ext = new Barcode39();
code39ext.setCode("Testing Text");
code39ext.setStartStopText(false);
code39ext.setExtended(true);
java.awt.Image rawImage = code39ext.createAwtImage(Color.BLACK, Color.WHITE);
BufferedImage outImage = new BufferedImage(rawImage.getWidth(null), rawImage.getHeight(null), BufferedImage.TYPE_INT_RGB);
outImage.getGraphics().drawImage(rawImage, 0, 0, null);
ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
ImageIO.write(outImage, "png", bytesOut);
bytesOut.flush();
byte[] pngImageData = bytesOut.toByteArray();

这应该只是创建条形码图像,将其渲染到内存并将其保存到流/字节[]以供进一步使用。

【讨论】:

  • 嗨,上面的代码工作正常,但无法获取图像下方的文本。你能告诉我任何其他解决方案以显示图像下方的文本
  • @SundarG outImage 实际上是一个普通的图像画布,上面绘制了条形码,因此您可以创建一个更大的画布,然后在上面绘制条形码和文本,代码示例:pastebin.com/qzdybgYy
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-05
  • 2012-06-09
  • 2016-09-20
  • 1970-01-01
  • 2020-09-28
相关资源
最近更新 更多