Python3处理文档_word文档(二)
添加分页符
你想要下一个文本在一个单独的页面,即使你所在的一个不是满的。“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文档(二)的更多相关文章
- PoiDocxDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0),目前只能java生成】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个是<PoiDemo[Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)]>的扩展,上一篇是根 ...
- PoiDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 使用Poi实现android中根据模板文件生成Word文档的功能.这里的模板文件是doc文件.如果模板文件是docx文件的话,请阅读 ...
- .net core的Swagger接口文档使用教程(二):NSwag
上一篇介绍了Swashbuckle ,地址:.net core的Swagger接口文档使用教程(一):Swashbuckle 讲的东西还挺多,怎奈微软还推荐了一个NSwag,那就继续写吧! 但是和Sw ...
- 使用C#动态生成Word文档/Excel文档的程序测试通过后,部署到IIS服务器上,不能正常使用的问题解决方案
使用C#动态生成Word文档/Excel文档的程序功能调试.测试通过后,部署到服务器上,不能正常使用的问题解决方案: 原因: 可能asp.net程序或iis访问excel组件时权限不够(Ps:Syst ...
- .net 提取注释生成API文档 帮助文档
提取注释生成API文档 一.前言 在多人协作的项目中,除了良好的代码规范外,完整的API文档也相当重要.通过文档我们快速了解系统各模块的实际接口,及其使用场景.使用示例,一定程度上降低沟通成本,和 ...
- MongoDB 大数据技术之mongodb中在嵌套子文档的文档上面建立索引
一.给collection objectid赋自定义的值 MongoDB Enterprise > db.testid.insert({_id:{imsi:"4567890123&qu ...
- 把 MWeb Lite 的文档库文档和数据搬到 MWeb 正式版中
MWeb Lite 版的文档库中的文档要搬到 MWeb 正式版中,如果 Lite 版的文档中没有图片或者只有少量图片,可以用导入导出为 Markdown 的方法. 否则的话请用以下方式(注意下面这个方 ...
- 关于HTML文档的文档模式
HTML文档的文档模式包括混杂模式和标准模式,这两种模式主要影响CSS内容的呈现,但在某些情况下也会影响到JavaScript的解释执行. 如果在文档开始处没有发现文档类型声明,则所有浏览器都会默认开 ...
- 返回当前文档的文档的url
HTML DOM referrer 属性 HTML DOM Document 对象 定义和用法 referrer 属性可返回载入当前文档的文档的 URL. 语法 document.referrer 说 ...
- 创建MFC应用程序的类型:单文档+多文档+基于对话框
单文档支持文档视图架构.数据的保存--(读取--改动)文档类功能--显示(视图类功能),比較方便. 基于对话框,主窗体是对话框类型.能够方便的使用控件,所见即所得的编程,比較方便. 单文档类似&quo ...
随机推荐
- 百思不得其解,DeepSeek怎么突然就比肩GPT了?
>关注公众号**回复1**>>获取**一线.总监.高管<管理秘籍>** 之前大家都认为中美在AI领域的差距很大,谁曾想春节期间**DeepSeek横空出世**,直接给Op ...
- NOIP2023 游记及反思
游记 进场前的同学们 柠檬熟了.Nitaycke.Prms_Prmt.b1t zhicheng,meatherm 开题,很快啊, 第一题不就桶排,今年签到没有去年恶心啊(9:00) 第二题,观察到每个 ...
- Luogu P9180 [COCI2022-2023#5] Slastičarnica 题解 [ 蓝 ] [ 区间 dp ] [ dp 状态优化 ] [ 前缀和优化 ]
Slastičarnica:非常好的区间 dp 题. 暴力 不难设计出暴力状态:\(dp_{q,i,j}\) 表示进行到第 \(q\) 次操作,剩下区间 \([i,j]\) 是否可行. 直到全部状态都 ...
- Java轻量级代码工程
一.背景简介 最近2年,很多公司接项目开始不挑剔了,只要核算下来有收益不会亏,就会库库的做各种没头没脑的项目,都是抱着多撑一天是一天的躺平心态. 如果项目和业务稳定,自然也有动力卷架构卷设计. 然而2 ...
- Linux嵌入式设备怎么确定网络端口的速率
Linux嵌入式设备怎么确定网络端口的速率 突发奇想,就是Linux下面我能不能查询到端口的速率,以此来判断要不要频繁的发送网络数据包呢? 或者更换包利用率更高的协议呢. 于是抱着这样的想法,我开始学 ...
- Deepin 设置开机执行某sh文件
背景 deepin系统上部署了Geoserver,但是每次开机后都得手动过去起,麻烦,故想着找个办法解决下 过程 在/etc/systemd/system目录下新建一个 geoserver.servi ...
- openlayers 在地图上绘制矩形框,非鼠标框选
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title d ...
- Go实现动态开点线段树
1.线段树介绍 线段树是一种用于高效处理区间查询和区间更新的数据结构,当我们需要解决一个频繁更新区间值的问题的时候,就可以采用线段树的结构进行解决.线段树的核心思想是将区间分为多个子区间进行管理,越往 ...
- windows在Apple Developer创建打包证书的简单教程
在uniapp上做ios开发,其开发证书必须在Apple Developer(苹果开发者中心)上使用自己个人或自己公司的开发者账号,创建打包的证书,然后上架的时候使用同一个账号上架Apple Deve ...
- Mavros & Mavlink
博客地址:https://www.cnblogs.com/zylyehuo/ 参考 https://www.bilibili.com/video/BV1x841167uG?spm_id_from=33 ...