lanying56123 发表于 2017-4-30 09:44:17

Python转换office word文件为HTML

这里测试的环境是:windows xp,office 2007,python 2.5.2,pywin32 build 213,原理是利用win32com接口直接调用office API,好处是简单、兼容性好,只要office能处理的,python都可以处理,处理出来的结果和office word里面“另存为”一致。

#!/usr/bin/env python
#coding=utf-8
from win32com import client as wc
word = wc.Dispatch('Word.Application')
doc = word.Documents.Open('d:/labs/math.doc')
doc.SaveAs('d:/labs/math.html', 8 )
doc.Close()
word.Quit()

关键的就是doc.SaveAs(‘d:/labs/math.html’, 8 )这一行,网上很多文章写成:doc.SaveAs(‘d:/labs/math.html’, win32com.client.constants.wdFormatHTML),直接报错:
AttributeError: class Constants has no attribute ‘wdFormatHTML’
当然你也可以用上面的代码将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.
原文链接 : http://www.fuchaoqun.com/2009/03/use-python-convert-word-to-html-with-win32com/
页: [1]
查看完整版本: Python转换office word文件为HTML