作品展示
![](https://i-blog.csdnimg.cn/blog_migrate/92517ca72b9eb12ce7930fe50495d496.png)
背景需求
制作了动物数独4宫格后,需要再做一些黏贴上去的图片
【教学类-52-01】20240411动物数独(4宫格)-CSDN博客文章浏览阅读53次。【教学类-52-01】20240411动物数独01(4宫格)
https://blog.csdn.net/reasonsummer/article/details/137679361
素材准备:
![](https://i-blog.csdnimg.cn/blog_migrate/1e824f9a3eb170a8b2453fef3bbbaf64.png)
![](https://i-blog.csdnimg.cn/blog_migrate/aaeb08a8fb5db0cb8d8124d52a38b1c6.png)
代码展示
# -*- coding:utf-8 -*-
'''
制作动物数独的黏贴卡片一张正反 3.5CM
作者:AI对话大师,阿夏
时间:2024年4月11日
# '''
# print('----1、读取行列-------')
from docx import Document
from docx.shared import Cm
path=r'C:\Users\jg2yXRZ\OneDrive\桌面\动物数独'
# 打开.docx文件
doc = Document(path +r'\动物数独(四宫格竖版)卡片.docx')
# 获取文档中的所有表格
tables = doc.tables
# 选择你需要读取的表格(在这种情况下是第1张表格)
target_table = tables[0]
# 获取所选表格的行数和列数
num_rows = len(target_table.rows)
num_columns = len(target_table.columns)
print("行数:", num_rows)
# 8
print("列数:", num_columns)
# 6
# 测算4类图片每种几张
sum=int(num_rows*num_columns/4)
print(sum)
# 12
print('----2、生成足够数量的图片-------')
import os
# 指定文件夹路径
folder_path =path+r'\02动物图片'
# 读取文件夹中所有文件的名称并加上路径
file_paths = [os.path.join(root, file) for root, dirs, files in os.walk(folder_path) for file in files]
pic_list=[]
# 打印文件名称和路径
for file_path in file_paths:
for i in range(sum):
pic_list.append(file_path)
print(pic_list)
print(len(pic_list))
# 48
print('----3、插入图片-------')
# 打开.docx文件
doc = Document(path+r'\动物数独(四宫格竖版)卡片.docx')
# 获取文档中的所有表格
tables = doc.tables
# 获取第一个表格
table = tables[0]
# 遍历表格的所有行和单元格
i = 0
for row in table.rows:
for cell in row.cells:
# 在单元格中插入图片
cell_paragraph = cell.paragraphs[0]
run = cell_paragraph.add_run()
run.add_picture(pic_list[i], width=Cm(3.5), height=Cm(3.5))
cell_paragraph.alignment = 1 # 设置单元格中的文本居中
i += 1 # 移动到下一个图片路径
# 保存修改后的.docx文件
doc.save(path + r'\动物数独卡片1页.docx')
print('----4、docx转为PDF-------')
import win32com.client
def docx_to_pdf(docx_path, pdf_path):
# 创建Word应用程序
word = win32com.client.Dispatch('Word.Application')
# 打开.docx文件
doc = word.Documents.Open(docx_path)
# 将.docx保存为PDF
doc.SaveAs(pdf_path, FileFormat=17)
# 关闭Word应用程序
doc.Close()
word.Quit()
# 指定.docx文件路径和PDF文件路径
docx_path = path+r'\动物数独卡片1页.docx'
pdf_path = path+r'\动物数独卡片1页.pdf'
# 将.docx转换为PDF
docx_to_pdf(docx_path, pdf_path)
结果展示
![](https://i-blog.csdnimg.cn/blog_migrate/609c3accf89f54b37065174d544a3305.png)
![](https://i-blog.csdnimg.cn/blog_migrate/92517ca72b9eb12ce7930fe50495d496.png)
每个动物12个图片,图片都要剪开来,单独塑封,工作量很大啊
![](https://i-blog.csdnimg.cn/blog_migrate/531b264073dd1ea40e7d115cb027b2ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c155aa65183690740426c269a9ecdd6d.png)