Добавить изображение в документ iText PDF в Android Studio - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь добавить изображение в свой документ iText PDF в Android Studio с Java, но оно всегда показывает ошибку 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?Как я могу это сделать?

Ps.Я использую iText5 ( реализация 'com.itextpdf: itextg: 5.5.10' ).

1 Ответ

0 голосов
/ 30 мая 2018

Я решил свою проблему с небольшими изменениями.Я дам это здесь, если кому-то еще это понадобится.

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 вы можете добавить в свой файл PDF в iText.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...