直接将java.awt.Image添加到itext

时间:2016-05-21 12:33:22

标签: java image itext

我想知道你是否可以直接向itext添加java.awt.Image;到目前为止我看到的所有对这个问题的回答建议将图像写入磁盘

   ImageIO.write(img, "png", "output.png);

然后使用com.itextpdf.text.Image方法Image.getInstance()

获取它
   Image iTextImage = Image.getInstance("output.png");

此解决方案有效但不太优雅。有没有办法更好地做到这一点?

1 个答案:

答案 0 :(得分:3)

如果您查看iText API documentation for the Image class,那么您会发现使用图片还有许多其他方式而不是文件名:

  • static Image getInstance(byte[] imgb)
  • static Image getInstance(byte[] imgb, boolean recoverFromImageError)获取Image
  • 的实例
  • static Image getInstance(Image image)获取Image
  • 的实例
  • static Image getInstance(Image image, Color color)Image获取java.awt.Image的实例。
  • static Image getInstance(Image image, Color color, boolean forceBW)Image获取java.awt.Image的实例。
  • static Image getInstance(int width, int height, boolean reverseBits, int typeCCITT, int parameters, byte[] data)使用CCITT G3或G4压缩创建Image
  • static Image getInstance(int width, int height, boolean reverseBits, int typeCCITT, int parameters, byte[] data, int[] transparency)使用CCITT G3或G4压缩创建Image
  • static Image getInstance(int width, int height, byte[] data, byte[] globals)创建JBIG2 Image
  • static Image getInstance(int width, int height, int components, int bpc, byte[] data)以原始模式获取Image的实例。
  • static Image getInstance(int width, int height, int components, int bpc, byte[] data, int[] transparency)以原始模式获取Image的实例。
  • static Image getInstance(PdfContentByte cb, Image awtImage, float quality)Image获取java.awt.Image的实例。
  • static Image getInstance(PdfTemplate template)获取Image
  • 的实例
  • static Image getInstance(PdfWriter writer, Image awtImage, float quality)Image获取java.awt.Image的实例。
  • static Image getInstance(PRIndirectReference ref)重复使用现有图片。
  • static Image getInstance(String filename)获取Image
  • 的实例
  • static Image getInstance(String filename, boolean recoverFromImageError)
  • static Image getInstance(URL url)
  • static Image getInstance(URL url, boolean recoverFromImageError)获取Image的实例。

您可以在官方网站上找到有关如何使用java.awt.Image的示例。请参阅ImageTypes示例:

// Adding a java.awt.Image
java.awt.Image awtImage =
    Toolkit.getDefaultToolkit().createImage(RESOURCE);
img = com.itextpdf.text.Image.getInstance(awtImage, null);
document.add(new Paragraph(
    String.format("%s is an image of type %s",
    "java.awt.Image", img.getClass().getName())));
document.add(img);