我有一个包含文本,图像的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在线查找图像?
谢谢!
答案 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";
}
}
获取输入流;