我试图将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);
但它不起作用。有什么不对?
使用iText从远程位置加载.gif时,这是一个已知问题。
解决这个问题的方法是使用Java下载.gif文件(不是通过iText的Image类的getInstance方法),并使用Image类的getInstance方法中的下载字节。
编辑:我继续在iText中修复远程gif加载,它包含在iText 5.4.1及更高版本中。
通过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();
}
您用于向IText PDF添加图像的方式是用于添加本地文件的方式,而不是URL。
对于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]。