起因
最近在做将word文件转换成html实现在线查看的功能,虽然使用Microsoft.Office.Interop.Word组件转换后的效果不尽理想,但客户有此需求,还是要搞定。转换后的html页面标题在客户浏览器中显示的是生成的文件名和文件地址,导致体验很差。关于设置转换后页面标题的案例,网上又少又不全,一番搜索、尝试终于找到如下解决方案:
核心代码
Microsoft.Office.Interop.Word.ApplicationClass class2 = null; Microsoft.Office.Interop.Word.Document activeDocument = null; try { class2 = new Microsoft.Office.Interop.Word.ApplicationClass(); class2.Documents.Open(ref obj7, ref confirmConversions, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref encoding, ref missing, ref missing, ref missing, ref missing, ref missing); class2.Visible = false; activeDocument = class2.ActiveDocument; #region 获取高级属性对象 try { object oDocCustomProps = activeDocument.BuiltInDocumentProperties; Type typeDocCustomProps = oDocCustomProps.GetType(); var oPropItem = typeDocCustomProps.InvokeMember("Item", System.Reflection.BindingFlags.Default | System.Reflection.BindingFlags.GetProperty, null, oDocCustomProps, new object[] { "TITLE" }); var typeItemProp = oPropItem.GetType(); typeItemProp.InvokeMember("Value", System.Reflection.BindingFlags.Default | System.Reflection.BindingFlags.SetProperty, null, oPropItem, new object[] { downFileInfoName }); } catch (Exception ex) { } #endregion activeDocument.SaveAs(ref fileName, ref fileFormat, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); } catch (Exception) { throw; } finally { if (activeDocument != null) activeDocument.Close(ref missing, ref missing, ref missing); if (class2 != null) class2.Quit(ref missing, ref missing, ref missing); }
评论列表
评论内容: