公布一段2021年写的自动写作小程序源码
代码使用python-docx库用于生成公文格式的小程序,包括页边距、字体、段落设置等,后续可以结合数据库开发、web开发等,读取所需要的数据,自动成生成阶段性总结。
首先安装docx库
pip install python-docx
代码:
#导入相关库
from docx import Document
#页边距的设置
from docx.shared import Cm
#设置居中效果
from docx.enum.text import WD_ALIGN_PARAGRAPH
#字体的设置
from docx.oxml.ns import qn
#字号的设置
from docx.shared import Pt,RGBColor,Inches
#时间的显示
import time
from datetime import datetime
import pytz
#实例化一个Word
Doc = Document()
#设置页面边距(上3.8,下3.5,左2.7,右2.6)
Doc.sections[0].top_margin = Cm(3.7)
Doc.sections[0].bottom_margin = Cm(3.5)
Doc.sections[0].left_margin = Cm(2.7)
Doc.sections[0].right_margin = Cm(2.6)
#标题的设置
#设置标题,居中对齐,方正小标宋简体。
p1=Doc.add_paragraph()
run1=p1.add_run("工作总结")
#标题字号的设置,22Pt为二号字体,16位三号字体
run1.font.size=Pt(22)
#设置字体
Doc.styles['Normal'].font.name="方正小标宋简体"
Doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),"方正小标宋简体")
#设置居中
p1.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.CENTER
#设置标题行间距
p1_format=p1.paragraph_format
p1_format.line_spacing=Pt(35)
# #标题与正文之间加一个空行
# P_huanhang=Doc.add_paragraph(text='\r', style=None) # 换行
# p_huanhang_format=P_huanhang.paragraph_format
# p_huanhang_format.line_spacing=Pt(21)
#设置每一段的格式
p2 = Doc.add_paragraph()
run3=p2.add_run("这是这一段话的第一句,")
run4=p2.add_run("这是这一段的第二句话。")
#设置字体
Doc.styles['Normal'].font.name="仿宋_GB2312"
Doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),"仿宋_GB2312")
#设置字号
p2.style.font.size = Pt(16)
#设置行距28
p2_format=p2.paragraph_format
p2_format.line_spacing=Pt(28)
#设置首行缩进2个字符
p2_format.first_line_indent=p2.style.font.size * 2
#落款,空两行,时间右对齐,名字右对齐同时向右缩进3个字符
#第一个空行,行距28
P_huanhang2=Doc.add_paragraph(text='\r', style=None) # 换行
p_huanhang2_format=P_huanhang2.paragraph_format
p_huanhang2_format.line_spacing=Pt(28)
# #第二个空行,行距28
# P_huanhang3=Doc.add_paragraph(text='\r', style=None) # 换行
# p_huanhang3_format=P_huanhang3.paragraph_format
# p_huanhang3_format.line_spacing=Pt(28)
#落款
p_luoluan=Doc.add_paragraph()
run_luokuan=p_luoluan.add_run("落款")
#标题字号的设置,22Pt为二号字体,16位三号字体
run_luokuan.font.size=Pt(16)
#设置字体
Doc.styles['Normal'].font.name="仿宋_GB2312"
Doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),"仿宋_GB2312")
#设置居中
p_luoluan.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.RIGHT
#设置落款行间距
p_luoluan_format=p_luoluan.paragraph_format
p_luoluan_format.line_spacing=Pt(28)
#设置向右缩进三个字符
p_luoluan_format.right_indent=p_luoluan.style.font.size * 3
p_luoluan_format.space_after = Pt(0)
p_luoluan_format.left_indent = Pt(0)
p_luoluan_format.space_before = Pt(0)
# p_luoluan_format.right_indent = Pt(0)
#时间
tz = pytz.timezone('Asia/Shanghai') #东八区
t = datetime.fromtimestamp(int(time.time()),
pytz.timezone('Asia/Shanghai')).strftime('%Y年%m月%d日')
#添加一个新的段落,之后将时间写入到新的段落中,设置右对齐,字符间距28,字体仿宋,三号字体
#时间为当前时间
p_time=Doc.add_paragraph()
run_time=p_time.add_run(t)
#标题字号的设置,22Pt为二号字体,16位三号字体
run_luokuan.font.size=Pt(16)
#设置字体
Doc.styles['Normal'].font.name="仿宋_GB2312"
Doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),"仿宋_GB2312")
#设置向右对齐
p_time.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.RIGHT
#设置落款行间距
p_time_format=p_time.paragraph_format
p_time_format.line_spacing=Pt(28)
p_time_format.space_after = Pt(0)
p_time_format.left_indent = Pt(0)
p_time_format.space_before = Pt(0)
p_time_format.right_indent = Pt(0)
#保存此文档
Doc.save("正式文档_1.docx")
运行此程序可在当前目录下生成名字为正式文档_1.docx的word文档