- 論壇徽章:
- 0
|
來源:
http://www.greatmoo.com/2009/09/python%E8%BD%AC%E6%8D%A2office-word%E6%96%87%E4%BB%B6%E4%B8%BAhtml/
這里測試的環(huán)境是:windows xp,office 2007,python 2.5.2,pywin32 build 213,原理是利用win32com接口直接調(diào)用office API,好處是簡單、兼容性好,只要office能處理的,python都可以處理,處理出來的結果和office word里面“另存為”一致。
原文地址:http://www.fuchaoqun.com/2009/03/use-python-convert-word-to-html-with-win32com/
view source
print
?
1.#!/usr/bin/env python
2.#coding=utf-8
3.from win32com import client as wc
4.word = wc.Dispatch('Word.Application')
5.doc = word.Documents.Open('d:/labs/math.doc')
6.doc.SaveAs('d:/labs/math.html', 8 )
7.doc.Close()
8.word.Quit()
關鍵的就是doc.SaveAs(’d:/labs/math.html’, 8)這一行,網(wǎng)上很多文章寫成: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(對應數(shù)字 8、10),區(qū)別是如果是wdFormatHTML格式的話,word文件里面的公式等ole對象將會存儲成wmf格式,而選用 wdFormatFilteredHTML的話公式圖片將存儲為gif格式,而且目測可以看出用wdFormatFilteredHTML生成的HTML 明顯比wdFormatHTML要干凈許多。
當然你也可以用任意一種語言通過com來調(diào)用office API,比如PHP.
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u2/61757/showart_2062239.html |
|