如何在 Linux 上使用 Python 读取 word 文件信息

如何在 Linux 上使用 Python 读取 word 文件信息,第1张

首先下载安装win32com

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目录下新建一个自定义目录即可,直接全部拷贝过去了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/6259643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存