ITextRenderer生成pdf无样式问题和StringWriter和OutputStreamWriter区别

加载的HTML页面引入的有样式,PDF生成出来却没有样式,怎么改因需要引入bootstrap.css

img

还有两端代码使用的流不一样。断点走的都是一样的。区别问题请指教

这一段代码将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);