将Drawable传递给iTextPdf而不是Image - Android

时间:2015-01-19 12:48:33

标签: android image android-resources itextpdf

我正在使用iTextPdf创建一个签入应用程序。我已经使用图像对象添加了一个图像:

imagePath = "/sdcard/Mugshot.jpg";
Image image = Image.getInstance(imagePath);
image.setAbsolutePosition(165f, 465f);
image.scaleToFit(290f,290f);
document.add(image);

我希望在添加任何内容之前以相同的方式添加图像,因为我预计任何后续内容都会覆盖现有内容。

1 个答案:

答案 0 :(得分:5)

根据API Documentation of iTextPdf,你也可以使用byte [] array

构建

将drawable转换为byte[]

Drawable d = getResources ().getDrawable (R.drawable.your_drawable)
Bitmap bitmap = ((BitmapDrawable)d).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] bitmapData = stream.toByteArray();

,然后

Image image = Image.getInstance(bitmapData);