Blob数据转Base64

场景:
要做一个html转pdf的东东
但是html上的img标签为相对路径,类似:

<img src="/image/6ONXsjip0QIZ8tyhnq/it/u=2300343163,3650485576&fm=58&bpow=700&bpoh=700">

所以打印生成的PDF文件是没有图片的.

一开始取设itext的路径啥的
但是没有得到解决
所以换个方式
直接把图片转成Base64,放在src上(正解)

public static String blobToBase64(Blob blob) {
        String result = "";
        if (null != blob) {
            try {
                InputStream msgContent = blob.getBinaryStream();
                ByteArrayOutputStream output = new ByteArrayOutputStream();
                byte[] buffer = new byte[100];
                int n = 0;
                while (-1 != (n = msgContent.read(buffer))) {
                    output.write(buffer, 0, n);
                }
                result = new BASE64Encoder().encode(output.toByteArray());
                output.close();
            } catch (SQLException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        } else {
            return null;
        }
    }

当然,上面只是Blob数据转Base64,要显示在img上还需要这样:

String imgBase64Code="data:image/png;base64," +blobToBase64(imgBlob);

===============================================结束分割线=======================================

至于image/png能不能是jpeg ,有待探究

猜你喜欢

转载自blog.csdn.net/my13413527259/article/details/81911384