添加分页符
你想要下一个文本在一个单独的页面,即使你所在的一个不是满的。“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. Prometheus修改默认数据存储时间

    Prometheus修改默认数据存储时间 Prometheus 的数据存储时间是通过命令行参数 --storage.tsdb.retention.time 来设置的.这个参数指定了 Prometheu ...

  2. 同步工具-SeaTunnel使用

    一.介绍 SeaTunnel 是一个非常好用.超高性能的分布式数据集成平台,架构于 Apache Spark 和 Apache Flink 之上,实现了海量数据的实时同步与转换.每天可以稳定高效地同步 ...

  3. 在 GitLab CI/CD 中使用内置的容器镜像库

    配置 Docker-in-Docker Docker-in-Docker (dind) means: 你应该注册一个 Docker executor 或 Kubernetes executor 执行器 ...

  4. [BZOJ3037] 创世纪 题解

    基环内向树上 dp,不过在这里提供给一种非典型做法. 考虑将环上的每一条边都断开,这样就会形成多棵树,先在这些树上进行树形 \(dp\).设 \(dp_{i,0/1}\) 表示不选/选 \(i\) 时 ...

  5. FreeModbus源码详解(转)

    学习转载原文链接: https://blog.csdn.net/golf_research/article/details/52240739 https://blog.csdn.net/u014748 ...

  6. Scala查看源码

    package com.wyh.day01 /** * 1.代码格式化的快捷键 ctrl+alt+L\ * 2.scala查看源代码的快捷键 ctrl+b */ object ScalaLookSou ...

  7. 执行shell脚本报错:Syntax error: word unexpected (expecting "in")

    检查语法无误后,考虑是脚本文件换行符的问题. vs创建的文件默认以CRLF(0D0A)换行. 然而对于换行,windows用CRLF(0D0A)表示,linux用LF(0A)表示. 切换脚本文件换行符 ...

  8. 【P6】Verilog搭建流水线MIPS-C3-CPU(50条指令)

    我开P6是过P5了吗?笑死,P5又挂了,还是经典的blezalc指令,天知道原来我是不会写的,前近一个月每次branch类指令全都加错,而且是错得离谱.但都把重心放在课下debug上了,自以为不就是b ...

  9. Suspense和vue-async-manager

    Suspense Suspense是 Vue3.x 中新增的特性, 那它有什么用呢?别急,我们通过 Vue2.x 中的一些场景来认识它的作用. Vue2.x 中应该经常遇到这样的场景: <tem ...

  10. anaconda创建新环境

    博客地址:https://www.cnblogs.com/zylyehuo/ anaconda创建新环境 conda create -n 环境自定义的名称 python=版本号 anaconda指定路 ...