我正在使用以下代码使用css生成pdf现在我正在使用内联css,因为我无法从外部加载css。
File file = new File(path + "\\" + id + "\\" + fileName + ".pdf");
ServletOutputStream outputStream = response.getOutputStream();
FileOutputStream fos = new FileOutputStream(file);
ITextRenderer renderer = new ITextRenderer();
StringBuilder htmls = new StringBuilder();
htmls.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
htmls.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">");
htmls.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
/*htmls.append("<head><style type=\"text/css\">");
htmls.append("body{text-decoration: none; font-family: Arial, Verdana,Helvetica,sans-serif; font-size:12px;}");
htmls.append("</style></head>");*/
htmls.append("<head><style type=\"text/css\">");
htmls.append(".gradi{background:url(resources/template/template1/images/grad.jpg) repeat-x!important}");
htmls.append("</style></head>");
htmls.append("<body>html body</body></html>");
renderer.setDocumentFromString(htmls.toString());
renderer.layout();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + ".pdf\"");
renderer.createPDF(outputStream);
renderer.createPDF(fos);
现在上面代码的问题是我使用的是setDocumentFromString函数,因此我无法在外部加载css。 我的所有图像都在以下文件夹资源/ template / template1 / images是否可以在我的servlet中加载图像? 我应该在css的下一行加载图像的路径是什么?请帮我解决这个问题。
htmls.append(".gradi{background:url(resources/template/template1/images/grad.jpg) repeat-x!important}");