加载的HTML页面引入的有样式,PDF生成出来却没有样式,怎么改因需要引入bootstrap.css
还有两端代码使用的流不一样。断点走的都是一样的。区别问题请指教
这一段代码将freemarker获取的模板数据填充到了html中,会生成html页面
//获取目标文件的文件流
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
PrintWriter printWriter = new PrintWriter(writer);
//将数据填充到模板对象中生成html
template.process(map,printWriter);
printWriter.flush();
System.out.println("生成成功");
同一段代码却不会生成html文件,不太理解问题在哪,
//获取文件的完整路径,生成file对象
File file = new File(filePath, fileName);
//获取目标文件的文件流
StringWriter stringWriter = new StringWriter();
//将数据填充到模板对象中生成html
template.process(map, stringWriter);
stringWriter.flush();
System.out.println("生成成功");
return stringWriter.toString();
第一段代码加上这里生成pdf代码会报错(有HTML)报错信息如下
ERROR: '前言中不允许有内容。'
org.xhtmlrenderer.util.XRRuntimeException: Can't load the XML resource (using TrAX transformer). org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
第二段代码加上这里会生成无样式pdf(无HTML)
感觉可能是流的问题,但是并不明白请指点
OutputStream os = new FileOutputStream(pdfPath)
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(htmlTmpStr);
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont("D:/apache-tomcat-8.5.16/webapps/gem-web/WEB-INF/classes/fonts/SIMSUN.TTC", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
renderer.layout();
renderer.createPDF(os);