# -*- coding: utf-8 -*-
# https://blog.csdn.net/weixin_45523154/article/details/101715076
# https://www.cnblogs.com/findeasy/archive/2013/01/02/4053123.html
# https://www.cnblogs.com/xied/p/12619571.html
from docx import Document
from docx import section
from docx.enum.text import WD_ALIGN_PARAGRAPH,WD_LINE_SPACING
from docx.shared import Pt
from docx.shared import RGBColor
from docx.shared import Inches
from docx.oxml.ns import qn
from docx.text import run
# https://www.cnblogs.com/xconline/p/11919735.html #设置页边距
# https://blog.csdn.net/wudechun/article/details/101796156
# Doc.add_heading("Python是什么东西???")
# Doc.add_paragraph("Python是一种面向对象的编程语言~~~")
# Doc.add_paragraph("Python ")
# Doc.add_paragraph("Python 对word进行操作")
# Doc.save("Python_word.docx")
def addRun(paragraph,str):
run = paragraph.add_run(str)
run.font.size = Pt(10)
run.font.name = u'微软雅黑'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑') # 注意,这两部都不可或缺
run.font.bold = True
def addParaGraph(Args):#添加一个段落,并设置段落的格式
str = "\n".join(Args)
p = Doc.add_paragraph()#添加一个段落
p.alignment = 0 #左对齐
paragraph_format = p.paragraph_format
paragraph_format.space_before = Pt(0) # 上行间距
paragraph_format.space_after = Pt(0) # 下行间距
paragraph_format.line_spacing = 1 #这三行都必不可少
run = p.add_run(str)
run.font.size = Pt(10)
run.font.name = u'微软雅黑'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑') # 注意,这两部都不可或缺
run.font.bold = True
def addParaGraph2(Args,size):#添加一个段落,并设置段落的格式
str = "\n".join(Args)
p = Doc.add_paragraph()#添加一个段落
p.alignment = 0 #左对齐
paragraph_format = p.paragraph_format
paragraph_format.space_before = Pt(0) # 上行间距
paragraph_format.space_after = Pt(0) # 下行间距
paragraph_format.line_spacing = 1 #这三行都必不可少
run = p.add_run(str)
run.font.size = Pt(size)
run.font.name = u'微软雅黑'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑') # 注意,这两部都不可或缺
run.font.bold = True
#实例化一个word文档
Doc = Document()
# Doc.add_section()
sections = Doc.sections
Sec = sections[0]
Sec.left_margin = Inches(0.08) #页边距,左
Sec.right_margin = Inches(0.08) #页边距,右
Sec.bottom_margin = Inches(0.04) #页边距,下
Sec.top_margin = Inches(0.04) #页边距,上
Sec.page_height = Inches(1.182) #高
Sec.page_width = Inches(2.05) #宽
p = Doc.add_paragraph()
p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
run=p.add_run('报告主要结果页\n病案本存档使用')
run.font.size = Pt(17)
run.font.name = u'微软雅黑'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑') #注意,这两部都不可或缺
run.font.bold = True
Doc.add_page_break() #添加分页符
affi = ['报告主要结果页','病案本存档使用']
info1 = ['检测项目:OseqTM-T肺癌个体化诊疗基因检测(11基因)','申请医生:蔡彦','报告日期:2019/11/20']
info2 = ['科室:大院胃肠外科','姓名:郑钦','卡号:0382948','电话:18030263773']
addParaGraph2(affi,17)
Doc.add_page_break() #添加分页符
addParaGraph(info1)
addParaGraph(info2)
Doc.save("设置字体.docx")
'''
p = Doc.add_paragraph()
#调整行距: https://jingyan.baidu.com/article/f3e34a126c908eb4eb6535c4.html
# https://blog.csdn.net/rufengzizai521/article/details/89372113
# https://www.cnblogs.com/shunguo/p/11399308.html #换行
paragraph_format=p.paragraph_format
paragraph_format.space_before=Pt(5) #上行间距
paragraph_format.space_after=Pt(0) #下行间距
# paragraph_format.line_spacing=Pt(18) #行距
p.alignment = 0 #http://www.chinaoc.com.cn/p/1196559.html 对齐方式
run=p.add_run('检测项目:OseqTM-T肺癌个体化诊疗基因检测(11基因)\n申请医生:XXX\n报告日期:2019/11/20')
# addRun(p,'检测项目:OseqTM-T肺癌个体化诊疗基因检测(11基因)'); run.add_break(run.WD_BREAK_TYPE.LINE)
# addRun(p,'申请医生:蔡彦'); run.add_break()
# addRun(p,'报告日期:2019/11/20'); run.add_break()
run.font.size = Pt(10)
run.font.name = u'微软雅黑'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑') #注意,这两部都不可或缺
run.font.bold = True
# Doc.add_page_break() #添加换页符
# Doc.add_break() #换行符
# Doc.add_break()
# # 添加标题
# head = Doc.add_heading(level=1) #添加标题
# run_head = head.add_run('这是标题')
# run_head.font.size = Pt(24)
# run_head.font.name = u'宋体' #这一行必须要有
# run_head._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') #这个才是真正的设置字体
# run_head.font.color.rgb = RGBColor(0,0,255)
# run_head.font.bold = False
#
# #添加段落
# p = Doc.add_paragraph()
# run=p.add_run('检测项目:Oseq™-T肿瘤个体化诊疗基因检测')
# run.font.size = Pt(11)
# run.font.name = u'微软雅黑'
# run._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')
# run.font.bold = True
#
# Doc.add_page_break() #添加分页符
'''
# p = Doc.add_paragragh()
# run=p.add_run('这段文字是宋体,')
# Doc.add_paragraph("检测项目:Oseq™-T肿瘤个体化诊疗基因检测")
# Doc.add_heading("这是一级标题",level=1)
# Doc.add_heading("这是二级标题",level=2)
# Doc.add_heading("这是三级标题",level=3)
# Doc.add_heading("这是四级标题",level=4)
# Doc.save("标题.docx")
#
#
# Doc = Document()
# Doc.add_heading("这是一个一级标题",level=1)
# Doc.add_paragraph("这是一个副标题","Subtitle")
# Doc.save("副标题.docx")
#
# from docx.enum.style import WD_STYLE_TYPE
# for i in Doc.styles:
# if i.type == WD_STYLE_TYPE.CHARACTER:
# print(WD_STYLE_TYPE.CHARACTER)