python docx

from docx import Document # 导入docx包
from docx.shared import Cm, Inches, Pt, RGBColor # 导入单位换算函数
document = Document('李虚中命书.docx') # 新建word文档

section = document.sections[0] # 获取section对象
#修改页面大小
# print('默认页面的宽度和高度:', section.page_width.cm,section.page_height.cm) # 打印默认页面宽度和高度
# section.page_width = Cm(40)
# section.page_height = Cm(40)
# print('修改后页面的宽度和高度:', section.page_width.cm, section.page_height.cm) # 打印修改后的页面宽度和高度
#修改页边距
print('上页边距:下页边距:左页边距:右页边距:' ,section.top_margin , section.bottom_margin, section.left_margin,section.right_margin) #:上页边距#:下页边距#:左页边距#:右页边距
section.top_margin = Cm(1.27)
section.bottom_margin = Cm(1.27)
section.left_margin = Cm(1.27)
section.right_margin = Cm(1.27)
print('上页边距:下页边距:左页边距:右页边距:' ,section.top_margin , section.bottom_margin, section.left_margin,section.right_margin) #:上页边距#:下页边距#:左页边距#:右页边距
#修改纸张方向
# from docx.enum.section import WD_ORIENTATION
# WD_ORIENTATION.LANDSCAPE:纸张方向为横向。
# WD_ORIENTATION.PORTRAIT:纸张方向为纵向。
# section.orientation = WD_ORIENTATION.LANDSCAPE
#设置分栏
# from docx.oxml.ns import qn
# section._sectPr.xpath('./w:cols')[0].set(qn('w:num'), '2') #设置为2栏
#设置页眉页脚
# header = section.header # 获取第一个节的页眉
# print('页眉中默认段落数:', len(header.paragraphs))
# paragraph = header.paragraphs[0] # 获取页眉的第一个段落
# paragraph.add_run('这是第一节的页眉2') # 添加页面内容
# footer = section.footer # 获取第一个节的页脚
# paragraph = footer.paragraphs[0] # 获取页脚的第一个段落
# paragraph.add_run('这是第一节的页脚2') # 添加页脚内容

# 段落样式修改
# 新增加一段段落
# paragraph = document.add_paragraph('这是一个新的段落\n 这又是一个段落哦')
# 设置段落间距
# space_before,space_after 上下间距
# line_spacing,line_spacing_rule 行距
# paragraph_format=paragraph.paragraph_format
# paragraph_format.space_before=Pt(0) #上行间距
# paragraph_format.space_after=Pt(0) #下行间距
# paragraph_format.line_spacing=1.15 #行距
# from docx.enum.text import WD_LINE_SPACING
# ONE_POINT_FIVE,1.5倍行距
# AT_LEAST,最小行距
# DOUBLE,双倍行距
# EXACTLY,固定值
# MULTIPLE,多倍行距
# SINGL,单倍行距
# paragraph_format.line_spacing_rule = WD_LINE_SPACING.ONE_POINT_FIVE

#整体样式调整
from docx.oxml.ns import qn
document.styles['Normal'].font.name = u'宋体'
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
document.styles['Normal'].font.size = Pt(10.5)
document.styles['Normal'].font.color.rgb = RGBColor(0,80,0)

#标题样式调整
# 标题等级0-9这些数字,一级标题二级标题这样
Head = document.add_heading("",level=1)# 这里不填标题内容
run = Head.add_run("真正要填写的标题")
run.font.name=u'Cambria'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'Cambria')
run.font.color.rgb = RGBColor(0,0,0)
import docx
para_heading.alignment = docx.enum.text.WD_ALIGN_PARAGRAPH.CENTER #设置为居中

#段落字体样式
from docx.enum.style import WD_STYLE_TYPE
from docx.oxml.ns import qn
page = document.add_paragraph('这是一个段落')
run = page.add_run('这是一个段落')
run.font.name='微软雅黑' #字体名称
run.font.size=Pt(50) #字体大小
run.font.color.rgb=RGBColor(0,0,0) #字体颜色


from docx.enum.dml import MSO_THEME_COLOR_INDEX, MSO_COLOR_TYPE
# 内置颜色
# BACKGROUND_1、BACKGROUND_2、TEXT_1、TEXT_2、ACCENT_1、ACCENT_2、ACCENT_3、ACCENT_4、ACCENT_5和ACCENT_6
run.font.color.theme_color =MSO_THEME_COLOR_INDEX.ACCENT_1 # 设置字体主题颜色
run.font.highlight_color = MSO_THEME_COLOR_INDEX.DARK_1 # 设置高亮背景颜色
# 加粗
# run.bold = True
# 斜体
# run.font.italic = True
# 设置下划线
# run.font.underline = True
# 设置轮廓线
# run.font.outline = True
# 设置阴影
# run.font.shadow = True
# 删除线
# run.font.strike = True
# 双删除线
# run.font.double_strike = True
# 设置下标
# run.font.subscript = True
# 设置上标
# run.font.superscript = True

#结束保存
document.save('test.docx') # 保存word文档
# 字号‘八号’对应磅值5
# 字号‘七号’对应磅值5.5
# 字号‘小六’对应磅值6.5
# 字号‘六号’对应磅值7.5
# 字号‘小五’对应磅值9
# 字号‘五号’对应磅值10.5
# 字号‘小四’对应磅值12
# 字号‘四号’对应磅值14
# 字号‘小三’对应磅值15
# 字号‘三号’对应磅值16
# 字号‘小二’对应磅值18
# 字号‘二号’对应磅值22
# 字号‘小一’对应磅值24
# 字号‘一号’对应磅值26
# 字号‘小初’对应磅值36
# 字号‘初号’对应磅值42

# 读取docx
document = Document('file')
for i in document.paragraphs:
print(i.text)


posted @   记录——去繁就简  阅读(332)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示