iTextPDF 7(7.1.5),pdfHTML附加组件。 HTML到PDF。 URL图片不在PDF输出中

时间:2019-03-15 14:41:55

标签: html pdf itext7

我有一个包含文本,图像的html页面,我正在将HTML转换为PDF。 在生成的PDF中,不显示包含的图像,而仅显示文本和base64嵌入式图像。没有网址图片。

如果我传递诸如“ D:/ HTML / images /”之类的baseURI ConverterProperty,请更改HTML(XSLT)图片URL,从URL中删除“ http://”,然后将de URL路径作为文件夹进入de基本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在线查找图像?

谢谢!

1 个答案:

答案 0 :(得分:0)

使用图像的服务器限制没有浏览器用户代理的情况下下载图像,这就是为什么在pdf中不包含图像的原因。

尝试使用其他图片网址,服务器也允许不使用用户代理进行下载

例如:

SELECT DISTINCT user_id, installed_time
WHERE state=SUCCESSFUL
FROM installation
ORDER BY ASC

您将在pdf中获得图像。

内部使用Installation: user_id, installed_date, Version: version_id, release_date, release_code, @PostMapping(value = "user/login") public String login(Model model, HttpSession session, @RequestParam("login") String login, @RequestParam("password") String password) { try { User user = userService.checkLogin(login, password); if (user == null) { model.addAttribute("err", "Login Valid login and password"); return "/login"; } else { if (user.getRole().equals(userService.Role_Admin)) { userService.addUserInSession(user, session); return "/admin/account"; } else if (user.getRole().equals(userService.Role_Student)) { userService.addUserInSession(user, session); return "/student/account"; } else { model.addAttribute("err", "Invalid User Role"); return "/login"; } } } catch (UserException ex) { model.addAttribute("err", ex.getMessage()); return "/login"; } } 获取输入流;