






背景需求:
前期制作了每个宫格动物数独的18款作品
【教学类-52-14】20240925动物数独(N宫格通用版3-10宫格)1图、2图、6图、有答案、无答案 组合版18套-CSDN博客文章浏览阅读1.4k次,点赞47次,收藏15次。【教学类-52-14】20240925动物数独(N宫格通用版)1图、2图、6图、有答案、无答案 组合版18套
https://blog.csdn.net/reasonsummer/article/details/142524492
9月29日,有一位客户提出需求:不想用KT版做背景,需要把动物操作卡缩小,让操作卡背景就是A4大小。

我觉得这个主意太好了!毕竟切割KT版也要费时间!
如果只要A4打印,可以大大节省手工制作时间!


于是我重新做了一个代码

从18种动物中选择不同的数量

为3-9宫格制作了A4大小的动物卡和操作卡








确定A4大小3-9操作的尺寸和格子数

然后再制作动物操作卡的时候,读取的四个word模版

如果轮到读取第三套word(A4的X图卡片),就在该word模板的第二个表格的第一行写入标题

最后A4一页操作卡(0图操作卡片)的效果







代码展示
# -*- coding:utf-8 -*-
'''
制作动物/脸谱数独N宫格通用版(3-10的黏贴关卡 A4 1图2图6图的所有组合 还有一个限定A4大小的0图(3-6宫格)
1.无答案:9种3:3,两两组合
2.有答案:27种 3:3:3,三三组合(实际需要其中9种)
作者:AI对话大师,阿夏
时间:2024年9月24日
'''
print('-----第一板块、动物操作卡(大图片卡一页1图、1页2图 一页6图)-------')
# 停顿秒数
# 3、4、5可以用0秒
# 6、
# print('----1、读取行列-------')
import os
import time
from docx import Document
from docx.shared import Cm, Pt, RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn
from docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from win32com.client import constants, gencache
from win32com.client.gencache import EnsureDispatch
from datetime import datetime
import random
import shutil
import xlwt
import xlrd
from PyPDF2 import PdfMerger
# 图片索引,从0开始 3宫格0-3、4宫格3-7,5宫格7-12,6宫格12-18,7宫格2-9、8宫格10-18,9宫格0-9
start=2
end=9
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宫格'
# A4操作卡图片(动物大小限定在一张A4内)
A4size=[6.5,4.88,3.9,3.25,2.79,2.44,2.17]
A4gz=[3,4,5,6,7,8,9]
A4pg=[3,4,5,6,7,8,9]
A4gzs=[3,4,5,6,7,8,9]
# A4一页1图2图3图的尺寸
psize=[19.6,14.1,9.39]
# 以下是3=10宫格word里面的图片大小尺寸
# 3=6.4 、4=4.8、5=4.2、6=3 7=2.74 8=2.39 9=2.12 10=1.91
gzsize=[6.4,4.8,3.84,3.2,2.74,2.39,2.12,1.91]
# 3=9宫格宫格
gzsgg=list(range(3, 10))
pg=[1,2,6]
gzs=[1,2,2]
#如果是3-6图,就做一套A4大小的操作卡,
# 以下是1图、2图、6图、A4图(根据大小调整格子)的插入大小
for w in range(len(A4gz)):
if hs==A4gz[w]:
psize.append(A4size[w])
print(psize)
# [19.6, 14.1, 9.39, 6.5]
pg=[1,2,6]
pg.append(A4pg[w])
print(pg)
# [1, 2, 6, 3]
gzs=[1,2,2]
gzs.append(A4gzs[w])
print(gzs)
# [1, 2, 2, 3]
# c:\Users\jg2yXRZ\OneDrive\桌面\动物数独N宫格\动物数独(A4的3图卡片).docx
k=['1图关卡','2图关卡','6图关卡',f'A4的{hs}图卡片']
print(k)
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'\动物数独({k[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)]
# hs=3 提取第1-3个动物图片