用jacob将word文档生成htm后,直接打开正常,但在web里面用window.open()来打开就会出现中文乱码 100
publicstaticvoidwordTohtml(Stringdocfile,Stringhtmlfile){if(docfile.substring(docfile...
public static void wordTohtml(String docfile, String htmlfile) {
if (docfile.substring(docfile.lastIndexOf('.') + 1).indexOf("doc") < 0) {
System.out.println("OfficetoHtml.wordTohtml : 不是word文档");
return;
}
ActiveXComponent app = null;
try{
app = new ActiveXComponent("Word.Application"); // 启动word
app.setProperty("Visible", new Variant(false));
// 设置word不可见
Dispatch docs = app.getProperty("Documents").toDispatch();
Dispatch doc = Dispatch.invoke(docs,"Open",Dispatch.Method,new Object[] { docfile, new Variant(false),
new Variant(true) }, new int[1]).toDispatch();
// 打开word文件
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {htmlfile, new Variant(8) }, new int[1]);
// 作为html格式保存到临时文件
Variant f = new Variant(false);
Dispatch.call(doc, "Close", f);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (app != null)
app.invoke("Quit", new Variant[] {});
}
}
原因找到了:jacob将word文档转换成htm,是依托本地的office软件来转换的。所以需要设置本地的office的一些参数。word文档在html显示乱码解决方法: 展开
if (docfile.substring(docfile.lastIndexOf('.') + 1).indexOf("doc") < 0) {
System.out.println("OfficetoHtml.wordTohtml : 不是word文档");
return;
}
ActiveXComponent app = null;
try{
app = new ActiveXComponent("Word.Application"); // 启动word
app.setProperty("Visible", new Variant(false));
// 设置word不可见
Dispatch docs = app.getProperty("Documents").toDispatch();
Dispatch doc = Dispatch.invoke(docs,"Open",Dispatch.Method,new Object[] { docfile, new Variant(false),
new Variant(true) }, new int[1]).toDispatch();
// 打开word文件
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {htmlfile, new Variant(8) }, new int[1]);
// 作为html格式保存到临时文件
Variant f = new Variant(false);
Dispatch.call(doc, "Close", f);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (app != null)
app.invoke("Quit", new Variant[] {});
}
}
原因找到了:jacob将word文档转换成htm,是依托本地的office软件来转换的。所以需要设置本地的office的一些参数。word文档在html显示乱码解决方法: 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏100(财富值+成长值)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询