import re
import os
from win32com.client import Dispatch
from docx import document as Doc
from docx.enum.style import WD_STYLE_TYPE
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.shared import Pt
from docx.oxml.ns import qn
def initdoc(docdir):
docx = Doc(docdir)
t_s = docx.styles.add_style('t_s', WD_STYLE_TYPE.PARAGRAPH)
t_s.font.size = 203200
t_s.font.name = '方正楷体简体'
t_s.font.bold = True
t_s.paragraph_format.line_spacing = Pt(18)
t_s.paragraph_format.left_indent = None
t_s.paragraph_format.space_before = None
t_s.paragraph_format.space_after = 76200
t_s.paragraph_format.first_line_indent = None
t_s.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
docx.styles['t_s']._element.rPr.rFonts.set(qn('w:eastAsia'), '方正楷体简体')
return docx
def doc2docx(s_dir):
App = Dispatch("Word.Application")
App.Visible = False
doc = App.documents.Open(s_dir)
s_dir += 'x'
doc.SaveAs(s_dir, 12) # 12就是docx, 详情查看下个代码块
def main():
filedir = "C:/Users/Desktop/batch_word/msg.doc"
if re.search(r'doc$', filedir):
filedir += "x"
if not os.path.exists(filedir):
doc2docx(filedir[:-1])
docx = initdoc(filedir)
for para in docx.paragraphs:
if '第一系列' in para.text:
para.text = para.text.replace('一', '三')
para.style = 't_s'
savedir = "C:/Users/Desktop/batch_word/msg_modi.docx"
docx.save(savedir)
main()
转格式问题:
open(r'c:text','r') wdFormatdocument = 0 wdFormatdocument97 = 0 wdFormatdocumentDefault = 16 wdFormatDOSText = 4 # .txt wdFormatDOSTextLineBreaks = 5 wdFormatEncodedText = 7 wdFormatFilteredHTML = 10 # .html wdFormatFlatXML = 19 wdFormatFlatXMLMacroEnabled = 20 wdFormatFlatXMLTemplate = 21 wdFormatFlatXMLTemplateMacroEnabled = 22 wdFormatHTML = 8 wdFormatPDF = 17 # .pdf wdFormatRTF = 6 # .rtf wdFormatTemplate = 1 wdFormatTemplate97 = 1 wdFormatText = 2 wdFormatTextLineBreaks = 3 wdFormatUnicodeText = 7 # .txt wdFormatWebArchive = 9 wdFormatXML = 11 # .doc wdFormatXMLdocument = 12 # .docx wdFormatXMLdocumentMacroEnabled = 13 wdFormatXMLTemplate = 14 wdFormatXMLTemplateMacroEnabled = 15 wdFormatXPS = 18



