delphi中转换office word文件为HTML文件,或者其它类型的文件的一些总结
这里测试的环境是:windows xp,office200,delphixe,原理是利用win32com接口直接调用office API,好处是简单、兼容性好,只要office能处理的,处理出来的结果和office word里面“另存为”一致。
在保存时,
Fword.ActiveDocument.saveas(Save.FileName,FileFormat:= _
wdFormatFilteredHTML);或Fword.ActiveDocument.saveas(Save.FileName,FileFormat:= _
wdFormatHTML);会出现wdFormatFilteredHTML或wdFormatHTML未定义,类型不匹配问题。
我网上查了好多的资料,几乎都是这样写的。运行时就会报错。终于找到解决方法,给大家分享下:
正确的如下:Fword.ActiveDocument.saveas(Save.FileName,10);或Fword.ActiveDocument.saveas(Save.FileName,8);
//10或8是format的两种html格式。
这样就没有问题了。
当然你也可以用上面的代码将word文件转换成任意格式文件(只要office 2007支持,比如将word文件转换成PDF文件,把8改成17即可),下面是office 2007支持的全部文件格式对应表:
wdFormatDocument = 0
wdFormatDocument97 = 0
wdFormatDocumentDefault = 16
wdFormatDOSText = 4
wdFormatDOSTextLineBreaks = 5
wdFormatEncodedText = 7
wdFormatFilteredHTML = 10
wdFormatFlatXML = 19
wdFormatFlatXMLMacroEnabled =20
wdFormatFlatXMLTemplate = 21
wdFormatFlatXMLTemplateMacroEnabled = 22
wdFormatHTML = 8
wdFormatPDF = 17
wdFormatRTF = 6
wdFormatTemplate = 1
wdFormatTemplate97 = 1
wdFormatText = 2
wdFormatTextLineBreaks = 3
wdFormatUnicodeText = 7
wdFormatWebArchive = 9
wdFormatXML = 11
wdFormatXMLDocument = 12
wdFormatXMLDocumentMacroEnabled = 13
wdFormatXMLTemplate = 14
wdFormatXMLTemplateMacroEnabled = 15
wdFormatXPS = 18
照着字面意思应该能对应到相应的文件格式,如果你是office 2003可能支持不了这么多格式。word文件转html有两种格式可选wdFormatHTML、wdFormatFilteredHTML(对应数字 8、10),区别是如果是wdFormatHTML格式的话,word文件里面的公式等ole对象将会存储成wmf格式,而选用 wdFormatFilteredHTML的话公式图片将存储为gif格式,而且目测可以看出用wdFormatFilteredHTML生成的HTML 明显比wdFormatHTML要干净许多。
当然你也可以用任意一种语言通过com来调用office API,比如PHP.