文档生成时怎么把图片加进去
写报告、做说明文档,光靠文字有时候说不清。比如你给同事写个操作指南,光用字描述“点击右上角按钮”,不如直接放张图来得清楚。这时候就得在文档里插图片。但很多人卡在第一步:怎么把图片正确插入生成的文档里?
其实常见的文档生成方式,像用 Python 的 python-docx 生成 Word,或者用 Pandoc 转 Markdown 到 PDF,都有对应的图片插入方法。
用 python-docx 插入图片到 Word
如果你是用 Python 自动化生成文档,python-docx 是个常用库。安装好之后,插入图片非常简单:
from docx import Document<br>from docx.shared import Inches<br><br>doc = Document()<br>doc.add_paragraph('这是一个带图片的段落')<br>doc.add_picture('chart.png', width=Inches(4))<br>doc.save('output.docx')这里的 add_picture() 方法会把本地图片插入文档,width 控制宽度。图片必须是本地路径或已保存的文件,不支持网络链接直接加载。
Markdown 中插入图片再转成文档
很多人习惯先写 Markdown,再用工具转成 PDF 或 Word。这时候插入图片用的是标准 Markdown 语法:
只要图片路径对,转的时候就不会丢。比如用 Pandoc 命令:pandoc report.md -o report.docx,图片也会一起嵌入。注意:如果图片显示不出来,大概率是路径写错了,建议用相对路径,并把图片放在同级文件夹下。
模板引擎结合图片占位符
实际工作中,经常要批量生成报告。比如每个月导出一次数据图表,自动插入到固定格式的文档里。这时候可以用 Jinja2 模板 + python-docx 配合,虽然 Jinja2 本身不支持插图,但可以在渲染完文本后,用代码定位段落,再替换为图片。
举个例子:你在模板里写 {{ chart_image }},程序读取后,删掉这个占位文字,紧接着调用 add_picture() 把图插进去。这样既保留了模板结构,又能动态加图。
注意事项别忽略
图片插进去,不代表就万事大吉。常见问题包括:图片太大会让文档卡顿、分辨率低显得模糊、路径错误导致丢失。建议图片提前压缩,尺寸控制在 800px 宽以内,格式用 PNG 或 JPG 都行。如果是自动生成文档,记得加异常处理,比如图片文件不存在时跳过或提示,避免整个生成过程崩溃。
另外,有些系统导出文档到 PDF 时,图片可能错位。这种情况下,可以尝试先生成 Word,手动调一下格式,再转 PDF,更稳妥。