在Android中将图像添加到iText pdf [英] Add an image to iText pdf in Android

查看:696
本文介绍了在Android中将图像添加到iText pdf的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含图像的字符串,例如我的字符串[img src = image_from_drawable/] blablabla".我可以使用以下代码将字符串解析为Spannable,以在TextView上显示该可绘制对象:

I have an String containing images like "My string [img src=image_from_drawable/] blablabla". I'm able to parse this string as Spannable to show that drawable on my TextView, with the following code:

static public Spannable formatAbility(String _ability) {
    Spannable spannable = spannableFactory.newSpannable(_ability);
    addImages(mContext, spannable);
    return spannable;
}

private static boolean addImages(Context context, Spannable spannable) {
    Pattern refImg = Pattern
            .compile("\\Q[img src=\\E([a-zA-Z0-9_]+?)\\Q/]\\E");
    boolean hasChanges = false;

    Matcher matcher = refImg.matcher(spannable);
    while (matcher.find()) {
        boolean set = true;
        for (ImageSpan span : spannable.getSpans(matcher.start(),
                matcher.end(), ImageSpan.class)) {
            if (spannable.getSpanStart(span) >= matcher.start()
                    && spannable.getSpanEnd(span) <= matcher.end()) {
                spannable.removeSpan(span);
            } else {
                set = false;
                break;
            }
        }
        String resname = spannable
                .subSequence(matcher.start(1), matcher.end(1)).toString()
                .trim();
        int id = context.getResources().getIdentifier(resname, "drawable",
                context.getPackageName());

        if (set) {
            hasChanges = true;

            spannable.setSpan(new ImageSpan(context, id,
                    ImageSpan.ALIGN_BASELINE), matcher.start(), matcher
                    .end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
    }

    return hasChanges;
}

我正在将iText/iTextG库用于我的Android项目,以便创建pdf文件.

I'm using iText/iTextG library for my Android project in order to create a pdf file.

我的问题是:在iText中有一种简单的方法吗?写包含图像的短语或段落?我以为Chunks会有所帮助,但我找不到方法,示例或其他任何东西.

My question is: Is there an easy way to do this in iText? Write a Phrase or Paragraph containing images? I presume that Chunks would help, but I don't find the way, examples or anything else.

感谢您的时间.

推荐答案

使用图像创建Chunk确实是一种方法.请看一下ZUGFeRD教程的这一章:

Creating a Chunk with an image is indeed the way to go. Please take a look at this chapter of the ZUGFeRD tutorial: Creating PDF/A files with iText

它有一个示例,该示例使用以下图像创建文本:

It has an example that creates text with images that look like this:

这是完成的方式:

Paragraph p = new Paragraph();
Chunk c = new Chunk("The quick brown ");
p.add(c);
Image i = Image.getInstance("resources/images/fox.bmp"");
c = new Chunk(i, 0, -24);
p.add(c);
c = new Chunk(" jumps over the lazy ");
p.add(c);
i = Image.getInstance("resources/images/dog.bmp"");
c = new Chunk(i, 0, -24);
p.add(c);
document.add(p);

我希望这会有所帮助.

这篇关于在Android中将图像添加到iText pdf的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆