背景需求:
制作了3-5宫格(1、2、6图)样式18组,它们用的都是(1、2、6图)的word模板,只是宫格数量不同,图片插入大小不同,是否可以做一个通用代码?
【教学类-52-11】20240919动物数独(4宫格)1图、2图、6图、有答案、无答案 组合版18套-CSDN博客文章浏览阅读1.7k次,点赞57次,收藏16次。【教学类-52-11】20240919动物数独(4宫格)1图、2图、6图、有答案、无答案 组合版18套https://blog.csdn.net/reasonsummer/article/details/142442572【教学类-52-13】20240924动物数独(5宫格)1图、2图、6图、有答案、无答案 组合版18套-CSDN博客文章浏览阅读636次,点赞19次,收藏4次。【教学类-52-13】20240924动物数独(5宫格)1图、2图、6图、有答案、无答案 组合版18套
https://blog.csdn.net/reasonsummer/article/details/142497906【教学类-52-12】20240923动物数独(6宫格)1图、2图、6图、有答案、无答案 组合版18套-CSDN博客文章浏览阅读466次。【教学类-52-12】20240923动物数独(6宫格)1图、2图、6图、有答案、无答案 组合版18套
https://blog.csdn.net/reasonsummer/article/details/142468814
通过修改名称,修改代码,实现这个需求。
0、材料准备
1、图片:
原来的四种动物是他人的(兔、猫、猴、猪)
为了做6宫格我又从网上下载了两个风格近似的图片——熊猫和狮子。
这次我想最多10宫格,所以需要10个动物,网上看看也配不齐同一个风格的。
为了避免版权问题,加上需要同样大小、同样风格的动物头像,我决定用通义万相生成的AI动物图片。
找到一套8月2日下载的彩色动物头像正面
从中挑选一些好看的头像(用ps把动物头像放大撑满画布,图案变大)选择了18种,大于10种。
为了了解生成一套要多少时间,添加了起始时间和终止时间
(星火讯飞生成)
from datetime import datetime
# 记录程序开始时间
start_time = datetime.now()
# 在这里编写你的程序代码
# 记录程序结束时间
end_time = datetime.now()
# 计算程序运行时间
elapsed_time = end_time - start_time
# 打印程序运行时间
print("程序运行时间:", elapsed_time)
2、制作3-10宫格的模版(制作底图)
3宫格基础模版
4宫格基础模版
5宫格基础模版
6宫格基础模版
7宫格基础模版
8宫格基础模版
9宫格基础模版
10宫格基础模版
3、关卡图:
1图关卡、2图关卡、6图关卡
代码解析:
通用代码中的N*N小图片大小需要预先设置好
代码展示
# -*- coding:utf-8 -*-
'''
制作动物/脸谱数独N宫格通用版(3-10的黏贴关卡 A4 1图2图6图的所有组合 )
1.无答案:9种3:3,两两组合
2.有答案:27种 3:3:3,三三组合(实际需要其中9种)
作者:AI对话大师,阿夏
时间:2024年9月24日
'''
print('-----第一板块、动物操作卡(大图片卡一页1图、1页2图 一页6图)-------')
# print('----1、读取行列-------')
import os,time
from docx import Document
from docx.shared import Cm
from docx2pdf import convert
from PyPDF2 import PdfMerger
import shutil
from datetime import datetime
num=1
# int(input('生成几份\n'))
# 制作"单元格"# 几宫格
hsall=int(input('几宫格?(3-10)\n'))
# 程序开始的时间:
start_time = datetime.now()
# int(input('请输入4或9\n'))
hs=hsall
path=fr'C:\Users\jg2yXRZ\OneDrive\桌面\动物数独N宫格'
# 以下是1图、2图、6图的插入大小
psize=[19.6,14.1,9.39]
pg=[1,2,6]
gzs=[1,2,2]
# 以下是3=10宫格word里面的图片大小尺寸
# 3=6.4 、4=4.8、5=4.2、6=3
gzsize=[6.4,4.8,3.84,3.2]
# 3=10宫格宫格
gzsgg=list(range(3, 11))
for pt in range(len(pg)):
# # 新建一个”装N份word和PDF“的临时文件夹
imagePath=path+r'\\零时Word'
os.makedirs(imagePath,exist_ok=True) # 若图片文件夹不存在就创建
imagePathpaste=path+r'\\05操作卡pdf'
os.makedirs(imagePathpaste,exist_ok=True)
doc = Document(path +fr'\动物数独({pg[pt]}图关卡).docx')
# 获取文档中的所有表格
tables = doc.tables
# 选择你需要读取的表格(在这种情况下是第1张表格)
target_table = tables[0]
# 获取所选表格的行数和列数
num_rows = len(target_table.rows)
num_columns = len(target_table.columns)
print("行数:", num_rows)
# 3
print("列数:", num_columns)
# # 2
print('----2、读取图片-------')
import os
# 指定文件夹路径
folder_path = path + r'\02动物图片'
pic_list = [os.path.join(folder_path, file_name) for file_name in os.listdir(folder_path)]
pic_list=pic_list[:hs]*hs
print(pic_list)
print(len(pic_list))
print(pic_list)
print(len(pic_list))
groups = [pic_list[i:i + int(pg[pt])] for i in range(0, len(pic_list), int(pg[pt]))]
# # # print('----3、黏贴图片卡,一页1图、1页2图 一页6图-------')
# 处理每一组图片
for group_index, group in enumerate(groups):
# 创建新的Word文档
doc = Document(path + fr'\动物数独({pg[pt]}图关卡).docx')
# print(group)
# 遍历每个单元格,并插入图片
for cell_index, im