添加分页符
你想要下一个文本在一个单独的页面,即使你所在的一个不是满的。“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. 使用必读-使用Iceberg数据湖需要注意的点

    一.开发注意事项 1.Iceberg选择合适的表版本 简述:Iceberg目前有两个表版本(V1和V2),根据数据选择合适的表版本. V1表只支持增量数据插入,适合做纯增量写入场景,如埋点数据. V2 ...

  2. 「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!

    > 由于网页编辑器简陋,无法实现原文档的精心排版,如需原文档可联系... 序 「ximagine」在本篇文章中将介绍「荒岛」目前所使用的显示器测试流程及标准,我们主要使用Calman.Displ ...

  3. .NET中 泛型 + 依赖注入 的实现与应用

    在.NET中,注入泛型依赖项是一个常见的场景. 在依赖注入(DI)中使用泛型可以使得应用程序更加模块化.易于测试和扩展. 在ASP.NET Core中注册泛型服务 假设我们有一个需要注入的泛型接口 I ...

  4. [WC2018] 通道 题解

    三棵树就很毒瘤了,我们一棵一棵看. 关于第一棵树的路径,经典解法就是点分治和边分治,考虑哪种更加简单. 设 \(dis1/2/3(x)\) 表示 \(x\) 在第 \(1/2/3\) 棵树中的深度(第 ...

  5. 工业机器人维修保养|ABB机器人IRB 6700维修保养技巧

    通过机器人维修保养服务定制合理的维修保养工作,可以确保ABB机器人IRB 6700的持续稳定运行,延长其使用寿命,为企业的生产提供有力保障. 一.ABB机器人IRB 6700日常检查与维护 外观检查: ...

  6. 二叉树层次遍历下到上,左到右python

    # 利用队列进行层次遍历就行class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None ...

  7. 记一次Microsoft.Toolkit.Mvvm(MVVM Toolkit)的兼容性问题

    今天在目标框架为framework4.6.1的wpf项目中使用Microsoft.Toolkit.Mvvm7.1.1出现了一个比较怪异的编译时错误,前提是打开了 工具>选项>环境>预 ...

  8. mysql : 第5章 数据库的安全性

    -- 创建用户CREATE USER utest@localhost IDENTIFIED BY 'temp';-- 查看所有用户SELECT * FROM mysql.user;-- 查看表级权限S ...

  9. ocr识别过程中报错 tesseract is not installed

    这个问题无论在初始编译时或者在后来坏境变更调试时都会遇到的问题. 解决:问题原因是源码中的默认路径位置与文件位置不同,需要更改一下

  10. 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构

    概述 先看下面的图片,我们去旅游选择出行模式有很多种,可以骑自行车.可以坐汽车.可以坐火车.可以坐飞机. 作为一个程序猿,开发需要选择一款开发工具,当然可以进行代码开发的工具有很多,可以选择Idea进 ...