将com.itextpdf.text.Image保存为图像文件

时间:2014-07-24 17:59:01

标签: java image itext

有没有办法将com.itextpdf.text.Image文件保存为文件系统上的jpg文件?

Barcode39 code39 = new Barcode39();
code39.setCode(barcode);
code39.setStartStopText(false);
image39 = code39.createImageWithBarcode(cb, null, null);
image39.scaleAbsolute(width, height);
image39.setAbsolutePosition(top, left);
cb.addImage(image39);

我正在创建条形码图像并将其添加到pdf中。同时我希望将图像保存在文件系统中。任何帮助表示赞赏。

OR,

是否可以从pdf中检索条形码(条形码及其下的数字)作为图像文件并使用itext将其保存到文件系统中?

2 个答案:

答案 0 :(得分:5)

使用createAwtImage

将Barcode39 itext图像转换为AWT图像
java.awt.Image awtImage = code39.createAwtImage(Color.BLACK, Color.WHITE);

然后将其转换为BufferedImage并存储它:

BufferedImage bImage= new BufferedImage(awtImage.getWidth(), awtImage.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D g = bImage.createGraphics();
g.drawImage(awtImage, 0, 0, null);
g.dispose();

File outputfile = new File("saved.png");
ImageIO.write(bImage, "jpg", new File("code39.jpg"));

答案 1 :(得分:0)

您可以使用此代码:

BarcodeQRCode qrcode = new BarcodeQRCode("testo testo testo", 1, 1, null);
Image image = qrcode.createAwtImage(Color.BLACK, Color.WHITE);

BufferedImage buffImg = new BufferedImage(image.getWidth(null), image.getWidth(null), BufferedImage.TYPE_4BYTE_ABGR);
buffImg.getGraphics().drawImage(image, 0, 0, null);
buffImg.getGraphics().dispose();

File file = new File("tmp.png");
ImageIO.write(buffImg, "png", file);

我希望它可以帮到你。

恩里科