Невозможно преобразовать строку base64 в pdf
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();
Выше код не работает должным образом для больших изображений, они обрезаются, но он работает нормально для небольших изображений.
Пожалуйста, предложите.
1 ответ
Ошибка вызвана medikmResourceRequest.getResourceImage()
а также b64Image.getBytes()
,
Ваша программа НЕ должна передаваться byte[]
(данные изображения) через строку. Когда JVM конвертировать byte[]
String, если байтовые данные не могут быть сопоставлены с символом набора символов String. Это будет заменить ?
, byte[]
вернулся b64Image.getByte()
Это отличается от оригинальных данных и привести к повреждению вашего изображения.