在Android Studio的iText PDF文档中添加图像

时间:2018-05-29 19:19:53

标签: java android itext

我正在尝试使用Java在Android Studio的iText PDF文档中添加图像,但它始终显示错误 NullPointerException

我尝试的代码是:

1

try {
        InputStream inputStream = context.getAssets().open("res/drawable/logo.png");
        Bitmap bitmapA = BitmapFactory.decodeStream(inputStream);
        ByteArrayOutputStream stream = new ByteArrayOutputStream();

        bitmapA.compress(Bitmap.CompressFormat.PNG, 100, stream);
        Image image = Image.getInstance(stream.toByteArray());
        return image;
    }catch (Exception e){
        e.printStackTrace();
    }

2

try {
        Drawable d = context.getResources().getDrawable(R.drawable.logo);
        BitmapDrawable bitDw = ((BitmapDrawable) d);
        Bitmap bmp = bitDw.getBitmap();
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
        Image image = Image.getInstance(stream.toByteArray());
        return image;
    }catch (Exception e){
        e.printStackTrace();
    }

3

try {
        Drawable d = context.getDrawable(R.drawable.logo);
        BitmapDrawable bitDw = ((BitmapDrawable) d);
        Bitmap bmp = bitDw.getBitmap();
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
        Image image = Image.getInstance(stream.toByteArray());
        return image;
    }catch (Exception e){
        e.printStackTrace();
    }

4

try {
        Image image = Image.getInstance("res/drawable/logo.png");
        return image;
    } catch (BadElementException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

..并且这些代码中没有一个正在运行。始终是相同的错误,没有创建资源。

我的问题是,我可以在iText文档中添加图片吗?我怎么能这样做?

聚苯乙烯。我正在使用iText5( implementation'com.itextpdf:itextg:5.5.10')。

1 个答案:

答案 0 :(得分:0)

我通过一些小改动解决了我的问题。如果其他人需要它,我会把它放在这里。

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.logo);
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bm.compress(Bitmap.CompressFormat.PNG, 100, stream);
    Image img = null;
    byte[] byteArray = stream.toByteArray();
    try {
        img = Image.getInstance(byteArray);
    } catch (BadElementException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

然后,您可以将此img添加到iText中的PDF文件中。