作品展示:
背景需求
使用红豆空心黑体制作幼儿字帖(涂色版)
【教学类-35-22】正式版 20240129名字字卡3.0(15CM正方形手工纸、先男后女,页眉是黑体包含全名,名字是红豆空心黑体)-CSDN博客文章浏览阅读425次,点赞11次,收藏9次。【教学类-35-22】正式版 20240129名字字卡3.0(15CM正方形手工纸、先男后女,页眉是黑体包含全名,名字是红豆空心黑体)https://blog.csdn.net/reasonsummer/article/details/135917732
中4班孩子的83个字中有2个字没有显示为空心字
说明:红豆空心黑体不能把所有汉字转为空心字。
有那些汉字不能转成红豆空心黑体?
测试一:学生名单(2022年9月全园名单测试)
'''
查询红豆空心黑体无法识别那些汉字
作者:阿夏
时间:2024年01月30日
'''
from pandas import DataFrame, Series
import pandas as pd
import numpy as np
import xlrd
from xpinyin import Pinyinprint('----------第1步:读取EWXCEL里面的所有名字,变成单字,去除重复字-----------')# 读取列
worksheet = xlrd.open_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\红豆字体缺失\202309全部幼儿按学号639人.xls')
sheet_names= worksheet.sheet_names()
# print(sheet_names)for sheet_name in sheet_names:sheet = worksheet.sheet_by_name(sheet_name)rows = sheet.nrows # 获取行数cols = sheet.ncols # 获取列数,尽管没用到all_content = []cols = sheet.col_values(1) # 获取第二列内容: 姓名。数据格式为此数据的原有格式(原:字符串,读取:字符串; 原:浮点数, 读取:浮点数)print(cols[1:])print('多少人',len(cols[1:]))# 多少人 639# ['张三', '李四', '王五刘', '朝气吧'……]# print(type(cols[1:])) #查看数据类型 <class 'list'># 读取名字里的每一个字,第一行不要
all=[]
for x in cols[1:]:for y in x:all.append(y)
print('去重前的单字数量',len(all))
# print(all)
# 去重前的单字数量 1872all=set(list(all))
print('去重后的单字数量',len(all))
# print(len(all))
# 去重后的单字数量 548
# print('----------第2步:把汉字写入word,20磅 红豆空心黑体-----------')from docx import Document # 导入Document类,用于创建文档
from docx.shared import Pt, RGBColor # 导入Pt类和RGBColor类,用于设置字体大小和颜色
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT # 导入WD_PARAGRAPH_ALIGNMENT类,用于设置对齐方式
from docx.oxml.shared import OxmlElement # 导入OxmlElement类,用于修改文本样式
from docx.oxml.ns import qn # 导入qn类,用于中文字符集的设置doc = Document() # 创建一个空白Word文档# 设置默认字体、字号和中文字体
doc.styles['Normal'].font.size = Pt(60) # 设置默认字号为12号字体
doc.styles['Normal'].font.name = u'红豆空心黑体' # 设置默认字体为楷体
doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'红豆空心黑体') # 设置中文字体为宋体# 添加第一个段落
paragraph1 = doc.add_paragraph() # 创建一个段落对象
paragraph1.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 设置段落文字居中对齐
for k in all:run1 = paragraph1.add_run(k)# 设置英文字体run1.font.name = '红豆空心黑体'# 设置中文字体run1._element.rPr.rFonts.set(qn('w:eastAsia'), u'红豆空心黑体')# 设置字体大小run1.font.size = Pt(60)# 设置加粗run1.font.bold = Truedoc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\红豆字体缺失\test.docx') #保存才能看到结果from docx2pdf import convert
# docx 文件另存为PDF文件
inputFile = r'C:\Users\jg2yXRZ\OneDrive\桌面\红豆字体缺失\test.docx'# 要转换的文件:已存在
outputFile = r'C:\Users\jg2yXRZ\OneDrive\桌面\红豆字体缺失\test.pdf' # 要生成的文件:不存在
# 先创建 不存在的 文件
f1 = open(outputFile,'w')
f1.close()
# 再转换往PDF中写入内容
convert(inputFile, outputFile)# time.sleep(2)
# https://www.cnblogs.com/fengfenggirl/p/python_worddb.html
结果展示——必须在word里才能看到
“红豆空心黑体”不能识别的汉字(黑心)很多
虽然黑心字体不是空心字,但word默认为“红豆空心黑体”,
所以无法通过识别字体名称来提取这些非空心的字体。只能手动选择这些字
玥、锜、玗、琇、祎、翾、淏、爀、浵、旸、晞、旻、珵、瑄、璟、晅、橒、喆、珺、珣、妘
548个汉字,一共21个无法空心显示的字 占比3.83%
测试二:常用汉字学生名单(2022年9月全园名单测试)
中学生必须掌握的3500个常用汉字中学生必须掌握的3500个常用汉字https://mp.weixin.qq.com/s?__biz=MzU5NDc3NDA5Mw==&mid=2247484193&idx=2&sn=4e6003b6ab05b374b76c84d84aaff997&chksm=fe7d5203c90adb1561c3f1dbad8b9c0c3308a69916740c1ea1d42d3f6649c2da37a0382e3c53&scene=27
去掉括号里的拼音,去掉空格,去掉回车
3500常用字
只有一个字显示显示不出
扞
1个字无法显示
玥、锜、玗、琇、祎、翾、淏、爀、浵、旸、晞、旻、珵、瑄、璟、晅、橒、喆、珺、珣、妘、扞
目前搜索得知以上22个字无法用红豆空心黑体显示,需要改成文艺空心黑体。
有机会再扩大搜索量,1万字汉字进行批量