修改word文档格式,包括修改目录字体字号间距,修改一级标题字体字号间距,二级标题字体字号间距。。。。正文字体字号间距,表格中的文字的字体字号间距,以图或表开头的图名称和表名称的字体字号间距.
word中包含封面的话输入1就不遍历第一个表格,不修改封面字体,没封面就遍历所有的表格,修改所有表格的字体
修改论文格式还是比较好用的,尤其是图片和表格比较多的文档
from docx import Document
from docx.shared import Inches
import os,re
from docx.shared import Pt,RGBColor
from docx.oxml.ns import qn
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.shared import Inches
from docx.shared import Pt, Cm, Inches
def zhengwen():
for paragraph in document.paragraphs:
if re.match('^Heading 1',paragraph.style.name):
paragraph.paragraph_format.line_spacing = 1.5
paragraph.paragraph_format.space_before = Pt(5)
paragraph.paragraph_format.space_after = Pt(5)
paragraph.paragraph_format.first_line_indent = Cm(0)
paragraph.paragraph_format.left_indent = Cm(0)
for run in paragraph.runs:
run.font.size = Pt(16)
run.font.name = u'黑体'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')
run.font.bold = True
elif re.match('^Heading 2',paragraph.style.name):
paragraph.paragraph_format.line_spacing = 1.5
paragraph.paragraph_format.space_before = Pt(5)
paragraph.paragraph_format.space_after = Pt(5)
paragraph.paragraph_format.first_line_indent = Cm(0)
paragraph.paragraph_format.left_indent = Cm(0)
for run in paragraph.runs:
run.font.size = Pt(14)
run.font.name = u'黑体'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')
run.font.bold = True
elif re.match('^Heading 3',paragraph.style.name):
paragraph.paragraph_format.line_spacing = 1.5
paragraph.paragraph_format.space_before = Pt(5)
paragraph.paragraph_format.space_after = Pt(5)
paragraph.paragraph_format.first_line_indent = Cm(0)
paragraph.paragraph_format.left_indent = Cm(0)
for run in paragraph.runs:
run.font.size = Pt(12)
run.font.name = u'黑体'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')
run.font.bold = True
elif re.match('^Heading 4',paragraph.style.name):
paragraph.paragraph_format.line_spacing = 1.5
paragraph.paragraph_format.space_before = Pt(5)
paragraph.paragraph_format.space_after = Pt(5)
paragraph.paragraph_format.first_line_indent = Cm(0)
paragraph.paragraph_format.left_indent = Cm(0)
for run in paragraph.runs:
run.font.size = Pt(12)
run.font.name = u'黑体'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')
run.font.bold = True
elif re.match('^Heading 5',paragraph.style.name):
paragraph.paragraph_format.line_spacing = 1.5
paragraph.paragraph_format.space_before = Pt(5)
paragraph.paragraph_format.space_after = Pt(5)
paragraph.paragraph_format.first_line_indent = Cm(0)
paragraph.paragraph_format.left_indent = Cm(0)
for run in paragraph.runs:
run.font.size = Pt(12)
run.font.name = u'黑体'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')
run.font.bold = True
elif re.match('^Heading 6',paragraph.style.name):
paragraph.paragraph_format.line_spacing = 1.5
paragraph.paragraph_format.space_before = Pt(5)
paragraph.paragraph_format.space_after = Pt(5)
paragraph.paragraph_format.first_line_indent = Cm(0)
paragraph.paragraph_format.left_indent = Cm(0)
for run in paragraph.runs:
run.font.size = Pt(12)
run.font.name = u'黑体'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')
run.font.bold = True
elif re.match('^Heading 7',paragraph.style.name):
paragraph.paragraph_format.line_spacing = 1.5
paragraph.paragraph_format.space_before = Pt(5)
paragraph.paragraph_format.space_after = Pt(5)
paragraph.paragraph_format.first_line_indent = Cm(0)
paragraph.paragraph_format.left_indent = Cm(0)
for run in paragraph.runs:
run.font.size = Pt(12)
run.font.name = u'黑体'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')
run.font.bold = True
#目录
elif re.match('^toc',paragraph.style.name):
for run in paragraph.runs:
run.font.size = Pt(10.5)
run.font.name = u'宋体'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
run.font.italic = False
run.font.bold = False
#图 表
else:
if re.match("(表)",paragraph.text):
print(paragraph.text)
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER
for run in paragraph.runs:
run.font.size = Pt(9)
run.font.name = u'黑体'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')
elif re.match("(图)",paragraph.text):
print(paragraph.text)
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER
for run in paragraph.runs:
run.font.size = Pt(9)
run.font.name = u'黑体'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')
#正文
else:
paragraph.paragraph_format.line_spacing = 1.5
for run in paragraph.runs:
run.font.size = Pt(10.5)
run.font.name = u'宋体'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
run.font.italic = False
run.font.bold = False
def biaoge(a):
tables=document.tables
b=int(a)
for tb in document.tables[b:]:
for row in tb.rows:
for cell in row.cells:
for par in cell.paragraphs:
for run in par.runs:
run.font.size = Pt(9)
run.font.name ='宋体'
run._element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')
if __name__ == "__main__":
print("输入文件路径")
path = input()
print("有封面输入1没封面输入0")
a = input()
#'C:\\Users\lilyh\\Desktop\\文件.docx'
document = Document(path)
zhengwen()
biaoge(a)
document.save('修改后的文件.docx')
print("输入任意结束")
d = input()