概述
接到一个需求,要生成word格式的说明文档,并且要和本地的office版本无关。一开始还是考虑用com组件编程,想写一个工厂,用来判断当前系统的office版本,以实现兼容,但浅尝辄止。主要是在命名空间这块的问题还没有想好如何解决。
于是换了思路,直接生成html格式的数据到文本文件,并为其重命名为.doc word文件,实现过程比较容易,但实现以后领导提出了几点要求:
1.表格宽度在word中变形
2.打开word文件时默认是“Web版式视图”,这样会给客户的感觉不是真正的word文档,必须实现打开就是“页面视图”
第一个问题很好解决,表格的宽度不再使用px,而改为百分比即可解决。
关于第二个问题,参考相关demo并试验后,发现在html代码中加入以下代码即可实现:
首先html标签中要加入模板:
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
xmlns="http://www.w3.org/TR/REC-html40">
其次要在之间加入以下文本
<!--[if gte mso 9]><xml><w:WordDocument><w:View>Print</w:View><w:TrackMoves>false</w:TrackMoves><w:TrackFormatting/><w:ValidateAgainstSchemas/><w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid><w:IgnoreMixedContent>false</w:IgnoreMixedContent><w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText><w:DoNotPromoteQF/><w:LidThemeOther>EN-US</w:LidThemeOther><w:LidThemeAsian>ZH-CN</w:LidThemeAsian><w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript><w:Compatibility><w:BreakWrappedTables/><w:SnapToGridInCell/><w:WrapTextWithPunct/><w:UseAsianBreakRules/><w:DontGrowAutofit/><w:SplitPgBreakAndParaMark/><w:DontVertAlignCellWithSp/><w:DontBreakConstrainedForcedTables/><w:DontVertAlignInTxbx/><w:Word11KerningPairs/><w:CachedColBalance/><w:UseFELayout/></w:Compatibility><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><m:mathPr><m:mathFont m:val="Cambria Math"/><m:brkBin m:val="before"/><m:brkBinSub m:val="--"/><m:smallFrac m:val="off"/><m:dispDef/><m:lMargin m:val="0"/> <m:rMargin m:val="0"/><m:defJc m:val="centerGroup"/><m:wrapIndent m:val="1440"/><m:intLim m:val="subSup"/><m:naryLim m:val="undOvr"/></m:mathPr></w:WordDocument></xml><![endif]-->
之后将文件的后缀名 改为”.doc”,打开后默认的视图即为页面视图。网上相关资料较少,记录于此,以备日后查阅。
ps:word 中的字体大小在html中对应的是:二号 29px;小五:12px;
最后
以上就是坦率毛巾为你收集整理的html输出转成word(转)的全部内容,希望文章能够帮你解决html输出转成word(转)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复