Получить байты из изображения штрих-кода iText39 - PullRequest
1 голос
/ 22 апреля 2011

как я могу получить байты из изображения, сгенерированного с помощью класса itext's 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, чтобы отправить их по электронной почте и сохранить в файл.

Заранее спасибо.

1 Ответ

6 голосов
/ 22 апреля 2011

Предполагая, что вам на самом деле не нужен файл 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();

Это должно просто создать изображение штрих-кода, отобразить его в памяти и сохранить впоток / байт [] для дальнейшего использования.

...