word中图片排版

本文介绍了一个使用Python库fromdocx和PIL处理的脚本,它能自动从指定目录中读取图片,按每行4张的比例插入到新的Word文档中,每满一行就换行。
摘要由CSDN通过智能技术生成

主要代码

# -*- coding:utf-8 -*-  
# @Time   : 2023-11-08  
# @Author : Carl_DJ  
  
'''  
实现功能:  
   图片自动插入Word文档,  
   每行插入4张图片  
'''  
from docx import Document  
from PIL import Image  
import io  
from docx import Document  
from docx.shared import Inches  
from PIL import Image  
import os  
import random  
from docx.enum.section import WD_ORIENT  
from docx.oxml.ns import qn  
  
# 创建一个新的Word文档  
doc = Document()  
  
# 获取图像目录中的所有文件名  
image_dir = "./12"  
images = [f for f in os.listdir(image_dir) if os.path.isfile(os.path.join(image_dir, f))]  
  
# 分成3栏  
section = doc.add_section() # 添加横向页的连续节  
section._sectPr.xpath('./w:cols')[0].set(qn('w:num'),'3')  
  
  
# 将每个图像插入到文档中  
row_num = 0  
col_num = 0  
for i, image_name in enumerate(images):  
    # 打开图像  
    img = Image.open(os.path.join(image_dir, image_name))  
  
    # 将图像转换为BytesIO对象  
    byte_arr = io.BytesIO()  
    img.save(byte_arr, format='PNG')  
    byte_arr.seek(0)  
    inline_shape = doc.add_picture(byte_arr, width=Inches(2), height=Inches(2))  
    # 插入图像  
  
    # 如果当前行已经满了(即插入了4张图片),则开始新的一行  
    # if col_num == 4:  
    #     row_num += 1    #     col_num = 0  
# 保存文档  
doc.save('output.docx')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值