В iText очень много ошибок.Не комментируйте версию, которую вы используете, но у загрузчика ресурсов есть несколько проблем, которые необходимо исправить путем его перегрузки (он не знает, как загружать изображения из base64, он не знает, как загружать ресурсы с перенаправлением 302)., ...).
В вашем конкретном случае указана ошибка:
Невозможно получить изображение с заданным базовым URI (файл: / Users / jklancic / dev / custom/ resume /) и путь к источнику изображения (http://clipartmag.com/image/iron-man-face-drawing-6.png)
Это говорит о том, что iText пытается получить доступ к файлу адреса ": / Users / jklancic / dev / custom / resume / http://clipartmag.com/image/iron-man-face-drawing-6.png". Отладка на cisrrResourceResolver: 146 для подтверждения.
Если вам удастся выполнить обновление до новой версии, попробуйте сделать это, в противном случае вам следует перегрузить загрузчик ресурсов, чтобы исправить это.
Помните, сначала вы должны определить точную проблему (в настоящее время это проблема плохой комбинации базы + пути), в любом случае, я исправил множество связанных с этим проблем, реализуя нашу пользовательскую ITextUserAgent
, следующим образом:
final ITextRenderer renderer = new ITextRenderer();
{
final TextUserAgent userAgent = new TextUserAgent(renderer.getOutputDevice());
renderer.getSharedContext().setUserAgentCallback(userAgent);
userAgent.setSharedContext(renderer.getSharedContext());
}
Вы должны чертитьОставьте свой пользовательский TextUserAgent
, чтобы решить вашу конкретную проблему (iText сейчас не бесплатный):
public class TextUserAgent extends ITextUserAgent {
public TextUserAgent(ITextOutputDevice outputDevice) {
super(outputDevice);
}
@Override
public ImageResource getImageResource(final String uri) {
final ImageResource legacy = super.getImageResource(uri);
if (legacy != null && legacy.getImage() != null) {
return legacy;
}
return alternativeImageResource(uri);
}
...