美文网首页
RTF模板+XML模板 生成 PDF文件

RTF模板+XML模板 生成 PDF文件

作者: Only平常 | 来源:发表于2019-12-25 20:08 被阅读0次

RTF模板+XML模板 => PDF文件

一:tomcat配置

catalina.bat

if not "%JSSE_OPTS%" == "" goto gotJsseOpts
set JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"
:gotJsseOpts
set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS% -Dfile.encoding=UTF-8"

logging.properties

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
;; 解决日志乱码
java.util.logging.ConsoleHandler.encoding = GBK

字体

ALBANWTJ.ttf
ALBANWTK.ttf
ALBANWTS.ttf
ALBANWTT.ttf
ALBANYWT.ttf
二、word中编辑rtf模板

1:快速功能区调出窗体域

2:编辑文字域

3:语法:https://www.cnblogs.com/eastsea/p/3762380.html

三、生成文件
private void buildReport(OutputStream outputStream, String templatePath, String xml) throws Exception {
        // 使用 RTF 模板文件生成 xsl 文件,并将其写入到 xslOutputStream,避免生成临时文件
        InputStream fIs = new URL(templatePath).openStream();
        OutputStream xslOutputStream = new ByteArrayOutputStream();
        RTFProcessor rtfProcessor = new RTFProcessor(fIs);
        rtfProcessor.setOutput(xslOutputStream);
        rtfProcessor.process();

        // xsl 临时文件(模板文件) + 数据文件 => PDF 文件
        FOProcessor foProcessor = new FOProcessor();
        foProcessor.setData(IOUtils.toInputStream(xml));
        foProcessor.setTemplate(IOUtils.toInputStream(xslOutputStream.toString()));

        // 设置 PDF 文件保存位置,setOutput 方法也支持输出流作为参数
        foProcessor.setOutput(outputStream);
        foProcessor.setOutputFormat(FOProcessor.FORMAT_PDF);
        foProcessor.generate();
    }

相关文章

网友评论

      本文标题:RTF模板+XML模板 生成 PDF文件

      本文链接:https://www.haomeiwen.com/subject/nskswqtx.html