作品展示


背景需求:
马上就要过年了,家家户户大门上贴上对联和福字

我想用正方形红色手工纸(15CM)也做一个幼儿描线版的福字

问题一:福字顺时针旋转45度
打印纸上制作福字,需要让这个字顺时针旋转45度,形成菱形,普通的word表格插入文字,只能书写横向和纵向文字。无法实现倾斜文字.
问题二:幼儿描边速度太快,换成空心字涂色
如果只是对灰色的福字描线,我觉得幼儿很快就完成了,
所以准备把福字改成空心字体,让幼儿用黑色蜡笔(笔头粗,容易脏、超过边线、但是纸张不渗透)、黑色记号笔(涂色精准,但纸张容易晕湿碎裂、背面渗色),铅笔涂色(相对适宜,但是颜色不黑,一会儿就要用卷笔刀卷头了)
【教学类-35-23】正式版 20240202名字字卡4.0(15CM正方形手工纸、先男后女,页眉是黑体包含全名,姓名是红豆空心黑体 部分名字变成文艺空心黑体)-CSDN博客文章浏览阅读644次,点赞16次,收藏7次。【教学类-35-23】正式版 20240202名字字卡4.0(15CM正方形手工纸、先男后女,页眉是黑体包含全名,姓名是红豆空心黑体 部分名字变成文艺空心黑体)https://blog.csdn.net/reasonsummer/article/details/135980717
解决方案:
问题一:可以用“word形状/文本框”这个神奇的功能实现福字倾斜、倒置,
问题二:可以换成五款空心字(PPT效果展示)

下面来制作Word模板(文本框字体或形状字体)

页面设置

插入形状-菱形(用Shift拉出正菱形)

设置 字体(空心字) 字体大小
五款空心字中,我比较中意“华光通心圆_CNKI”

文本框中字体的段落设置(让文字尽量在菱形的中心)


模板设置好了,一个“福字”,根本不需要Python,所以我准备了15个吉祥字,让幼儿随机抽取红色手工纸,进行文字涂色。
['福','乐','安','康','喜','吉','瑞','美','熙','彩','美','顺','春','龙','爱']
这就涉及了WORD文本框内容的替换,网上相关信息很少,以下这篇帮我实现了需求
python插入、读写word中的文本框(基于win32com) - 知乎在word中插入文本框在正文中插入文本框 插入效果(浮于文字上) import win32com.client as win32 from win32com.client import constants import os curr_path = os.getcwd() doc_app = win32.gencache.EnsureDis…
https://zhuanlan.zhihu.com/p/479015404
代码展示(包含简体和繁体)
'''
目的:福字菱形纸1.0-华光通心圆_CNKI 段落固定值310 字体大小290
作者:阿夏
时间:2024年2月3日
'''# https://zhuanlan.zhihu.com/p/479015404
# # 在word中插入文本框
# # 打开一个已经存在的word,写入一个文本框,内容是123
# doc_app = win32.gencache.EnsureDispatch('Word.Application')#打开word应用程序
# doc_app.Visible =1#设置应用程序可见
# doc = doc_app.Documents.Open(r'C:\Users\jg2yXRZ\OneDrive\桌面\福字\福字12.docx')#打开文档# shp = doc.Shapes.AddTextbox(Orientation=1, Left=100, Top=100, Width=100, Height=100)
# shp.TextFrame.TextRange.Text = '123'#编辑文本框的内容
# # 另存为
# new_file_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\福字\福字12_new.docx' # 新文件路径和名称
# doc.SaveAs(new_file_path) # 另存为新文件
# # 关闭兼容模式,退出原始模板
# doc.Convert()
# doc.Close() # 关闭原始文件
# doc_app.Quit() # 退出Word应用程序# 打开一个已经存在的word,看有几个文本框
import win32com.client as win32
from win32com.client import constants
import os,timezt='华光通心圆_CNKI'# # # print('----------第2步:新建一个临时文件夹------------')
# # # # # 新建一个”装N份word和PDF“的文件夹
# os.mkdir
imagePath1=r'C:\Users\jg2yXRZ\OneDrive\桌面\福字\零时Word'
if not os.path.exists(imagePath1): # 判断存放图片的文件夹是否存在os.makedirs(imagePath1) # 若图片文件夹不存在就创建# 简体
TXT=['福','乐','安','康','喜','吉','瑞','美','熙','彩','美','顺','春','龙','爱']
# 繁体
# TXT=['福','樂','安','康','喜','吉','瑞','美','熙','彩','美','順','春','龍','愛']print(len(TXT))
# 15字for nn in range(len(TXT)):doc_app = win32.gencache.EnsureDispatch('Word.Application')#打开word应用程序doc_app.Visible =0 #设置应用程序可见 word不要打开doc = doc_app.Documents.Open(r'C:\Users\jg2yXRZ\OneDrive\桌面\福字\福字_华光通心圆_CNKI.docx' )#创建新得文档# # 正文几个文本框# print(doc.Shapes.Count)# # 提取正文里面的文本框的内容for shape in doc.Shapes:# print(shape.TextFrame.TextRange.Text)wrapFormat = shape.WrapFormat wrapFormat.Type = constants.wdWrapThrough# # 更改文本框的内容 默认和原来的格式一样(字体 大小 颜色)shape.TextFrame.TextRange.Text = TXT[nn]# # 设置文本框中字体颜色和大小# textFont = shape.TextFrame.TextRange.Font # # textFont.ColorIndex = constants.wdGreen #设置字体颜色# # textFont.Size = 40 # 设置字体,单位为磅,可以网上搜索到字体大小和磅的对应关系# # 设置文本框颜色# # LineFormat = shp.Line# # LineFormat.ForeColor.RGB = 0xFFFFFF # 设置文本框颜色为白色# 页眉页脚文本框内容# wd_section = doc.Sections(1)#注意section内部成员编号是从1开始的# print(wd_section.Headers(constants.wdHeaderFooterPrimary).Shapes.Count)# print(wd_section.Footers(constants.wdHeaderFooterPrimary).Shapes.Count)# 提取页眉页脚里面的文本框的内容# for shape in wd_section.Footers(constants.wdHeaderFooterPrimary).Shapes:# print(shape.TextFrame.TextRange.Text)# doc.Convert()# 另存为new_file_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\福字\零时Word\{}.docx'.format('%02d'%nn) # 新文件路径和名称 doc.SaveAs(new_file_path) # 另存为新文件 # 关闭模板 doc.Close() # 关闭原始文件 doc_app.Quit() # 退出Word应用程序from docx2pdf import convert# docx 文件另存为PDF文件inputFile = r'C:/Users/jg2yXRZ/OneDrive/桌面/福字/零时Word/{}.docx'.format('%02d'%nn) # # 要转换的文件:已存在outputFile = r'C:/Users/jg2yXRZ/OneDrive/桌面/福字/零时Word/{}.pdf'.format('%02d'%nn) # 要生成的文件:不存在# 先创建 不存在的 文件f1 = open(outputFile, 'w')f1.close()# 再转换往PDF中写入内容convert(inputFile, outputFile)time.sleep(1)print('----------第4步:把都有PDF合并为一个打印用PDF------------')# 多个PDF合并(CSDN博主「红色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205)
import os
from PyPDF2 import PdfMerger
target_path = 'C:/Users/jg2yXRZ/OneDrive/桌面/福字/零时Word'
pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
pdf_lst.sort()
file_merger = PdfMerger()
for pdf in pdf_lst:print(pdf)file_merger.append(pdf)
file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/福字/(打印合集)吉祥字简体 {}({}人共{}张).pdf".format(zt,len(TXT),len(TXT)))
# file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/福字/(打印合集)吉祥字繁体 {}({}人共{}张).pdf".format(zt,len(TXT),len(TXT)))
file_merger.close()
# doc.Close()# print('----------第5步:删除临时文件夹------------')
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/福字/零时Word') #递归删除文件夹,即:删除非空文件夹o
终端运行:
直接运行不用参数
运行结果:

简体版本:
['福','乐','安','康','喜','吉','瑞','美','熙','彩','美','顺','春','龙','爱']

结论:华光通心圆_CNKI
可以识别11个简体字'福','安','康','喜','吉','瑞','美','熙','彩','美','春',]
无法识别4个简体字['乐'、'顺'、'龙'、'爱'],默认为宋体.
繁体版本:
前期我在使用“文鼎标楷国字体”时,知道某些简体字改成繁体字,就能识别,
【教学类-44-02】20231226阿拉伯数字字帖的字体(二)——文鼎标楷国字体 AR StdKaiGDLB5 Md(虚线字体)_ar kaib5std md-CSDN博客文章浏览阅读804次,点赞25次,收藏8次。【教学类-44-02】20231226阿拉伯数字字帖的字体(二)——文鼎标楷国字体 AR StdKaiGDLB5 Md(虚线字体)_ar kaib5std md
https://blog.csdn.net/reasonsummer/article/details/135253842因此我用Word简体转繁体功能,试试是否能转换



乐=樂
顺=順
龙=龍
爱=愛
把繁体字放入列表

['福','樂','安','康','喜','吉','瑞','美','熙','彩','美','順','春','龍','愛']

结论:华光通心圆_CNKI可以识别
11个简体['福','安','康','喜','吉','瑞','美','熙','彩','美','春',]和
4个繁体字['乐-樂'、'顺=順'、'龙=龍'、'爱=愛']。
优势:
五款空心字体中,华光通心圆_CNKI 的边线粗细、字形结构、艺术性都是最适合幼儿涂色的。同时考虑作为单个吉祥字招贴,繁体字书法也可以使用。
不足:
华光通心圆_CNKI需要对所有文字进行预测试,把不能空心的汉字转成繁体,还是有点繁琐。




