从URL添加图像到PDF?

时间:2013-04-02 09:05:51

标签: java image itext

我试图将URL地址中的图像添加到我的pdf中。代码是:

Image image=Image.getInstance("http://www.google.com/intl/en_ALL/images/logos/images_logo_lg.gif");
image.scaleToFit((float)200.0, (float)49.0);
paragraph.add(image);

但它不起作用。什么可能是错的?

3 个答案:

答案 0 :(得分:2)

使用iText从远程位置加载.gif时,这是一个已知问题。

对此的修复是使用Java下载.gif(不是通过iText的Image类的getInstance方法),并使用Image类的getInstance方法中的下载字节。

编辑: 我继续在iText中修复远程gif加载,它包含在iText 5.4.1及更高版本中。

答案 1 :(得分:0)

无法通过URL将图像添加到Itext PDF中。 在PDF中添加图像的唯一方法是将所有图像下载到本地目录并应用以下代码

String photoPath = Environment.getExternalStorageDirectory() + "/abc.png";
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inSampleSize = 8;
            final Bitmap b = BitmapFactory.decodeFile(photoPath, options);

            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            Bitmap.createScaledBitmap(b, 10, 10, false);
            b.compress(Bitmap.CompressFormat.PNG, 30, stream);
            Image img = null;
            byte[] byteArray = stream.toByteArray();
            try {
                img = Image.getInstance(byteArray);
            } catch (BadElementException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

答案 2 :(得分:-3)

用于向IText PDF添加图像的方式是用于添加本地文件而非URL的方式。

对于网址,这种方式可以解决问题。

String imageUrl = "http://www.google.com/intl/en_ALL/" 
                  + "images/logos/images_logo_lg.gif";

Image image = Image.getInstance(new URL(imageUrl));

然后,您可以使用image继续将此document添加到之前打开的document.add(image)

如需进一步参考,请访问[Java IText: Image docs]。