PyQt4:如何用python读取带有格式设置的.doc文件
我想把QTextEdit里面的所有文字,包括加粗、字体大小和字体颜色,保存到一个.doc文件里,然后再以相同的格式读取回来。我不知道该怎么做到这一点。请告诉我如何读取一个.doc格式的文件。我现在使用的代码是:
def loadFile(self, fileName):
file = QtCore.QFile(fileName)
if not file.open(QtCore.QFile.ReadOnly | QtCore.QFile.Text):
QtGui.QMessageBox.warning(self, "Ajgar Writer",
"Cannot read file %s:\n%s." % (fileName, file.errorString()))
return False
instr = QtCore.QTextStream(file)
QtGui.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor)
self.setPlainText(instr.readAll())
QtGui.QApplication.restoreOverrideCursor()
self.setCurrentFile(fileName)
self.document().contentsChanged.connect(self.documentWasModified)
return True
1 个回答
2
你不能用Qt来读取或写入.doc文件,因为这是微软Office的专有文档格式。你能选择的只有文本/html(可以读写)或者pdf/odf(只能写)。所以如果你想在读取和写入时保留格式,html其实是唯一可行的选择。
要把html内容读入一个QTextEdit
,你只需这样做:
# self.setPlainText(instr.readAll())
self.setHtml(instr.readAll())
而要写入html,你可以这样做:
outstr << self.toHtml()
或者使用一个QTextDocumentWriter:
writer = QtGui.QTextDocumentWriter(path, 'HTML')
if not writer.write(self.document()):
print('ERROR:', writer.device().errorString())