java 生成word文档并且在线预览的问题

我遇到了这样一个棘手问题,请求各位帮助。
需求:生成有固定格式的word文档(文字报告类型),然后再将该word文档实现在线预览。
我想到的解决办法是先利用freemarker模板生成word(网上盛行),然后再用jodconverter将word转为pdf,然后再用swftools转换pdf为swf,用flexpaper实现在线预览。然后问题出现了,用freemarker生成的word本质是wordml类型的,无法转化为pdf,大家有没有什么好的建议,请不吝赐教。

用Apache POI library不行吗?

将word文档转成html,直接显示

富文本?
用iText或者PD4ML直接转换为pdf

[code="java"]
String outputFile = "D:/Test/demo_3.pdf";
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont("C:/Windows/fonts/simsun.ttc", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
StringBuffer html = new StringBuffer();
// DOCTYPE 必需写否则类似于 这样的字符解析会出现错误

html.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");

html.append("").

append("

")

.append("")

.append("body {font-family: SimSun;}")

.append("")

.append("");

//html.append("
支持中文!
");

String str = htmlStream();
html.append(str);
html.append("");

System.out.println(html.toString());
renderer.setDocumentFromString(html.toString());
renderer.getSharedContext().setBaseURL("file:/E:/workspace/yjsas/WebRoot/images/");
renderer.layout();
renderer.createPDF(os);
os.close();
[/code]

[code="java"]
PD4ML pd4ml = new PD4ML();
pd4ml.setHtmlWidth(1024);
pd4ml.setPageSize(PD4Constants.A4);
pd4ml.setPageInsetsMM(new Insets(20, 10, 10, 10));
pd4ml.addStyle("BODY {margin: 0; font-family:MSJH}", true);
pd4ml.useTTF("java:fonts", true);
pd4ml.setDefaultTTFs("KaiTi_GB2312", "KaiTi_GB2312", "KaiTi_GB2312");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
pd4ml.render(new StringReader(inputHTML), baos);
baos.close();
File output = new File(outputPDFFile);
FileOutputStream fos = new FileOutputStream(output);
fos.write(baos.toByteArray());
fos.close();
[/code]

楼主用插件试试吧,PageOffice插件可以很简单方便的实现生成word文档,很容易实现在线预览office文件的,也可以实现将word转换成pdf和html,并且可以在线预览

word文档生成html模板(freemarker)再转为pdf:https://download.csdn.net/download/gongjin28_csdn/85118467