0
    Document document = new Document();

    String b64Image = medikmResourceRequest.getResourceImage();
    String fileName = resourceDir+"/"+medikmResourceRequest.getPhysicianId()+"/"+medikmResourceRequest.getName()+" "+ System.currentTimeMillis() +".pdf";

    PdfWriter.getInstance(document, new FileOutputStream(new File(fileName)));
    document.open();

    byte[] decoded = Base64.decodeBase64(b64Image.getBytes());

    document.add(Image.getInstance(decoded));
    document.close();

上面的代码不适用于大图像,它们被裁剪但对于小图像工作正常。

请建议。

4

1 回答 1

0

该错误是由medikmResourceRequest.getResourceImage()和引起的b64Image.getBytes()

您的程序不应byte[]通过字符串传输(图像数据)。JVM转换byte[]为String时,如果字节数据不能映射到String的charset中的char。它将被替换为?byte[]返回的数据b64Image.getByte()与原始数据不同,并导致您的图像损坏。

于 2016-02-11T10:23:52.163 回答