iText使彩色图像显得黑白分明

时间:2013-02-12 15:08:31

标签: java pdf awt itext javax.imageio

我正在使用Graphics2D itext功能并使用g2.drawImage(x,y,null)绘制图像。如果我使用ImageIO.read()图像加载此图像在生成的PDF中看起来是黑白的。但是Toolkit.getDefaultToolkit()。createImage()工作正常。这是代码:

public static final String filename = "dummy.pdf";
public static void main(String[] args) {
    try {
        Document doc = new Document();
        PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(filename));
        writer.setPdfVersion(PdfWriter.VERSION_1_5);

        doc.open();
        PdfContentByte cb = writer.getDirectContent();
        Graphics2D g2 = cb.createGraphics(1654, 1168);
        draw(g2);


        doc.close();
        System.out.println("Done!");
    } catch(Exception e) {
        e.printStackTrace();
    }
}


private static void draw(Graphics2D g2) throws Exception {
    g2.setColor(Color.red);
    g2.fill(new Rectangle2D.Double(0, 0, 100, 100));

    BufferedImage img = ImageIO.read(new File("Speedy2BigClr.gif"));
    BufferedImage bi = toBufferedImage(img);
    Image i = makeColorTransparentAndBW(bi, Color.WHITE);

    Image iii = Toolkit.getDefaultToolkit().createImage("Speedy2BigClr.gif");

    g2.translate(0, 300);
    g2.scale(0.3, 0.3);
    g2.drawImage(img, 0, 0, null);

}
}

不幸的是,对于另一个GIF,ImageIO工作正常,而Toolkit不起作用。但是所有图像在屏幕上都很好看。为什么加载图像的方式会影响PDF中的结果?

enter image description here

P.S。由于明显的原因,我使用的是LGPL iText(2.0.4,2.1.7,4.2.0)。 UPD :在iText-5.3.5上运行正常,我无法使用: - (

0 个答案:

没有答案