我有一个html页面与文本,图像,我正在转换HTML到PDF。在生成的PDF中,不显示包含的图像,仅显示文本和base64嵌入图像。URL图像不是。
如果我传递一个像“D:/HTML/ baseURI /”这样的图像,将删除"http://“from URL”的HTML(XSLT)图像ConverterProperty更改为de base URI文件夹,该过程运行正常!
示例代码:
ConverterProperties props = new ConverterProperties();
props.setBaseUri("D:/HTML/images/");
HtmlConverter.convertToPdf(htmlString, dest,props);
具有带src属性值的html img标记:
http://www.mywebserver.com/gsi/img/logo.jpg
更改为:
www.mywebserver.com/gsi/img/logo.jpg
将图像保存到:
D:/HTML/images/www.mywebserver.com/gsi/img/logo.jpg
它工作正常!
但如果我尝试服务器上的图像,如下所示:
http://www.mywebserver.com/gsi/img/Logo.jpg
那么图像就不在PDF输出中了。
注意:我使用itextpdf 7.1.5来生成PDF。
我的简单代码:
HtmlConverter.convertToPdf(htmlString, dest);
我的服务器日志:
mar 15, 2019 11:18:27 AM com.itextpdf.styledxmlparser.resolver.resource.ResourceResolver retrieveImageExtended
GRAVE: Unable to retrieve image with given base URI (file:/D:/wlsservermydomain/) and image source path (http://www.mywebserver.com/gsi/img/Logo.jpg)
<15-03-2019 11:18:27 Hora de Chile> <Error> <com.itextpdf.styledxmlparser.resolver.resource.ResourceResolver> <BEA-000000> <Unable to retrieve image with given base URI (file:/D:/wlsservermydomain/) and image source path (http://www.mywebserver.com/gsi/img/Logo.jpg)>
mar 15, 2019 11:18:27 AM com.itextpdf.html2pdf.attach.impl.DefaultHtmlProcessor visit
GRAVE: Worker of type com.itextpdf.html2pdf.attach.impl.tags.TdTagWorker unable to process com.itextpdf.html2pdf.attach.impl.tags.ImgTagWorker
<15-03-2019 11:18:27 Hora de Chile> <Error> <com.itextpdf.html2pdf.attach.impl.DefaultHtmlProcessor> <BEA-000000> <Worker of type com.itextpdf.html2pdf.attach.impl.tags.TdTagWorker unable to process com.itextpdf.html2pdf.attach.impl.tags.ImgTagWorker>
似乎iTextPDF正在服务器的工作文件夹D:\wlsservermydomain中查找图像。
如何让iText在线查找图像?
谢谢!
发布于 2019-04-27 17:25:46
使用图片的服务器限制在没有浏览器User-Agent的情况下下载图片,这就是为什么在pdf中不包含图片的原因。
尝试使用不同的图像url,其中服务器也允许在没有用户代理的情况下进行下载
例如:
https://images.homedepot-static.com/productImages/e0b36c9f-48c2-4fbd-ace8-3fa0e877aacc/svn/york-wallcoverings-wallpaper-at7053-64_1000.jpg
你会在你的pdf里看到图片。
在内部使用url.openStream())
从import java.net.URL
获取输入流;
https://stackoverflow.com/questions/55185085
复制相似问题