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

Pass Drawable to iTextPdf instead of an Image - Android

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

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

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

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

构造

将可绘制对象转换为 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);