移动端无法打开FreeMarker模板生成的Word文档

移动端打开由FreeMarker模板生成的Word文档显示异常,仅显示文档结构,而在PC上打开正常。通过使用JACOB - Java COM Bridge,将生成的文档另存为新文件,可解决此问题。此方案目前限制于特定平台,适用于部分用户。

FreeMarker通过xml结构生成Word文档,在移动端打开却显示的是xml文档,PC打开正常,而PC上使用Office或者Wps打开这个文档,另存为一个新的Word文档,在移动端打开就正常了。顺着这个思路,找到一个解决方案,使用JACOB - Java COM Bridge download,通过Java代码把FreeMarker生成文档另存为一个新的Word文档。然而Jacob目前只能在Windows平台使用,希望这个回答可以帮到部分朋友。

public static void main(String[] args) {

    ActiveXComponent _app = new ActiveXComponent("Word.Application");
    _app.setProperty("Visible", Variant.VT_FALSE);

    Dispatch documents = _app.getProperty("Documents").toDispatch();

    // 打开FreeMarker生成的Word文档
    Dispatch doc = Dispatch.call(documents, "Open", "E:\\FreeMarkerXml.doc", Variant.VT_FALSE, Variant.VT_TRUE).toDispatch();
    // 另存为新的Word文档
    Dispatch.call(doc, "SaveAs", "E:\\NewDoc.doc", Variant.VT_FALSE, Variant.VT_TRUE);

    Dispatch.call(doc, "Close", Variant.VT_FALSE);
    _app.invoke("Quit", new Variant[] {});
    ComThread.Release();
}

作者:张业龙
链接:https://www.zhihu.com/question/41442659/answer/122789898
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值