Python-docx库详解:轻松实现Word文档主动化天生与图片尺寸控制

[复制链接]
发表于 2025-10-12 06:35:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Python-docx库详解:轻松实现Word文档主动化天生与图片尺寸控制

在当代庖公主动化的海潮中,文档处置惩罚是一项不可或缺的使命。Python作为一种强盛的编程语言,提供了丰富的库来简化这些使命。此中,python-docx库是处置惩罚Word文档的有力工具,它答应开发者以编程方式创建、修改和分析Word文档。本文将具体先容python-docx库的使用方法,特殊是怎样使用Cm模块控制图片尺寸。
1. python-docx库简介

python-docx是一个强盛的Python库,答应开发者创建和修改Microsoft Word (.docx)文件。该库提供了丰富的API,使开发者可以大概控制文档的各个方面,包罗段落、表格、图片插入和格式化等。
2. 环境准备

在开始之前,开发者必要安装python-docx库。可以使用pip下令轻松完成安装:
  1. pip install python-docx
复制代码
3. 根本使用

3.1 创建新文档

使用python-docx创建新文档非常简朴:
  1. from docx import Document
  2. doc = Document()
  3. doc.save("新文档.docx")
复制代码
3.2 添加段落和文本

可以轻松向文档中添加段落和文本:
  1. paragraph = doc.add_paragraph()
  2. run = paragraph.add_run("这是一段文本内容")
复制代码
4. 图片处置惩罚与Cm模块

python-docx库中的Cm模块是图片尺寸控制的关键工具。它答应开发者以厘米为单元指定图片尺寸,使文档更加专业和同一。
4.1 Cm模块详解

Cm模块位于docx.shared包中,用于设定图片尺寸巨细。一个紧张的特性是:只需给定宽度或高度,另一个维度会主动盘算以保持图片原始比例。
  1. from docx.shared import Cm
  2. # 只指定宽度为16厘米,高度会自动计算
  3. doc.add_picture("image.png", width=Cm(16))
  4. # 只指定高度为10厘米,宽度会自动计算
  5. doc.add_picture("image.png", height=Cm(10))
复制代码
5. 实际案例分析

以下是一个实际的案例,展示怎样使用python-docx创建包罗多张图片的文档:
  1. from docx import Document
  2. from docx.shared import Cm
  3. import os
  4. dir_path_ = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
  5. def _2word():
  6.     path = "202.docx"
  7.     pic_base_path = f"{dir_path_}\结果"
  8.     doc = Document()
  9.    
  10.     # 添加第一个段落
  11.     p1 = doc.add_paragraph()
  12.     p1.add_run("命名格式:\n几次完成(一次/多次)")
  13.    
  14.     # 遍历指定目录中的PNG文件并添加到文档
  15.     for file in os.listdir(pic_base_path):
  16.         if file.endswith("png") and "False" in file:
  17.             paragraph3 = doc.add_paragraph()
  18.             run = paragraph3.add_run(str(file[:-6] + ".png"))
  19.             # 使用Cm模块控制图片宽度为16厘米
  20.             doc.add_picture(f"{pic_base_path}/{file}", width=Cm(16))
  21.    
  22.     # 添加流程图部分
  23.     p2 = doc.add_paragraph()
  24.     p2.add_run("\n流程图\n")
  25.     doc.add_picture(f"{dir_path_}\method5.png", width=Cm(16))
  26.    
  27.     # 保存文档
  28.     doc.save(path)
  29. if __name__ == "__main__":
  30.     _2word()
复制代码
在这个例子中,代码实现了以下功能:

  • 创建一个新的Word文档
  • 添加标题段落分析定名格式
  • 遍历指定目次下符合条件的PNG图片,并将它们添加到文档中
  • 每张图片都设置为16厘米宽,高度主动盘算
  • 添加流程图部门标题
  • 添加流程图并同样设置宽度为16厘米
  • 生存文档到指定路径
6. 高级功能

除了根本的文档和图片处置惩罚,python-docx还提供了许多高级功能:
6.1 文本格式化
  1. from docx.shared import Pt, RGBColor
  2. from docx.enum.text import WD_ALIGN_PARAGRAPH
  3. paragraph = doc.add_paragraph()
  4. run = paragraph.add_run("格式化文本")
  5. run.font.size = Pt(16)  # 设置字体大小为16磅
  6. run.font.bold = True    # 设置为粗体
  7. run.font.color.rgb = RGBColor(255, 0, 0)  # 设置文字颜色为红色
  8. paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER  # 居中对齐
复制代码
6.2 表格使用
  1. table = doc.add_table(rows=3, cols=3)
  2. cell = table.cell(0, 0)
  3. cell.text = "表格示例"
复制代码
6.3 页面设置
  1. from docx.shared import Mm
  2. section = doc.sections[0]
  3. section.page_height = Mm(297)  # A4纸高度
  4. section.page_width = Mm(210)   # A4纸宽度
复制代码
7. 留意事项

在使用python-docx库时,开发者应留意以下几点:

  • 图片路径题目:确保图片路径精确,尤其是在跨平台应用时
  • 文档生存:记得在全部使用完成后生存文档
  • 单元换算:除了Cm,还可以使用Inches、Pt等单元
  • 大文件处置惩罚:处置惩罚大量图片时,留意内存使用和性能优化
8. 总结

python-docx库是一个功能强盛的工具,可以资助开发者轻松创建和修改Word文档。特殊是Cm模块的使用,使得控制图片尺寸变得简朴而准确。通过本文先容的方法,开发者可以轻松实现文档主动化天生,进步工作服从。
无论是天生陈诉、创建模板文档,还是批量处置惩罚Word文件,python-docx都能提供强盛的支持。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表