Преобразование изображения штрих-кода iText из формата CCITT в PNG - PullRequest
1 голос
/ 16 августа 2011

Я использую iText для создания штрих-кода PDF417 следующим образом:

private InputStream getBarcode() throws Exception {</p> <pre><code>BarcodePDF417 barcode = new BarcodePDF417(); barcode.setText("Sample bar code text"); Image image = barcode.getImage(); image.scalePercent(50, 50 * barcode.getYHeight()); return new ByteArrayInputStream(image.getRawData());

}

Мне нужно преобразовать возвращенный формат CCITTbarcode.getImage() в JPG, GIF или PNG, чтобы я мог включить его в документ, который я создаю в JasperReports.

Ответы [ 2 ]

4 голосов
/ 17 августа 2011

Как насчет этого?

    BarcodePDF417 barcode = new BarcodePDF417();
    barcode.setText("Bla bla");
    java.awt.Image img = barcode.createAwtImage(Color.BLACK, Color.WHITE);
    BufferedImage outImage = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB);
    outImage.getGraphics().drawImage(img, 0, 0, null);
    ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
    ImageIO.write(outImage, "png", bytesOut);
    bytesOut.flush();
    byte[] pngImageData = bytesOut.toByteArray();
    FileOutputStream fos = new FileOutputStream("C://barcode.png");
    fos.write( pngImageData);
    fos.flush();
    fos.close();
1 голос
/ 17 августа 2011

Решение, которое я придумал:

private Image getBarcode() throws Exception {

    BarcodePDF417 barcode = new BarcodePDF417();

    barcode.setText("Sample bar code text");
    barcode.setAspectRatio(.25f);

    return barcode.createAwtImage(Color.BLACK, Color.WHITE);
}

JasperReports поддерживает тип java.awt.Image для изображений, используемых в отчете.

...