添加分页符
你想要下一个文本在一个单独的页面,即使你所在的一个不是满的。“hard”分页符可以做到这一点:

document.add_page_break()
    doc.add_heading('扫描报告', 0)
doc.add_page_break()

设置标题格式

from docx import Document
from docx.shared import RGBColor #设置字体颜色
from docx.shared import Pt #设置字体大小
from docx.oxml.ns import qn##qn#设置中文字体
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.shared import Cm doc=Document()
Head = doc.add_heading("", level=0) # 这里不填标题内容
run = Head.add_run('道德经')
run.font.name = 'Times New Roman'
run.font.name = u'宋体'
run.font.size = Pt(22)
run.font.color.rgb = RGBColor(255,255, 0)
run.bold = True doc.save('1.docx')

接下来定义一个标题的样式

def head_style(input_text,level,size):
head=doc.add_heading("",level=level)
run=head.add_run(input_text)
run.font.name = 'Times New Roman'
run.font.size = Pt(size)
run.font.color.rgb = RGBColor(255, 255, 0)
run.bold = True

运行一下整体的代码:

from docx import Document
from docx.shared import RGBColor #设置字体颜色
from docx.shared import Pt #设置字体大小
from docx.oxml.ns import qn##qn#设置中文字体
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.shared import Cm doc=Document()
Head = doc.add_heading("", level=0) # 这里不填标题内容
run = Head.add_run('道德经')
run.font.name = 'Times New Roman'
run.font.name = u'宋体'
run.font.size = Pt(22)
run.font.color.rgb = RGBColor(255,255, 0)
run.bold = True def head_style(input_text,level,size):
head=doc.add_heading("",level=level)
run=head.add_run(input_text)
run.font.name = 'Times New Roman'
run.font.size = Pt(size)
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
run.font.color.rgb = RGBColor(255, 255, 0)
run.bold = True input_text1='标题一'
head_style(input_text1,1,22) input_text2='标题二'
head_style(input_text2,1,22) input_text3='标题三'
head_style(input_text3,1,22) doc.save('1.docx')


设置缩进和对齐
这里还用了昨天的段落样式

paragraph_format_p4 = p4_1.paragraph_format  # 获取段落的格式属性
# paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 水平对齐设为居中
paragraph_format_p4.first_line_indent = Cm(0.74) # 首行缩进0.74厘米,即2个字符

from docx import Document
from docx.shared import RGBColor #设置字体颜色
from docx.shared import Pt #设置字体大小
from docx.oxml.ns import qn##qn#设置中文字体
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.shared import Cm doc=Document()
Head = doc.add_heading("", level=0) # 这里不填标题内容
run = Head.add_run('道德经')
run.font.name = 'Times New Roman'
run.font.name = u'宋体'
run.font.size = Pt(22)
run.font.color.rgb = RGBColor(255,255, 0)
run.bold = True def create_style(document, style_name, style_type, font_size=-1, font_color=None, font_name=None, align=None):
"""
创建一个样式
:param align:
:param document:
:param style_name: 样式名称
:param style_type: 样式类型,1:段落样式, 2:字符样式, 3:表格样式
:param font_name:
:param font_color:
:param font_size:
:return:
"""
if font_color is None:
font_color = [] # 注意:必须要判断样式是否存在,否则重新添加会报错
style_names = [style.name for style in document.styles]
if style_name in style_names:
# print('样式已经存在,不需要重新添加!')
return font_style = document.styles.add_style(style_name, style_type) # 字体大小
if font_size != -1:
font_style.font.size = Pt(font_size) # 字体颜色
font_style.font.color.rgb = RGBColor(0,0,0) # 对齐方式
# 注意:段落、表格才有对齐方式
if style_type != 2 and align:
font_style.paragraph_format.alignment = align
# font_style.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
# font_style.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT
# font_style.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT # 字体名称
if font_name:
font_style.font.name = font_name
font_style.font.name = 'Times New Roman'
# 中文字体名称
font_style._element.rPr.rFonts.set(qn('w:eastAsia'), font_name)
##这里实际上是font_style._element
##font_style._element 再.rPr.rFonts.set return font_style def head_style(input_text,level,size):
head=doc.add_heading("",level=level)
run=head.add_run(input_text)
run.font.name = 'Times New Roman'
run.font.size = Pt(size)
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
run.font.color.rgb = RGBColor(255, 0, 0)
run.bold = True input_text1='标题一'
head_style(input_text1,1,22) p4 = create_style(document=doc, style_name="style2", style_type=1, font_size=12, font_name='宋体')
p4_1 = doc.add_paragraph('这是首行缩进两个字符。', p4)
paragraph_format_p4 = p4_1.paragraph_format # 获取段落的格式属性
# paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 水平对齐设为居中
paragraph_format_p4.first_line_indent = Cm(0.74) # 首行缩进0.74厘米,即2个字符 p4 = create_style(document=doc, style_name="style3", style_type=1, font_size=12, font_name='宋体')
p4_1 = doc.add_paragraph('这是水平居中。', p4)
paragraph_format_p4 = p4_1.paragraph_format # 获取段落的格式属性
paragraph_format_p4.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 水平对齐设为居中
#paragraph_format_p4.first_line_indent = Cm(0.74) # 首行缩进0.74厘米,即2个字符 input_text2='标题二'
head_style(input_text2,1,22) input_text3='标题三'
head_style(input_text3,1,22) doc.save('1.docx')

运行结果:

插入图片:


doc.add_picture('god_mellon.jpg')
doc.add_picture('god_mellon.jpg', width=Cm(4.0)) # 宽度为4cm

运行结果:

明天再搞

我公众号大家可以关注支持一哈
主要记录一些网络安全和Python的学习。

Python3处理文档_word文档(二)的更多相关文章

  1. PoiDocxDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0),目前只能java生成】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个是<PoiDemo[Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)]>的扩展,上一篇是根 ...

  2. PoiDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 使用Poi实现android中根据模板文件生成Word文档的功能.这里的模板文件是doc文件.如果模板文件是docx文件的话,请阅读 ...

  3. .net core的Swagger接口文档使用教程(二):NSwag

    上一篇介绍了Swashbuckle ,地址:.net core的Swagger接口文档使用教程(一):Swashbuckle 讲的东西还挺多,怎奈微软还推荐了一个NSwag,那就继续写吧! 但是和Sw ...

  4. 使用C#动态生成Word文档/Excel文档的程序测试通过后,部署到IIS服务器上,不能正常使用的问题解决方案

    使用C#动态生成Word文档/Excel文档的程序功能调试.测试通过后,部署到服务器上,不能正常使用的问题解决方案: 原因: 可能asp.net程序或iis访问excel组件时权限不够(Ps:Syst ...

  5. .net 提取注释生成API文档 帮助文档

    提取注释生成API文档   一.前言 在多人协作的项目中,除了良好的代码规范外,完整的API文档也相当重要.通过文档我们快速了解系统各模块的实际接口,及其使用场景.使用示例,一定程度上降低沟通成本,和 ...

  6. MongoDB 大数据技术之mongodb中在嵌套子文档的文档上面建立索引

    一.给collection objectid赋自定义的值 MongoDB Enterprise > db.testid.insert({_id:{imsi:"4567890123&qu ...

  7. 把 MWeb Lite 的文档库文档和数据搬到 MWeb 正式版中

    MWeb Lite 版的文档库中的文档要搬到 MWeb 正式版中,如果 Lite 版的文档中没有图片或者只有少量图片,可以用导入导出为 Markdown 的方法. 否则的话请用以下方式(注意下面这个方 ...

  8. 关于HTML文档的文档模式

    HTML文档的文档模式包括混杂模式和标准模式,这两种模式主要影响CSS内容的呈现,但在某些情况下也会影响到JavaScript的解释执行. 如果在文档开始处没有发现文档类型声明,则所有浏览器都会默认开 ...

  9. 返回当前文档的文档的url

    HTML DOM referrer 属性 HTML DOM Document 对象 定义和用法 referrer 属性可返回载入当前文档的文档的 URL. 语法 document.referrer 说 ...

  10. 创建MFC应用程序的类型:单文档+多文档+基于对话框

    单文档支持文档视图架构.数据的保存--(读取--改动)文档类功能--显示(视图类功能),比較方便. 基于对话框,主窗体是对话框类型.能够方便的使用控件,所见即所得的编程,比較方便. 单文档类似&quo ...

随机推荐

  1. 百思不得其解,DeepSeek怎么突然就比肩GPT了?

    >关注公众号**回复1**>>获取**一线.总监.高管<管理秘籍>** 之前大家都认为中美在AI领域的差距很大,谁曾想春节期间**DeepSeek横空出世**,直接给Op ...

  2. NOIP2023 游记及反思

    游记 进场前的同学们 柠檬熟了.Nitaycke.Prms_Prmt.b1t zhicheng,meatherm 开题,很快啊, 第一题不就桶排,今年签到没有去年恶心啊(9:00) 第二题,观察到每个 ...

  3. Luogu P9180 [COCI2022-2023#5] Slastičarnica 题解 [ 蓝 ] [ 区间 dp ] [ dp 状态优化 ] [ 前缀和优化 ]

    Slastičarnica:非常好的区间 dp 题. 暴力 不难设计出暴力状态:\(dp_{q,i,j}\) 表示进行到第 \(q\) 次操作,剩下区间 \([i,j]\) 是否可行. 直到全部状态都 ...

  4. Java轻量级代码工程

    一.背景简介 最近2年,很多公司接项目开始不挑剔了,只要核算下来有收益不会亏,就会库库的做各种没头没脑的项目,都是抱着多撑一天是一天的躺平心态. 如果项目和业务稳定,自然也有动力卷架构卷设计. 然而2 ...

  5. Linux嵌入式设备怎么确定网络端口的速率

    Linux嵌入式设备怎么确定网络端口的速率 突发奇想,就是Linux下面我能不能查询到端口的速率,以此来判断要不要频繁的发送网络数据包呢? 或者更换包利用率更高的协议呢. 于是抱着这样的想法,我开始学 ...

  6. Deepin 设置开机执行某sh文件

    背景 deepin系统上部署了Geoserver,但是每次开机后都得手动过去起,麻烦,故想着找个办法解决下 过程 在/etc/systemd/system目录下新建一个 geoserver.servi ...

  7. openlayers 在地图上绘制矩形框,非鼠标框选

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title d ...

  8. Go实现动态开点线段树

    1.线段树介绍 线段树是一种用于高效处理区间查询和区间更新的数据结构,当我们需要解决一个频繁更新区间值的问题的时候,就可以采用线段树的结构进行解决.线段树的核心思想是将区间分为多个子区间进行管理,越往 ...

  9. windows在Apple Developer创建打包证书的简单教程

    在uniapp上做ios开发,其开发证书必须在Apple Developer(苹果开发者中心)上使用自己个人或自己公司的开发者账号,创建打包的证书,然后上架的时候使用同一个账号上架Apple Deve ...

  10. Mavros & Mavlink

    博客地址:https://www.cnblogs.com/zylyehuo/ 参考 https://www.bilibili.com/video/BV1x841167uG?spm_id_from=33 ...