当前位置: 首页 > wzjs >正文

开源网站模板cms北京住房和城乡建设网站

开源网站模板cms,北京住房和城乡建设网站,建设网站如何选择服务器,网址网站注册背景需求: 基于以下两个代码,设计一个单页1页黑白三角、彩色三角(包含黑点、白点、无点)的代码。 【教学类-58-12】黑白三角拼图10(N张参考图1张操作卡多张彩色白块,适合个别化)-CSDN博客文章…

背景需求:

基于以下两个代码,设计一个单页1页黑白三角、彩色三角(包含黑点、白点、无点)的代码。

【教学类-58-12】黑白三角拼图10(N张参考图+1张操作卡+多张彩色白块,适合个别化)-CSDN博客文章浏览阅读888次,点赞27次,收藏7次。【教学类-58-12】黑白三角拼图10(N张参考图+1张操作卡+多张彩色白块,适合个别化) https://blog.csdn.net/reasonsummer/article/details/146476754?spm=1011.2415.3001.5331【教学类-58-13】黑白三角拼图11——左右结构图、一页三张,颜色(黑白、彩色)、板式(无圆点、黑圆点、白圆点)、宫格起止数、张数,适合集体操作)-CSDN博客文章浏览阅读517次,点赞11次,收藏10次。【教学类-58-13】黑白三角拼图11——左右结构图、一页三张,颜色(黑白、彩色)、板式(无圆点、黑圆点、白圆点)、宫格起止数、张数,适合集体操作) https://blog.csdn.net/reasonsummer/article/details/146500374?spm=1011.2415.3001.5331

单页1页的黑白三角(包含黑点、白点、无点)

'''彩色三角图,2宫格36张,3宫格36张……适合个别化 大操作卡
01彩色三角 1页1图大操作图 彩色块 无空心点 
1、选择颜色:彩色
2、黑点、白点、无点
3、随机图片
AI对话大师,阿夏
2025年3月26日'''
import os,time
from PIL import Image, ImageDraw
from docx import Document
from docx.shared import Cm
from docx.shared import Pt
import shutil
import os
from PyPDF2 import PdfFileMerger path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250323黑白三角图案版(彩色)'# 起始宫格数
start=int(input('开始宫格数,如2\n'))
# 最大宫格数
end=int(input('截止宫格数,如10\n'))# 黑白或彩色style=['0无圆点','1黑圆点','2白圆点']
s=int(input('请选择:0:无圆点,1:黑圆点,2:白圆点\n'))# 1张(3张)=1,2
zhang=int(input('每种宫格生成多少张(一张有3份左右对称的?)比如:6张\n'))colors=['black','black']
# 选择颜色:0黑白、1彩色for gongge in range(start,end+1): # 遍历3宫格到10宫格for ys in range(zhang,zhang+1):new = path + fr'\{gongge:02}宫格组合图片'os.makedirs(new, exist_ok=True)newall=path+r'\02单页拼图'os.makedirs(newall,exist_ok=True)radius = 5f = 6 * ys  # 一页6张b = 400  # 画布大小by = 10  # 边距print('----------1\制作白色操作图------------')for g in range(gongge,gongge+1):for c in range(1, f + 1):# 创建bxb的画布canvas = Image.new('RGB', (b, b), (255, 255, 255))draw = ImageDraw.Draw(canvas)# 定义表格的行数和列数、边距rows = gcols = gmargin = by# 计算单元格的宽度和高度cell_width = (b - 2 * margin) // colscell_height = (b - 2 * margin) // rows# 绘制表格的竖直线for i in range(cols + 1):x = margin + i * cell_widthdraw.line([(x, margin), (x, b - margin)], fill=(0, 0, 0), width=2)# 绘制表格的水平线for i in range(rows + 1):y = margin + i * cell_heightdraw.line([(margin, y), (b - margin, y)], fill=(0, 0, 0), width=2)# 绘制每个单元格的左上角、右上角、左下角、右下角的黑色圆形for i in range(rows):for j in range(cols):left = margin + j * cell_widthupper = margin + i * cell_heightright = left + cell_widthlower = upper + cell_height# 绘制每个单元格的左上角、右上角、左下角、右下角的黑色圆形if s==0:  # 无圆点,纯黑线passelif s==1: # 绘制黑色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill=('black'), width=5)else:   # # 绘制白色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)], fill='white', outline='black', width=1)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill='white', outline='black', width=1)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill='white', outline='black', width=1)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill='white', outline='black', width=1)# # 保存画布# mb = f'{g:05d}格{c:05d}02模板{c:05d}.png'# canvas.save(new + fr'\{mb}')# 保存画布mb = f'{g:05d}格模板.png'canvas.save(new + fr'\{mb}')print('---2、制作黑白参考图,计算三个坐标点的黑色三角形不重复图案有几个-------')# 创建一个空列表用于存储单元格的坐标cell_coordinates = []# 计算每个单元格的四个顶点坐标for row in range(rows):for col in range(cols):top_left = (margin + col * cell_width, margin + row * cell_height)top_right = (margin + (col + 1) * cell_width, margin + row * cell_height)bottom_left = (margin + col * cell_width, margin + (row + 1) * cell_height)bottom_right = (margin + (col + 1) * cell_width, margin + (row + 1) * cell_height)# 将四个顶点坐标添加到列表中cell_coordinates.append([top_left, top_right, bottom_left, bottom_right])# print(cell_coordinates)# print(len(cell_coordinates))# 16# [[(0, 0), (400, 0), (0, 400), (400, 400)], [(400, 0), (b, 0), (400, 400), (b, 400)], [(0, 400), (400, 400), (0, b), (400, b)], [(400, 400), (b, 400), (400, b), (b, b)]]import randomimport oscombinations=[]# 存储选取的点,随机生成坐标(样式)排除重复,生成10份样式不同的模版while len(combinations) < f:selected_points = []for points in cell_coordinates:selected_points.append(tuple(random.sample(points, 3)))combinations.append(tuple(selected_points))print(combinations)print(len(combinations))#  10print('---3、制作三个坐标点的黑色三角形(4个)-------')from PIL import Image, ImageDraw            # 定义要绘制的坐标点组合for point_combination in combinations:print(point_combination)# 清空selected_points列表selected_points = []h=1# 遍历每个坐标点组合for combination in point_combination:# 从每个列表中随机选取三个点,并加入到selected_points中selected_points.append(tuple(random.sample(combination, 3)))# 读取图像文件#                创建bxb的画布canvas = Image.new('RGB', (b,b), (255, 255, 255))draw = ImageDraw.Draw(canvas)# 定义表格的行数和列数、边距rows = gcols = gmargin = by# 计算单元格的宽度和高度cell_width = (b - 2 * margin) // colscell_height = (b - 2 * margin) // rows# 绘制表格的竖直线for i in range(cols + 1):x = margin + i * cell_widthdraw.line([(x, margin), (x, b - margin)], fill=(0, 0, 0), width=2)# 绘制表格的水平线for i in range(rows + 1):y = margin + i * cell_heightdraw.line([(margin, y), (b - margin, y)], fill=(0, 0, 0), width=2)# # color=['black','black']# color=['red','yellow','orange','blue','green','purple','pink']color=colors# 遍历每个坐标点组合for combination in selected_points:# 绘制填充为黑色的多边形# draw.polygon(combination, fill='black',outline=(255, 255, 255), width=1)draw.polygon(combination, fill=random.choice(color), outline=('black'), width=2)for i in range(rows):for j in range(cols):left = margin + j * cell_widthupper = margin + i * cell_heightright = left + cell_widthlower = upper + cell_heightif s==0:  # 无圆点,纯黑线passelif s==1: # 绘制黑色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill=('black'), width=5)else:   # # 绘制白色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)], fill='white', outline='black', width=1)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill='white', outline='black', width=1)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill='white', outline='black', width=1)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill='white', outline='black', width=1)# 绘制每个单元格的左上角、右上角、左下角、右下角的黑色圆形# 保存结果图像canvas.save(new + fr'\{g:05d}格{c:05d}01图纸{c:05d}.png')canvas.close()  # 关闭图像文件print('----4、贴图用黑色色块----------')canvas = Image.new('RGB', (b, b), (255, 255, 255))draw = ImageDraw.Draw(canvas)# 绘制表格的竖直线和水平线for i in range(cols + 1):x = margin + i * cell_widthdraw.line([(x, margin), (x, b - margin)], fill='black', width=2)for i in range(rows + 1):y = margin + i * cell_heightdraw.line([(margin, y), (b - margin, y)], fill='black', width=2)# 在每个单元格中绘制两个三角形for row in range(rows):for col in range(cols):left = margin + col * cell_widthupper = margin + row * cell_heightright = left + cell_widthlower = upper + cell_height              # 随机选择三个顶点坐标points = [(left, upper), (right, upper), (left, lower), (right, lower)]# random.shuffle(points)triangle1 = tuple(points[0:3])triangle2 = tuple(points[1:4])draw.polygon(triangle1, fill='black',outline='black',width=2)draw.polygon(triangle2, fill='white',outline='white',width=2)# 设置边框线为黑色draw.line([(margin, margin), (b - margin, margin), (b - margin, b - margin), (margin, b - margin), (margin, margin)], fill='black', width=2)for i in range(rows):for j in range(cols):left = margin + j * cell_widthupper = margin + i * cell_heightright = left + cell_widthlower = upper + cell_heightif s==0:  # 无圆点,纯黑线passelif s==1: # 绘制黑色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill=('black'), width=5)else:   # # 绘制白色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)], fill='white', outline='black', width=1)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill='white', outline='black', width=1)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill='white', outline='black', width=1)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill='white', outline='black', width=1)# 保存结果图像canvas.save(new + fr'\{g:05d}格黑块.png')canvas.close()print('---4合并打印------')# 第3步,读取图片写入docx,合并PDFimport os,timefrom docx import Documentfrom reportlab.lib.pagesizes import letterfrom reportlab.pdfgen import canvasfrom PyPDF2 import PdfMergerfrom docx.shared import Cmprint('---5参考图合并-----')# 读取123文件夹中的所有图片地址(参考图)image_folder = newnew_folder = path+r'\零时文件夹'os.makedirs(new_folder, exist_ok=True)image_files = [os.path.join(image_folder, file) for file in os.listdir(image_folder) if file.endswith('.png')]new1=path+r'\保存1'os.makedirs(new1, exist_ok=True)# 每8个图片一组进行处理grouped_files = [image_files[:-2][i:i+6] for i in range(0, len(image_files[:-2]), 6)]print(grouped_files)# 处理每一组图片for group_index, group in enumerate(grouped_files):# 创建新的Word文档doc = Document(path+r'\模板6格.docx')print(group)# 遍历每个单元格,并插入图片for cell_index, image_file in enumerate(group):# 计算图片长宽(单位:厘米)# 插入图片到单元格table = doc.tables[0]cell = table.cell(int(cell_index / 2), cell_index % 2)# 6列两个都是6cell_paragraph = cell.paragraphs[0]cell_paragraph.clear()run = cell_paragraph.add_run()run.add_picture(image_file, width=Cm(9.4), height=Cm(9.4))# 保存Word文档doc.save(os.path.join(new_folder, f'{group_index + 1:03d}.docx'))# 所有docx合并成PDF# 将10个docx转为PDFimport osfrom docx2pdf import convertfrom PyPDF2 import PdfFileMerger# from PyPDF4 import PdfMerger# output_folder = output_folderpdf_output_path = new1+fr'\02黑白三角{g:02d}宫格参考图.pdf'# 将所有DOCX文件转换为PDFfor docx_file in os.listdir(new_folder):if docx_file.endswith('.docx'):docx_path = os.path.join(new_folder, docx_file)convert(docx_path, docx_path.replace('.docx', '.pdf'))time.sleep(3)# 合并零时文件里所有PDF文件merger = PdfFileMerger()for pdf_file in os.listdir(new_folder):if pdf_file.endswith('.pdf'):pdf_path = os.path.join(new_folder, pdf_file)merger.append(pdf_path)time.sleep(2)# 保存合并后的PDF文件merger.write(pdf_output_path)merger.close()import shutil# 删除输出文件夹import timeshutil.rmtree(new_folder)# shutil.rmtree(new)time.sleep(2)print('---6答题卡合并(白图和黑三角卡片-----')# 读取123文件夹中的所有图片地址(参考图)image_folder = newnew_folder = path+r'\零时文件夹'      os.makedirs(new_folder, exist_ok=True)image_files = [os.path.join(image_folder, file) for file in os.listdir(image_folder) if file.endswith('.png')]# 每8个图片一组进行处理grouped_files = [image_files[-2:][i:i+2] for i in range(0, len(image_files[-2:]), 2)]print(grouped_files)for group_index, group in enumerate(grouped_files):# 创建新的Word文档doc = Document(path+r'\底图1格.docx')print(group)t=[f'黑白三角({gongge}宫格)操作卡',f'黑白三角({gongge}宫格)贴图卡']# 在单元格0,0写入“黑白三角(3宫格)操作卡”,24磅宋体for tt in range(len(t)):             table = doc.tables[tt]                # 两张表格cell = table.cell(0, 0)cell_paragraph = cell.paragraphs[0]cell_paragraph.clear()run = cell_paragraph.add_run(t[tt])run.font.name = '宋体'run.font.size = Pt(40)# 遍历每个单元格,并插入图片for cell_index, image_file in enumerate(group):# 计算图片长宽(单位:厘米)# 插入图片到单元格table = doc.tables[0]if cell_index == 0:cell = table.cell(1, 0)table = doc.tables[1]if cell_index == 1:cell = table.cell(1, 0)# else:#     continuecell_paragraph = cell.paragraphs[0]cell_paragraph.clear()run = cell_paragraph.add_run()run.add_picture(image_file, width=Cm(19.6), height=Cm(19.6))# 保存Word文档doc.save(os.path.join(new_folder, f'{group_index + 1:03d}.docx'))# output_folder = output_folderpdf_output_path = new1+fr'\01黑白三角{g:02d}宫格黑块底图.pdf'# pdf_output_path = path+fr'\黑白三角1-10宫格随机每款{f*ys}图共{ys}张一黑一白黑点白边黑白.pdf'# 将所有DOCX文件转换为PDFfor docx_file in os.listdir(new_folder):if docx_file.endswith('.docx'):docx_path = os.path.join(new_folder, docx_file)convert(docx_path, docx_path.replace('.docx', '.pdf'))time.sleep(1)# 合并零时文件里所有PDF文件merger = PdfFileMerger()for pdf_file in os.listdir(new_folder):if pdf_file.endswith('.pdf'):pdf_path = os.path.join(new_folder, pdf_file)merger.append(pdf_path)time.sleep(2)# 保存合并后的PDF文件merger.write(pdf_output_path)merger.close()# 删除输出文件夹shutil.rmtree(new_folder)shutil.rmtree(new)time.sleep(5)# print('---7合并答题卡和黑白三角卡片-----')t_folder = path+r'\pdf'os.makedirs(t_folder, exist_ok=True)pdf_output_path2 = t_folder + fr'\01黑白三角{g:02d}宫格{f}张合并.pdf'       # 合并零时文件里所有PDF文件merger = PdfFileMerger()for pdf_file in os.listdir(new1):if pdf_file.endswith('.pdf'):pdf_path = os.path.join(new1, pdf_file)merger.append(pdf_path)time.sleep(2)# 保存合并后的PDF文件merger.write(pdf_output_path2)merger.close()# 删除输出文件夹shutil.rmtree(new1)# shutil.rmtree(new)
#         time.sleep(2)print('------3-10宫格全部打包-------')
# pdf_output_path = path + fr'\01黑白三角全黑块({start}-{end})宫格{zhang*(end-start+1)}张参考图1套操作板.pdf' 
# output_folder = output_folder
if s==0:pdf_output_path = newall+fr'\01-01(单页1页)黑白三角 {start}-{end}宫格 每款{f*ys}图共{ys}张 黑色边框 无小圆点.pdf'
elif s==1:pdf_output_path = newall+fr'\01-02(单页1页)黑白三角 {start}-{end}宫格 每款{f*ys}图共{ys}张 黑色边框 黑色小圆点.pdf'
elif s==2:pdf_output_path = newall+fr'\01-03(单页1页)黑白三角 {start}-{end}宫格 每款{f*ys}图共{ys}张 黑色边框 白色小圆点.pdf'# 合并零时文件里所有PDF文件
merger = PdfFileMerger()
for pdf_file in os.listdir(t_folder):if pdf_file.endswith('.pdf'):pdf_path = os.path.join(t_folder, pdf_file)merger.append(pdf_path)time.sleep(2)# 保存合并后的PDF文件
merger.write(pdf_output_path)
merger.close()# 删除输出文件夹
shutil.rmtree(t_folder)
# shutil.rmtree(new)

单页1页的彩色三角(包含黑圆点、白点、无点、贴图卡片有7色)

'''彩色三角图,2宫格36张,3宫格36张……适合个别化 大操作卡
01彩色三角 1页1图大操作图 彩色块 无空心点 
1、选择颜色:彩色
2、黑点、白点、无点
3、随机图片
AI对话大师,阿夏
2025年3月26日'''
import os,time
from PIL import Image, ImageDraw
from docx import Document
from docx.shared import Cm
from docx.shared import Pt
import shutil
import os
from PyPDF2 import PdfFileMerger  # 起始宫格数
start=int(input('开始宫格数,如2\n'))
# 最大宫格数
end=int(input('截止宫格数,如10\n'))# 黑白或彩色path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250323黑白三角图案版(彩色)'style=['0无圆点','1黑圆点','2白圆点']
s=int(input('请选择:0:无圆点,1:黑圆点,2:白圆点\n'))# 1张(3张)=1,2
zhang=int(input('每种宫格生成多少张(一张有3份左右对称的?)比如:6张\n'))colors=['red','yellow','orange','blue','green','purple','pink']
# 选择颜色:0黑白、1彩色# 选择颜色:0彩色、1彩色for gongge in range(start,end+1): # 遍历3宫格到10宫格for ys in range(zhang,zhang+1):new = path + fr'\{gongge:02}宫格组合图片'os.makedirs(new, exist_ok=True)newall=path+r'\02单页拼图'os.makedirs(newall,exist_ok=True)radius = 5f = 6 * ys  # 一页6张b = 400  # 画布大小by = 10  # 边距print('----------1\制作白色操作图------------')for g in range(gongge,gongge+1):for c in range(1, f + 1):# 创建bxb的画布canvas = Image.new('RGB', (b, b), (255, 255, 255))draw = ImageDraw.Draw(canvas)# 定义表格的行数和列数、边距rows = gcols = gmargin = by# 计算单元格的宽度和高度cell_width = (b - 2 * margin) // colscell_height = (b - 2 * margin) // rows# 绘制表格的竖直线for i in range(cols + 1):x = margin + i * cell_widthdraw.line([(x, margin), (x, b - margin)], fill=(0, 0, 0), width=2)# 绘制表格的水平线for i in range(rows + 1):y = margin + i * cell_heightdraw.line([(margin, y), (b - margin, y)], fill=(0, 0, 0), width=2)# 绘制每个单元格的左上角、右上角、左下角、右下角的黑色圆形for i in range(rows):for j in range(cols):left = margin + j * cell_widthupper = margin + i * cell_heightright = left + cell_widthlower = upper + cell_heightif s==0:  # 无圆点,纯黑线passelif s==1: # 绘制黑色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill=('black'), width=5)else:   # # 绘制白色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)], fill='white', outline='black', width=1)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill='white', outline='black', width=1)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill='white', outline='black', width=1)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill='white', outline='black', width=1)# 保存画布mb = f'{g:05d}格模板.png'canvas.save(new + fr'\{mb}')print('---2、制作彩色参考图,计算三个坐标点的黑色三角形不重复图案有几个-------')# 创建一个空列表用于存储单元格的坐标cell_coordinates = []# 计算每个单元格的四个顶点坐标for row in range(rows):for col in range(cols):top_left = (margin + col * cell_width, margin + row * cell_height)top_right = (margin + (col + 1) * cell_width, margin + row * cell_height)bottom_left = (margin + col * cell_width, margin + (row + 1) * cell_height)bottom_right = (margin + (col + 1) * cell_width, margin + (row + 1) * cell_height)# 将四个顶点坐标添加到列表中cell_coordinates.append([top_left, top_right, bottom_left, bottom_right])# print(cell_coordinates)# print(len(cell_coordinates))# 16# [[(0, 0), (400, 0), (0, 400), (400, 400)], [(400, 0), (b, 0), (400, 400), (b, 400)], [(0, 400), (400, 400), (0, b), (400, b)], [(400, 400), (b, 400), (400, b), (b, b)]]import randomimport oscombinations=[]# 存储选取的点,随机生成坐标(样式)排除重复,生成10份样式不同的模版while len(combinations) < f:selected_points = []for points in cell_coordinates:selected_points.append(tuple(random.sample(points, 3)))combinations.append(tuple(selected_points))print(combinations)print(len(combinations))#  10print('---3、制作三个坐标点的黑色三角形(4个)-------')from PIL import Image, ImageDraw            # 定义要绘制的坐标点组合for point_combination in combinations:print(point_combination)# 清空selected_points列表selected_points = []h=1# 遍历每个坐标点组合for combination in point_combination:# 从每个列表中随机选取三个点,并加入到selected_points中selected_points.append(tuple(random.sample(combination, 3)))# 读取图像文件#                创建bxb的画布canvas = Image.new('RGB', (b,b), (255, 255, 255))draw = ImageDraw.Draw(canvas)# 定义表格的行数和列数、边距rows = gcols = gmargin = by# 计算单元格的宽度和高度cell_width = (b - 2 * margin) // colscell_height = (b - 2 * margin) // rows# 绘制表格的竖直线for i in range(cols + 1):x = margin + i * cell_widthdraw.line([(x, margin), (x, b - margin)], fill=(0, 0, 0), width=2)# 绘制表格的水平线for i in range(rows + 1):y = margin + i * cell_heightdraw.line([(margin, y), (b - margin, y)], fill=(0, 0, 0), width=2)# # color=['black','black']# color=['red','yellow','orange','blue','green','purple','pink']color=colors# 遍历每个坐标点组合for combination in selected_points:# 绘制填充为黑色的多边形# draw.polygon(combination, fill='black',outline=(255, 255, 255), width=1)draw.polygon(combination, fill=random.choice(color), outline=(0, 0, 0), width=2)for i in range(rows):for j in range(cols):left = margin + j * cell_widthupper = margin + i * cell_heightright = left + cell_widthlower = upper + cell_heightif s==0:  # 无圆点,纯黑线passelif s==1: # 绘制黑色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill=('black'), width=5)else:   # # 绘制白色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)], fill='white', outline='black', width=1)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill='white', outline='black', width=1)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill='white', outline='black', width=1)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill='white', outline='black', width=1)# 绘制每个单元格的左上角、右上角、左下角、右下角的黑色圆形# 保存结果图像canvas.save(new + fr'\{g:05d}格{c:05d}01图纸{c:05d}.png')canvas.close()  # 关闭图像文件print('----4、贴图用黑色色块----------')for yy in colors:print(yy)canvas = Image.new('RGB', (b, b), (255, 255, 255))draw = ImageDraw.Draw(canvas)# 绘制表格的竖直线和水平线for i in range(cols + 1):x = margin + i * cell_widthdraw.line([(x, margin), (x, b - margin)], fill='black', width=2)for i in range(rows + 1):y = margin + i * cell_heightdraw.line([(margin, y), (b - margin, y)], fill='black', width=2)# # 在每个单元格中绘制两个三角形for row in range(rows):for col in range(cols):left = margin + col * cell_widthupper = margin + row * cell_heightright = left + cell_widthlower = upper + cell_height# 随机选择三个顶点坐标points = [(left, upper), (right, upper), (left, lower), (right, lower)]# random.shuffle(points)triangle1 = tuple(points[0:3])triangle2 = tuple(points[1:4])#         # 绘制三角形#         # 全部黑填充,白色边框#         # draw.polygon(triangle1, fill='black',outline='white',width=2)#         # draw.polygon(triangle2, fill='black',outline='white',width=2)# 全部黑色填充用黑色边框,白色填充用白色边框draw.polygon(triangle1, fill=yy,outline='black',width=2)draw.polygon(triangle2, fill='white',outline='black',width=2)# 设置边框线为白色draw.line([(margin, margin), (b - margin, margin), (b - margin, b - margin), (margin, b - margin), (margin, margin)], fill='white', width=2)for i in range(rows):for j in range(cols):left = margin + j * cell_widthupper = margin + i * cell_heightright = left + cell_widthlower = upper + cell_heightif s==0:  # 无圆点,纯黑线passelif s==1: # 绘制黑色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill=('black'), width=5)else:   # # 绘制白色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)], fill='white', outline='black', width=1)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill='white', outline='black', width=1)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill='white', outline='black', width=1)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill='white', outline='black', width=1)# 保存结果图像canvas.save(new + fr'\{g:05d}格黑块{yy}.png')canvas.close()print('---4合并打印------')# 第3步,读取图片写入docx,合并PDFimport os,timefrom docx import Documentfrom reportlab.lib.pagesizes import letterfrom reportlab.pdfgen import canvasfrom PyPDF2 import PdfMergerfrom docx.shared import Cmprint('---5参考图合并-----')# 读取123文件夹中的所有图片地址(参考图)image_folder = newnew_folder = path+r'\零时文件夹'os.makedirs(new_folder, exist_ok=True)image_files = [os.path.join(image_folder, file) for file in os.listdir(image_folder) if file.endswith('.png')]new1=path+r'\保存1'os.makedirs(new1, exist_ok=True)# 每8个图片一组进行处理# -8张grouped_files = [image_files[:f][i:i+6] for i in range(0, len(image_files[:f]), 6)]print(grouped_files)# 处理每一组图片for group_index, group in enumerate(grouped_files):# 创建新的Word文档doc = Document(path+r'\模板6格.docx')print(group)# 遍历每个单元格,并插入图片for cell_index, image_file in enumerate(group):# 计算图片长宽(单位:厘米)# 插入图片到单元格table = doc.tables[0]cell = table.cell(int(cell_index / 2), cell_index % 2)# 6列两个都是6cell_paragraph = cell.paragraphs[0]cell_paragraph.clear()run = cell_paragraph.add_run()run.add_picture(image_file, width=Cm(9.4), height=Cm(9.4))# 保存Word文档doc.save(os.path.join(new_folder, f'{group_index + 1:03d}.docx'))# 所有docx合并成PDF# 将10个docx转为PDFimport osfrom docx2pdf import convertfrom PyPDF2 import PdfFileMerger# from PyPDF4 import PdfMerger# output_folder = output_folderpdf_output_path = new1+fr'\02彩色三角{g:02d}宫格参考图.pdf'# 将所有DOCX文件转换为PDFfor docx_file in os.listdir(new_folder):if docx_file.endswith('.docx'):docx_path = os.path.join(new_folder, docx_file)convert(docx_path, docx_path.replace('.docx', '.pdf'))time.sleep(3)# 合并零时文件里所有PDF文件merger = PdfFileMerger()for pdf_file in os.listdir(new_folder):if pdf_file.endswith('.pdf'):pdf_path = os.path.join(new_folder, pdf_file)merger.append(pdf_path)time.sleep(2)# 保存合并后的PDF文件merger.write(pdf_output_path)merger.close()import shutil# 删除输出文件夹import timeshutil.rmtree(new_folder)# shutil.rmtree(new)time.sleep(2)print('---6答题卡合并(白图和黑三角卡片-----')# 读取123文件夹中的所有图片地址(参考图)image_folder = newnew_folder = path+r'\零时文件夹1'      os.makedirs(new_folder, exist_ok=True)# 只要文件名image_name = [file for file in os.listdir(image_folder) if file.endswith('.png')]# 只要最后几个o = len(image_name)o1=o-fo2=-1flattened_names= [image_name[f:][i:i+o1] for i in range(0, len(image_name[f:]), o1)]print(flattened_names)# 去掉一层嵌套flattened_name = [item for sublist in flattened_names for item in sublist]print(flattened_name)t=[f'彩色三角({gongge}宫格)操作卡']t2=[f'彩色三角({gongge}宫格)贴图卡']*(o1-1)# 贴图卡后面添加颜色for t3 in range(len(t2)):t.append(t2[t3]+'('+flattened_name[t3+1][8:-4]+')')print(t)# 文件名+路径image_files = [os.path.join(image_folder, file) for file in os.listdir(image_folder) if file.endswith('.png')]flattened_lists= [image_files[f:][i:i+o1] for i in range(0, len(image_files[f:]), o1)]print(flattened_lists)# 多余的图flattened_list = [item for sublist in  flattened_lists for item in sublist]print(flattened_list)# # #  ['彩色三角(2宫格)操作卡', '彩色三角(2宫格)贴图卡(red)', '彩色三角(2宫格)贴图卡(yellow)', '彩色三角(2宫格)贴图卡(orange)', '彩色三角(2宫格)贴图卡(blue)', '彩色三角 # # # (2宫格)贴图卡(green)', '彩色三角(2宫格)贴图卡(purple)', '彩色三角(2宫格)贴图卡(pink)']for group_index in range(len(flattened_list)):print(group_index)        # 创建新的Word文档# 0doc = Document(path+r'\底图0格.docx')# 在单元格0,0写入“彩色三角(3宫格)操作卡”,24磅宋体# for tt in range(len(t)):             table = doc.tables[0]                # 两张表格cell = table.cell(0, 0)cell_paragraph = cell.paragraphs[0]cell_paragraph.clear()run = cell_paragraph.add_run(t[group_index])run.font.name = '宋体'run.font.size = Pt(40)# 插入图片# if cell_index == 0:cell = table.cell(1, 0)                          cell_paragraph = cell.paragraphs[0]cell_paragraph.clear()run = cell_paragraph.add_run()image_file1 = flattened_list[group_index]# image_file1=str(flattened_lists[group_index])print(image_file1)run.add_picture(image_file1, width=Cm(19.6), height=Cm(19.6))# 保存Word文档doc.save(os.path.join(new_folder, f'{group_index + 1:03d}.docx'))pdf_output_path = new1+fr'\01彩色三角{g:02d}宫格黑块底图.pdf'# pdf_output_path = path+fr'\彩色三角1-10宫格随机每款{f*ys}图共{ys}张一黑一白黑点白边彩色.pdf'# 将所有DOCX文件转换为PDFfor docx_file in os.listdir(new_folder):if docx_file.endswith('.docx'):docx_path = os.path.join(new_folder, docx_file)convert(docx_path, docx_path.replace('.docx', '.pdf'))time.sleep(3)# 合并零时文件里所有PDF文件merger = PdfFileMerger()for pdf_file in os.listdir(new_folder):if pdf_file.endswith('.pdf'):pdf_path = os.path.join(new_folder, pdf_file)merger.append(pdf_path)time.sleep(3)# 保存合并后的PDF文件merger.write(pdf_output_path)merger.close()# 删除输出文件夹shutil.rmtree(new_folder)time.sleep(2)# print('---7合并答题卡和彩色三角卡片-----')t_folder = path+r'\pdf'os.makedirs(t_folder, exist_ok=True)pdf_output_path2 = t_folder + fr'\01彩色三角{g:02d}宫格{f}张合并.pdf'       # 合并零时文件里所有PDF文件merger = PdfFileMerger()for pdf_file in os.listdir(new1):if pdf_file.endswith('.pdf'):pdf_path = os.path.join(new1, pdf_file)merger.append(pdf_path)time.sleep(2)# 保存合并后的PDF文件merger.write(pdf_output_path2)merger.close()# 删除输出文件夹shutil.rmtree(new1)# shutil.rmtree(new)
#         time.sleep(2)print('------3-10宫格全部打包-------')
# pdf_output_path = path + fr'\01彩色三角全黑块({start}-{end})宫格{zhang*(end-start+1)}张参考图1套操作板.pdf' 
if s==0:pdf_output_path = newall+fr'\01-01(单页1页)彩色三角 {start}-{end}宫格 每款{f*ys}图共{ys}张 黑色边框 无小圆点.pdf'
elif s==1:pdf_output_path = newall+fr'\01-02(单页1页)彩色三角 {start}-{end}宫格 每款{f*ys}图共{ys}张 黑色边框 黑色小圆点.pdf'
elif s==2:pdf_output_path = newall+fr'\01-03(单页1页)彩色三角 {start}-{end}宫格 每款{f*ys}图共{ys}张 黑色边框 白色小圆点.pdf'#   合并零时文件里所有PDF文件
merger = PdfFileMerger()
for pdf_file in os.listdir(t_folder):if pdf_file.endswith('.pdf'):pdf_path = os.path.join(t_folder, pdf_file)merger.append(pdf_path)time.sleep(2)# 保存合并后的PDF文件
merger.write(pdf_output_path)
merger.close()# 删除输出文件夹
shutil.rmtree(t_folder)

但是生成过程中每次都出现病毒提示,必须点开设置允许,不去管它的话,30秒后就自动删除PDF文件了。

所以我想直接把三款一次性生成。做了一个遍历。

黑白三角 1页1图:操作卡和贴图卡

'''彩色三角图,2宫格36张,3宫格36张……适合个别化 大操作卡
01彩色三角 1页1图大操作图 彩色块 无空心点 
1、选择颜色:彩色
2、黑点、白点、无点
3、随机图片
AI对话大师,阿夏
2025年3月26日'''
import os,time
from PIL import Image, ImageDraw
from docx import Document
from docx.shared import Cm
from docx.shared import Pt
import shutil
import os
from PyPDF2 import PdfFileMerger path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250323黑白三角图案版(彩色)'# 起始宫格数
start=int(input('开始宫格数,如2\n'))
# 最大宫格数
end=int(input('截止宫格数,如10\n'))#  选择颜色:0黑白、1彩色
colors=['black','black']# 黑白或彩色
zhang=int(input('每种宫格生成多少张(一张有3份左右对称的?)比如:6张\n'))style=['0无圆点','1黑圆点','2白圆点']
# s=int(input('请选择:0:无圆点,1:黑圆点,2:白圆点\n'))for s in [0,1,2]:    # 三种样式都生成# 1张(3张)=1,2for gongge in range(start,end+1): # 遍历3宫格到10宫格for ys in range(zhang,zhang+1):new = path + fr'\{gongge:02}宫格组合图片'os.makedirs(new, exist_ok=True)newall=path+r'\02单页拼图'os.makedirs(newall,exist_ok=True)radius = 5f = 6 * ys  # 一页6张b = 400  # 画布大小by = 10  # 边距print('----------1\制作白色操作图------------')for g in range(gongge,gongge+1):for c in range(1, f + 1):# 创建bxb的画布canvas = Image.new('RGB', (b, b), (255, 255, 255))draw = ImageDraw.Draw(canvas)# 定义表格的行数和列数、边距rows = gcols = gmargin = by# 计算单元格的宽度和高度cell_width = (b - 2 * margin) // colscell_height = (b - 2 * margin) // rows# 绘制表格的竖直线for i in range(cols + 1):x = margin + i * cell_widthdraw.line([(x, margin), (x, b - margin)], fill=(0, 0, 0), width=2)# 绘制表格的水平线for i in range(rows + 1):y = margin + i * cell_heightdraw.line([(margin, y), (b - margin, y)], fill=(0, 0, 0), width=2)# 绘制每个单元格的左上角、右上角、左下角、右下角的黑色圆形for i in range(rows):for j in range(cols):left = margin + j * cell_widthupper = margin + i * cell_heightright = left + cell_widthlower = upper + cell_height# 绘制每个单元格的左上角、右上角、左下角、右下角的黑色圆形                if s==0:  # 无圆点,纯黑线passelif s==1: # 绘制黑色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill=('black'), width=5)else:   # # 绘制白色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)], fill='white', outline='black', width=1)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill='white', outline='black', width=1)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill='white', outline='black', width=1)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill='white', outline='black', width=1)# 保存画布mb = f'{g:05d}格模板.png'canvas.save(new + fr'\{mb}')print('---2、制作黑白参考图,计算三个坐标点的黑色三角形不重复图案有几个-------')# 创建一个空列表用于存储单元格的坐标cell_coordinates = []# 计算每个单元格的四个顶点坐标for row in range(rows):for col in range(cols):top_left = (margin + col * cell_width, margin + row * cell_height)top_right = (margin + (col + 1) * cell_width, margin + row * cell_height)bottom_left = (margin + col * cell_width, margin + (row + 1) * cell_height)bottom_right = (margin + (col + 1) * cell_width, margin + (row + 1) * cell_height)# 将四个顶点坐标添加到列表中cell_coordinates.append([top_left, top_right, bottom_left, bottom_right])# print(cell_coordinates)# print(len(cell_coordinates))# 16# [[(0, 0), (400, 0), (0, 400), (400, 400)], [(400, 0), (b, 0), (400, 400), (b, 400)], [(0, 400), (400, 400), (0, b), (400, b)], [(400, 400), (b, 400), (400, b), (b, b)]]import randomimport oscombinations=[]# 存储选取的点,随机生成坐标(样式)排除重复,生成10份样式不同的模版while len(combinations) < f:selected_points = []for points in cell_coordinates:selected_points.append(tuple(random.sample(points, 3)))combinations.append(tuple(selected_points))print(combinations)print(len(combinations))#  10print('---3、制作三个坐标点的黑色三角形(4个)-------')from PIL import Image, ImageDraw            # 定义要绘制的坐标点组合for point_combination in combinations:print(point_combination)# 清空selected_points列表selected_points = []h=1# 遍历每个坐标点组合for combination in point_combination:# 从每个列表中随机选取三个点,并加入到selected_points中selected_points.append(tuple(random.sample(combination, 3)))# 读取图像文件#                创建bxb的画布canvas = Image.new('RGB', (b,b), (255, 255, 255))draw = ImageDraw.Draw(canvas)# 定义表格的行数和列数、边距rows = gcols = gmargin = by# 计算单元格的宽度和高度cell_width = (b - 2 * margin) // colscell_height = (b - 2 * margin) // rows# 绘制表格的竖直线for i in range(cols + 1):x = margin + i * cell_widthdraw.line([(x, margin), (x, b - margin)], fill=(0, 0, 0), width=2)# 绘制表格的水平线for i in range(rows + 1):y = margin + i * cell_heightdraw.line([(margin, y), (b - margin, y)], fill=(0, 0, 0), width=2)# # color=['black','black']# color=['red','yellow','orange','blue','green','purple','pink']color=colors# 遍历每个坐标点组合for combination in selected_points:# 绘制填充为黑色的多边形# draw.polygon(combination, fill='black',outline=(255, 255, 255), width=1)draw.polygon(combination, fill=random.choice(color), outline=('black'), width=2)for i in range(rows):for j in range(cols):left = margin + j * cell_widthupper = margin + i * cell_heightright = left + cell_widthlower = upper + cell_heightif s==0:  # 无圆点,纯黑线passelif s==1: # 绘制黑色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill=('black'), width=5)else:   # # 绘制白色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)], fill='white', outline='black', width=1)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill='white', outline='black', width=1)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill='white', outline='black', width=1)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill='white', outline='black', width=1)# 绘制每个单元格的左上角、右上角、左下角、右下角的黑色圆形                    # 保存结果图像canvas.save(new + fr'\{g:05d}格{c:05d}01图纸{c:05d}.png')canvas.close()  # 关闭图像文件      print('----4、贴图用黑色色块----------')canvas = Image.new('RGB', (b, b), (255, 255, 255))draw = ImageDraw.Draw(canvas)# 绘制表格的竖直线和水平线for i in range(cols + 1):x = margin + i * cell_widthdraw.line([(x, margin), (x, b - margin)], fill='black', width=2)for i in range(rows + 1):y = margin + i * cell_heightdraw.line([(margin, y), (b - margin, y)], fill='black', width=2)# 在每个单元格中绘制两个三角形for row in range(rows):for col in range(cols):left = margin + col * cell_widthupper = margin + row * cell_heightright = left + cell_widthlower = upper + cell_height      # 随机选择三个顶点坐标points = [(left, upper), (right, upper), (left, lower), (right, lower)]# random.shuffle(points)triangle1 = tuple(points[0:3])triangle2 = tuple(points[1:4])draw.polygon(triangle1, fill='black',outline='black',width=2)# draw.polygon(triangle2, fill='white',outline='white',width=1)# 设置边框线为黑色# draw.line([(margin, margin), (b - margin, margin), (b - margin, b - margin), (margin, b - margin), (margin, margin)], fill='black', width=2)for i in range(rows):for j in range(cols):left = margin + j * cell_widthupper = margin + i * cell_heightright = left + cell_widthlower = upper + cell_heightif s==0:  # 无圆点,纯黑线passelif s==1: # 绘制黑色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill=('black'), width=5)else:   # # 绘制白色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)], fill='white', outline='black', width=1)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill='white', outline='black', width=1)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill='white', outline='black', width=1)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill='white', outline='black', width=1)# 保存结果图像canvas.save(new + fr'\{g:05d}格黑块.png')canvas.close()print('---4合并打印------')# 第3步,读取图片写入docx,合并PDFimport os,timefrom docx import Documentfrom reportlab.lib.pagesizes import letterfrom reportlab.pdfgen import canvasfrom PyPDF2 import PdfMergerfrom docx.shared import Cmprint('---5参考图合并-----')# 读取123文件夹中的所有图片地址(参考图)image_folder = newnew_folder = path+r'\零时文件夹'os.makedirs(new_folder, exist_ok=True)image_files = [os.path.join(image_folder, file) for file in os.listdir(image_folder) if file.endswith('.png')]new1=path+r'\保存1'os.makedirs(new1, exist_ok=True)# 每8个图片一组进行处理grouped_files = [image_files[:-2][i:i+6] for i in range(0, len(image_files[:-2]), 6)]print(grouped_files)# 处理每一组图片for group_index, group in enumerate(grouped_files):# 创建新的Word文档doc = Document(path+r'\模板6格.docx')print(group)# 遍历每个单元格,并插入图片for cell_index, image_file in enumerate(group):# 计算图片长宽(单位:厘米)                # 插入图片到单元格table = doc.tables[0]cell = table.cell(int(cell_index / 2), cell_index % 2)# 6列两个都是6cell_paragraph = cell.paragraphs[0]cell_paragraph.clear()run = cell_paragraph.add_run()run.add_picture(image_file, width=Cm(9.4), height=Cm(9.4))# 保存Word文档doc.save(os.path.join(new_folder, f'{group_index + 1:03d}.docx'))# 将10个docx转为PDFimport osfrom docx2pdf import convertfrom PyPDF2 import PdfFileMerger# from PyPDF4 import PdfMerger# output_folder = output_folderpdf_output_path = new1+fr'\02黑白三角{g:02d}宫格参考图.pdf'# 将所有DOCX文件转换为PDFfor docx_file in os.listdir(new_folder):if docx_file.endswith('.docx'):docx_path = os.path.join(new_folder, docx_file)convert(docx_path, docx_path.replace('.docx', '.pdf'))time.sleep(3)# 合并零时文件里所有PDF文件merger = PdfFileMerger()for pdf_file in os.listdir(new_folder):if pdf_file.endswith('.pdf'):pdf_path = os.path.join(new_folder, pdf_file)merger.append(pdf_path)time.sleep(2)# 保存合并后的PDF文件merger.write(pdf_output_path)merger.close()import shutil# 删除输出文件夹import timeshutil.rmtree(new_folder)# shutil.rmtree(new)time.sleep(2)print('---6答题卡合并(白图和黑三角卡片-----')# 读取123文件夹中的所有图片地址(参考图)image_folder = newnew_folder = path+r'\零时文件夹'      os.makedirs(new_folder, exist_ok=True)image_files = [os.path.join(image_folder, file) for file in os.listdir(image_folder) if file.endswith('.png')]# 每8个图片一组进行处理grouped_files = [image_files[-2:][i:i+2] for i in range(0, len(image_files[-2:]), 2)]print(grouped_files)for group_index, group in enumerate(grouped_files):# 创建新的Word文档doc = Document(path+r'\底图1格.docx')print(group)t=[f'黑白三角({gongge}宫格)操作卡',f'黑白三角({gongge}宫格)贴图卡']# 在单元格0,0写入“黑白三角(3宫格)操作卡”,24磅宋体for tt in range(len(t)):             table = doc.tables[tt]                # 两张表格cell = table.cell(0, 0)cell_paragraph = cell.paragraphs[0]cell_paragraph.clear()run = cell_paragraph.add_run(t[tt])run.font.name = '宋体'run.font.size = Pt(40)# 遍历每个单元格,并插入图片for cell_index, image_file in enumerate(group):# 计算图片长宽(单位:厘米)# 插入图片到单元格table = doc.tables[0]if cell_index == 0:cell = table.cell(1, 0)table = doc.tables[1]if cell_index == 1:cell = table.cell(1, 0)# else:#     continuecell_paragraph = cell.paragraphs[0]cell_paragraph.clear()run = cell_paragraph.add_run()run.add_picture(image_file, width=Cm(19.6), height=Cm(19.6))# 保存Word文档doc.save(os.path.join(new_folder, f'{group_index + 1:03d}.docx'))pdf_output_path = new1+fr'\01黑白三角{g:02d}宫格黑块底图.pdf'# pdf_output_path = path+fr'\黑白三角1-10宫格随机每款{f*ys}图共{ys}张一黑一白黑点白边黑白.pdf'# 将所有DOCX文件转换为PDFfor docx_file in os.listdir(new_folder):if docx_file.endswith('.docx'):docx_path = os.path.join(new_folder, docx_file)convert(docx_path, docx_path.replace('.docx', '.pdf'))time.sleep(1)# 合并零时文件里所有PDF文件merger = PdfFileMerger()for pdf_file in os.listdir(new_folder):if pdf_file.endswith('.pdf'):pdf_path = os.path.join(new_folder, pdf_file)merger.append(pdf_path)time.sleep(2)# 保存合并后的PDF文件merger.write(pdf_output_path)merger.close()# 删除输出文件夹            shutil.rmtree(new_folder)shutil.rmtree(new)time.sleep(5)# print('---7合并答题卡和黑白三角卡片-----')t_folder = path+r'\pdf'os.makedirs(t_folder, exist_ok=True)pdf_output_path2 = t_folder + fr'\01黑白三角{g:02d}宫格{f}张合并.pdf'       # 合并零时文件里所有PDF文件merger = PdfFileMerger()for pdf_file in os.listdir(new1):if pdf_file.endswith('.pdf'):pdf_path = os.path.join(new1, pdf_file)merger.append(pdf_path)time.sleep(2)# 保存合并后的PDF文件merger.write(pdf_output_path2)merger.close()# 删除输出文件夹            shutil.rmtree(new1)# shutil.rmtree(new)#         time.sleep(2)print('------3-10宫格全部打包-------')if s==0:pdf_output_path = newall+fr'\01-01(单页1页)黑白三角 {start}-{end}宫格 每款{f*ys}图共{ys}张 黑色边框 无小圆点.pdf'elif s==1:pdf_output_path = newall+fr'\01-02(单页1页)黑白三角 {start}-{end}宫格 每款{f*ys}图共{ys}张 黑色边框 黑色小圆点.pdf'elif s==2:pdf_output_path = newall+fr'\01-03(单页1页)黑白三角 {start}-{end}宫格 每款{f*ys}图共{ys}张 黑色边框 白色小圆点.pdf'# 合并零时文件里所有PDF文件merger = PdfFileMerger()for pdf_file in os.listdir(t_folder):if pdf_file.endswith('.pdf'):pdf_path = os.path.join(t_folder, pdf_file)merger.append(pdf_path)time.sleep(2)# 保存合并后的PDF文件merger.write(pdf_output_path)merger.close()# 删除输出文件夹shutil.rmtree(t_folder)

白点

黑点

无点

彩色三角合并版 1页1图,白点、黑点、无点,三合一

'''彩色三角图,2宫格36张,3宫格36张……适合个别化 大操作卡
01彩色三角 1页1图大操作图 彩色块 无空心点 
1、选择颜色:彩色
2、黑点、白点、无点
3、随机图片
AI对话大师,阿夏
2025年3月26日'''
import os,time
from PIL import Image, ImageDraw
from docx import Document
from docx.shared import Cm
from docx.shared import Pt
import shutil
import os
from PyPDF2 import PdfFileMerger  path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250323黑白三角图案版(彩色)'# 起始宫格数
start=int(input('开始宫格数,如2\n'))
# 最大宫格数
end=int(input('截止宫格数,如10\n'))# 黑白或彩色# 黑白或彩色
zhang=int(input('每种宫格生成多少张(一张有3份左右对称的?)比如:6张\n'))style=['0无圆点','1黑圆点','2白圆点']
# s=int(input('请选择:0:无圆点,1:黑圆点,2:白圆点\n'))for s in [0,1,2]:    # 三种样式都生成#colors=['red','yellow','orange','blue','green','purple','pink']# 选择颜色:0黑白、1彩色# 选择颜色:0彩色、1彩色for gongge in range(start,end+1): # 遍历3宫格到10宫格for ys in range(zhang,zhang+1):new = path + fr'\{gongge:02}宫格组合图片'os.makedirs(new, exist_ok=True)newall=path+r'\02单页拼图'os.makedirs(newall,exist_ok=True)radius = 5f = 6 * ys  # 一页6张b = 400  # 画布大小by = 10  # 边距print('----------1\制作白色操作图------------')for g in range(gongge,gongge+1):for c in range(1, f + 1):# 创建bxb的画布canvas = Image.new('RGB', (b, b), (255, 255, 255))draw = ImageDraw.Draw(canvas)# 定义表格的行数和列数、边距rows = gcols = gmargin = by# 计算单元格的宽度和高度cell_width = (b - 2 * margin) // colscell_height = (b - 2 * margin) // rows# 绘制表格的竖直线for i in range(cols + 1):x = margin + i * cell_widthdraw.line([(x, margin), (x, b - margin)], fill=(0, 0, 0), width=2)# 绘制表格的水平线for i in range(rows + 1):y = margin + i * cell_heightdraw.line([(margin, y), (b - margin, y)], fill=(0, 0, 0), width=2)# 绘制每个单元格的左上角、右上角、左下角、右下角的黑色圆形                    for i in range(rows):for j in range(cols):left = margin + j * cell_widthupper = margin + i * cell_heightright = left + cell_widthlower = upper + cell_heightif s==0:  # 无圆点,纯黑线passelif s==1: # 绘制黑色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill=('black'), width=5)else:   # # 绘制白色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)], fill='white', outline='black', width=1)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill='white', outline='black', width=1)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill='white', outline='black', width=1)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill='white', outline='black', width=1)# 保存画布mb = f'{g:05d}格模板.png'canvas.save(new + fr'\{mb}')print('---2、制作彩色参考图,计算三个坐标点的黑色三角形不重复图案有几个-------')# 创建一个空列表用于存储单元格的坐标cell_coordinates = []# 计算每个单元格的四个顶点坐标for row in range(rows):for col in range(cols):top_left = (margin + col * cell_width, margin + row * cell_height)top_right = (margin + (col + 1) * cell_width, margin + row * cell_height)bottom_left = (margin + col * cell_width, margin + (row + 1) * cell_height)bottom_right = (margin + (col + 1) * cell_width, margin + (row + 1) * cell_height)# 将四个顶点坐标添加到列表中cell_coordinates.append([top_left, top_right, bottom_left, bottom_right])# print(cell_coordinates)# print(len(cell_coordinates))# 16# [[(0, 0), (400, 0), (0, 400), (400, 400)], [(400, 0), (b, 0), (400, 400), (b, 400)], [(0, 400), (400, 400), (0, b), (400, b)], [(400, 400), (b, 400), (400, b), (b, b)]]import randomimport oscombinations=[]# 存储选取的点,随机生成坐标(样式)排除重复,生成10份样式不同的模版while len(combinations) < f:selected_points = []for points in cell_coordinates:selected_points.append(tuple(random.sample(points, 3)))combinations.append(tuple(selected_points))print(combinations)print(len(combinations))#  10print('---3、制作三个坐标点的黑色三角形(4个)-------')from PIL import Image, ImageDraw            # 定义要绘制的坐标点组合for point_combination in combinations:print(point_combination)# 清空selected_points列表selected_points = []h=1# 遍历每个坐标点组合for combination in point_combination:# 从每个列表中随机选取三个点,并加入到selected_points中selected_points.append(tuple(random.sample(combination, 3)))# 读取图像文件#                创建bxb的画布canvas = Image.new('RGB', (b,b), (255, 255, 255))draw = ImageDraw.Draw(canvas)# 定义表格的行数和列数、边距rows = gcols = gmargin = by# 计算单元格的宽度和高度cell_width = (b - 2 * margin) // colscell_height = (b - 2 * margin) // rows# 绘制表格的竖直线for i in range(cols + 1):x = margin + i * cell_widthdraw.line([(x, margin), (x, b - margin)], fill=(0, 0, 0), width=2)# 绘制表格的水平线for i in range(rows + 1):y = margin + i * cell_heightdraw.line([(margin, y), (b - margin, y)], fill=(0, 0, 0), width=2)# # color=['black','black']# color=['red','yellow','orange','blue','green','purple','pink']color=colors# 遍历每个坐标点组合for combination in selected_points:# 绘制填充为黑色的多边形# draw.polygon(combination, fill='black',outline=(255, 255, 255), width=1)draw.polygon(combination, fill=random.choice(color), outline=(0, 0, 0), width=2)for i in range(rows):for j in range(cols):left = margin + j * cell_widthupper = margin + i * cell_heightright = left + cell_widthlower = upper + cell_heightif s==0:  # 无圆点,纯黑线passelif s==1: # 绘制黑色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill=('black'), width=5)else:   # # 绘制白色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)], fill='white', outline='black', width=1)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill='white', outline='black', width=1)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill='white', outline='black', width=1)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill='white', outline='black', width=1)# 绘制每个单元格的左上角、右上角、左下角、右下角的黑色圆形# 保存结果图像canvas.save(new + fr'\{g:05d}格{c:05d}01图纸{c:05d}.png')canvas.close()  # 关闭图像文件print('----4、贴图用黑色色块----------')for yy in colors:print(yy)canvas = Image.new('RGB', (b, b), (255, 255, 255))draw = ImageDraw.Draw(canvas)# 绘制表格的竖直线和水平线for i in range(cols + 1):x = margin + i * cell_widthdraw.line([(x, margin), (x, b - margin)], fill='black', width=2)# draw.line([(x, margin), (x, b - margin)], fill=yy, width=2)for i in range(rows + 1):y = margin + i * cell_heightdraw.line([(margin, y), (b - margin, y)], fill='black', width=2)# draw.line([(margin, y), (b - margin, y)], fill=yy, width=2)# # 在每个单元格中绘制两个三角形for row in range(rows):for col in range(cols):left = margin + col * cell_widthupper = margin + row * cell_heightright = left + cell_widthlower = upper + cell_height# 随机选择三个顶点坐标points = [(left, upper), (right, upper), (left, lower), (right, lower)]# random.shuffle(points)triangle1 = tuple(points[0:3])triangle2 = tuple(points[1:4])# 全部黑色填充用黑色边框,白色填充用白色边框draw.polygon(triangle1, fill=yy,outline='black',width=2) # 彩色填充黑色边框(粗2)# draw.polygon(triangle1, fill=yy,outline=yy,width=0)   # 彩色填充黑彩色边框(细1)# draw.polygon(triangle2, fill='white',outline='black',width=2)# 设置边框线为黑色# draw.line([(margin, margin), (b - margin, margin), (b - margin, b - margin), (margin, b - margin), (margin, margin)], fill='white', width=2)for i in range(rows):for j in range(cols):left = margin + j * cell_widthupper = margin + i * cell_heightright = left + cell_widthlower = upper + cell_heightif s==0:  # 无圆点,纯黑线passelif s==1: # 绘制黑色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill=('black'), width=5)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill=('black'), width=5)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill=('black'), width=5)else:   # # 绘制白色小圆点draw.ellipse([(left - radius, upper - radius), (left + radius, upper + radius)], fill='white', outline='black', width=1)draw.ellipse([(right - radius, upper - radius), (right + radius, upper + radius)],fill='white', outline='black', width=1)draw.ellipse([(left - radius, lower - radius), (left + radius, lower + radius)],fill='white', outline='black', width=1)draw.ellipse([(right - radius, lower - radius), (right + radius, lower + radius)],fill='white', outline='black', width=1)# 保存结果图像canvas.save(new + fr'\{g:05d}格黑块{yy}.png')canvas.close()print('---4合并打印------')# 第3步,读取图片写入docx,合并PDFimport os,timefrom docx import Documentfrom reportlab.lib.pagesizes import letterfrom reportlab.pdfgen import canvasfrom PyPDF2 import PdfMergerfrom docx.shared import Cmprint('---5参考图合并-----')# 读取123文件夹中的所有图片地址(参考图)image_folder = newnew_folder = path+r'\零时文件夹'os.makedirs(new_folder, exist_ok=True)image_files = [os.path.join(image_folder, file) for file in os.listdir(image_folder) if file.endswith('.png')]new1=path+r'\保存1'os.makedirs(new1, exist_ok=True)# -8张grouped_files = [image_files[:f][i:i+6] for i in range(0, len(image_files[:f]), 6)]print(grouped_files)# 处理每一组图片for group_index, group in enumerate(grouped_files):# 创建新的Word文档doc = Document(path+r'\模板6格.docx')print(group)# 遍历每个单元格,并插入图片for cell_index, image_file in enumerate(group):# 计算图片长宽(单位:厘米)                # 插入图片到单元格table = doc.tables[0]cell = table.cell(int(cell_index / 2), cell_index % 2)# 6列两个都是6cell_paragraph = cell.paragraphs[0]cell_paragraph.clear()run = cell_paragraph.add_run()run.add_picture(image_file, width=Cm(9.4), height=Cm(9.4))# 保存Word文档doc.save(os.path.join(new_folder, f'{group_index + 1:03d}.docx'))               # 将10个docx转为PDFimport osfrom docx2pdf import convertfrom PyPDF2 import PdfFileMergerpdf_output_path = new1+fr'\02彩色三角{g:02d}宫格参考图.pdf'# 将所有DOCX文件转换为PDFfor docx_file in os.listdir(new_folder):if docx_file.endswith('.docx'):docx_path = os.path.join(new_folder, docx_file)convert(docx_path, docx_path.replace('.docx', '.pdf'))time.sleep(3)# 合并零时文件里所有PDF文件merger = PdfFileMerger()for pdf_file in os.listdir(new_folder):if pdf_file.endswith('.pdf'):pdf_path = os.path.join(new_folder, pdf_file)merger.append(pdf_path)time.sleep(2)# 保存合并后的PDF文件merger.write(pdf_output_path)merger.close()import shutil# 删除输出文件夹import timeshutil.rmtree(new_folder)# shutil.rmtree(new)time.sleep(2)print('---6答题卡合并(白图和黑三角卡片-----')# 读取123文件夹中的所有图片地址(参考图)image_folder = newnew_folder = path+r'\零时文件夹1'      os.makedirs(new_folder, exist_ok=True)# 只要文件名image_name = [file for file in os.listdir(image_folder) if file.endswith('.png')]# 只要最后几个o = len(image_name)o1=o-fo2=-1flattened_names= [image_name[f:][i:i+o1] for i in range(0, len(image_name[f:]), o1)]print(flattened_names)# 去掉一层嵌套flattened_name = [item for sublist in flattened_names for item in sublist]print(flattened_name)t=[f'彩色三角({gongge}宫格)操作卡']t2=[f'彩色三角({gongge}宫格)贴图卡']*(o1-1)# 贴图卡后面添加颜色for t3 in range(len(t2)):t.append(t2[t3]+'('+flattened_name[t3+1][8:-4]+')')print(t)# 文件名+路径image_files = [os.path.join(image_folder, file) for file in os.listdir(image_folder) if file.endswith('.png')]flattened_lists= [image_files[f:][i:i+o1] for i in range(0, len(image_files[f:]), o1)]print(flattened_lists)# 多余的图flattened_list = [item for sublist in  flattened_lists for item in sublist]print(flattened_list)# # #  ['彩色三角(2宫格)操作卡', '彩色三角(2宫格)贴图卡(red)', '彩色三角(2宫格)贴图卡(yellow)', '彩色三角(2宫格)贴图卡(orange)', '彩色三角(2宫格)贴图卡(blue)', '彩色三角 # # # (2宫格)贴图卡(green)', '彩色三角(2宫格)贴图卡(purple)', '彩色三角(2宫格)贴图卡(pink)']for group_index in range(len(flattened_list)):print(group_index)        # 创建新的Word文档# 0doc = Document(path+r'\底图0格.docx')# 在单元格0,0写入“彩色三角(3宫格)操作卡”,24磅宋体# for tt in range(len(t)):             table = doc.tables[0]                # 两张表格cell = table.cell(0, 0)cell_paragraph = cell.paragraphs[0]cell_paragraph.clear()run = cell_paragraph.add_run(t[group_index])run.font.name = '宋体'run.font.size = Pt(40)                # 插入图片# if cell_index == 0:cell = table.cell(1, 0)                          cell_paragraph = cell.paragraphs[0]cell_paragraph.clear()run = cell_paragraph.add_run()image_file1 = flattened_list[group_index]# image_file1=str(flattened_lists[group_index])print(image_file1)run.add_picture(image_file1, width=Cm(19.6), height=Cm(19.6))# 保存Word文档doc.save(os.path.join(new_folder, f'{group_index + 1:03d}.docx'))pdf_output_path = new1+fr'\01彩色三角{g:02d}宫格黑块底图.pdf'# pdf_output_path = path+fr'\彩色三角1-10宫格随机每款{f*ys}图共{ys}张一黑一白黑点白边彩色.pdf'# 将所有DOCX文件转换为PDFfor docx_file in os.listdir(new_folder):if docx_file.endswith('.docx'):docx_path = os.path.join(new_folder, docx_file)convert(docx_path, docx_path.replace('.docx', '.pdf'))time.sleep(3)# 合并零时文件里所有PDF文件merger = PdfFileMerger()for pdf_file in os.listdir(new_folder):if pdf_file.endswith('.pdf'):pdf_path = os.path.join(new_folder, pdf_file)merger.append(pdf_path)time.sleep(3)# 保存合并后的PDF文件merger.write(pdf_output_path)merger.close()# 删除输出文件夹            shutil.rmtree(new_folder)time.sleep(2)# print('---7合并答题卡和彩色三角卡片-----')t_folder = path+r'\pdf'os.makedirs(t_folder, exist_ok=True)pdf_output_path2 = t_folder + fr'\01彩色三角{g:02d}宫格{f}张合并.pdf'       # 合并零时文件里所有PDF文件merger = PdfFileMerger()for pdf_file in os.listdir(new1):if pdf_file.endswith('.pdf'):pdf_path = os.path.join(new1, pdf_file)merger.append(pdf_path)time.sleep(2)# 保存合并后的PDF文件merger.write(pdf_output_path2)merger.close()# 删除输出文件夹            shutil.rmtree(new1)print('------3-10宫格全部打包-------')# pdf_output_path = path + fr'\01彩色三角全黑块({start}-{end})宫格{zhang*(end-start+1)}张参考图1套操作板.pdf' if s==0:pdf_output_path = newall+fr'\02-01(单页1页)彩色三角 {start}-{end}宫格 每款{f*ys}图共{ys}张 黑色边框 无小圆点.pdf'elif s==1:pdf_output_path = newall+fr'\02-02(单页1页)彩色三角 {start}-{end}宫格 每款{f*ys}图共{ys}张 黑色边框 黑色小圆点.pdf'elif s==2:pdf_output_path = newall+fr'\02-03(单页1页)彩色三角 {start}-{end}宫格 每款{f*ys}图共{ys}张 黑色边框 白色小圆点.pdf'#   合并零时文件里所有PDF文件merger = PdfFileMerger()for pdf_file in os.listdir(t_folder):if pdf_file.endswith('.pdf'):pdf_path = os.path.join(t_folder, pdf_file)merger.append(pdf_path)time.sleep(2)# 保存合并后的PDF文件merger.write(pdf_output_path)merger.close()# 删除输出文件夹shutil.rmtree(t_folder)

黑点

白点

无点

彩色快一共7种颜色的色块

好了,测试完毕,生成正式的2-10宫格黑白、彩色的三款样式,每个宫格6张(36图),彩色有7种贴图卡

因为合并了,所以只出现一次安全提示

生成了2个小时,才完成黑白的三角的三款


文章转载自:

http://wnbmn2ye.xffns.cn
http://utRiwJFj.xffns.cn
http://aXBOLWTs.xffns.cn
http://upIPf9im.xffns.cn
http://UQJQMySY.xffns.cn
http://eLssk3Ra.xffns.cn
http://jkX1c0w5.xffns.cn
http://b6hgmZgb.xffns.cn
http://hhf0AiEn.xffns.cn
http://Nf26vdNK.xffns.cn
http://OtZD7UK2.xffns.cn
http://3GknGjUD.xffns.cn
http://A8lT4vX2.xffns.cn
http://hNzSYJQp.xffns.cn
http://przEEFvI.xffns.cn
http://OYhcf5B0.xffns.cn
http://yhMoiBSb.xffns.cn
http://owXKitAu.xffns.cn
http://XCS7QCYM.xffns.cn
http://v84PXJrF.xffns.cn
http://jnUy0Mol.xffns.cn
http://8wXMS2jN.xffns.cn
http://yuQs9Kti.xffns.cn
http://Cnl2wE7q.xffns.cn
http://nJo75rWx.xffns.cn
http://1GwaMoIu.xffns.cn
http://vPi5kZZV.xffns.cn
http://8WvoDHY9.xffns.cn
http://AZNwzNgc.xffns.cn
http://483VVJao.xffns.cn
http://www.dtcms.com/wzjs/634334.html

相关文章:

  • 木马科技网站建设企业营销型网站设计
  • 公司网站建设北京长沙网站公司品牌
  • 天津七七一网站建设有限公司怎么样东莞微信网站
  • 没有自己的境外网站怎么做谷歌推广精密模具东莞网站建设
  • 做效果图的网站网站如何兼容大多浏览器
  • 有没有便宜的网站建设ckeditor wordpress
  • 如何自己做加盟网站电商网站搜索引擎怎么做
  • 网站建设服务那一个便宜网站建设路由设置
  • 利用网站宣传腐倡廉建设工作报道wordpress屏蔽连接
  • 河源网站制作国内永久免费的crm系统软件
  • 珠海网站建设多少钱上海头条新闻最新消息
  • 介绍小说的网站模板下载地址国外手机模板网站
  • 做国际网站有用吗时装网站的建设
  • 绵阳网站建设网站建设哈尔滨的网络优化能做么
  • 艺术网站建设东莞开发一个app多少钱
  • 汕头网站建设推广价格wordpress首页展示分类页面
  • 广东省建设厅网站蒙古文门户网站建设督导
  • 绍兴建站模板厂家做h的小说网站有哪些
  • 新网站如何做流量做自己视频教程的网站
  • 从化网站建设推广任县网站建设网络公司
  • 怎样更新网站宁波甬城配网建设有限公司
  • 赣州专业企业网站建设wordpress 管理员密码忘记
  • 怎么建淘宝客网站简洁大气企业网站源码 后台
  • 兴县做网站的公司西安网站开发工资
  • 马鞍山网站设计价格上海境外输入
  • 专业 网站建设怎么写代码做网站
  • 深圳品牌网站建设公司常熟市住房建设局网站
  • 有效的小企业网站建设怎么快速推广app
  • 半岛建设公司网站网站设计与推广
  • 网站开发实验报告总结老鬼seo