from win32com import client as wc
word = wc.Dispatch('Word.Application')
doc = word.Documents.Open('c:/test')
doc.SaveAs('c:/test.text', 2)
doc.Close()
word.Quit()
这种方式产生的text文档,不能用python用普通的r方式读取,为了让python可以用r方式读取,应当写成
doc.SaveAs('c:/test', 4)
注意:系统执行完成后,会自动产生文件后缀txt(虽然没有指明后缀)。
在xp系统下面,应当
open(r'c:\text','r')
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.
from win32com import client as wc
word = wc.Dispatch('Word.Application')
doc = word.Documents.Open(r'c:/test1.doc')
doc.SaveAs('c:/test1.text', 4)
doc.Close()
import re
strings=open(r'c:\test1.text','r').read()
result=re.findall('\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)|\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)',strings)
chan=re.sub('\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)|\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)','()',strings)
question=open(r'c:\question','a+')
question.write(chan)
question.close()
answer=open(r'c:\answeronly','a+')
for i,a in enumerate(result):
m=re.search('[A-D]',a)
answer.write(str(i+1)+' '+m.group()+'\n')
answer.close()
chan=re.sub(r'\xa3\xa8\s*[A-D]\s*\xa3\xa9','()',strings)
#不要(),容易引起歧义。
1、word是windows软件,本身不支持linux。2、类似于word的开源软件有openoffice、libreoffice等,可以下载安装,使用和windows下word相同,快捷方式可以打开。3、linux下安装Windows软件需要借助crossover等程序,但是会遇到很多问题。1、WORD文档可以通过XML格式来进行 *** 作,考虑使用模板freemarker进行WORD文档模板 *** 作,包括内容替换和表格动态生成等。但遇到问题:一是合并文件功能实现未找到合适的实现方式,二是生成的文档格式openoffice无法正常转为PDF。
2、解决合并WORD文档问题,网上搜集到的方案,通过分析RTF文件格式后以流的方式进行合并,将WORD转为RTF进行处理,成功实现了WORD文档合并问题,记录下来。
3、通过rtftemplate对rtf模板文件进行内容处理,生成rtf文件,将rtf文件转为pdf,将所有pdf合并并添加页眉页脚水印。通过rtftemplate将rtf模板文件进行内容处理,生成rtf文件。
4、openoffice启动时,默认端口8100,windows本地默认端口为2002,在启动openoffice服务后,找不到8100的监听端口,或者启动服务失败。安装图形化界面,在图形化界面下启动openoffice服务看是否可以解决,我们是通过此方式解决。
5、将rtf转pdf时,原本的内容有30页,但转pdf后内容变大(因为页码发生变化,要求页码与模板一致),观察发现字体及样式发生变化导致。解决:因为linux下没有对应的中文字体,需要添加相应的中文字体,记录解决方案。
6、将本地系统下的字体文件拷贝到linux系统上,本地在c:\windows\fonts,将需要的字体文件拷贝到linux上,在/usr/share/fonts目录下新建一个自定义目录即可,直接全部拷贝过去了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)