Skip to content

Commit 2f1b2cb

Browse files
authored
Update sourcehantocl.py
1 parent 3589527 commit 2f1b2cb

File tree

1 file changed

+108
-21
lines changed

1 file changed

+108
-21
lines changed

main/sourcehantocl.py

+108-21
Original file line numberDiff line numberDiff line change
@@ -198,26 +198,97 @@ def creattmp(mch, pun, simp):
198198
del font['glyf'][v1]
199199

200200
print('正在设置字体名称...')
201-
nname=list()
202-
for nj in font['name']:
203-
if nj['languageID']==1041:
204-
nk=dict(nj)
205-
ns=dict(nj)
206-
nt=dict(nj)
207-
nh=dict(nj)
208-
nk['languageID']=1042
209-
nk['nameString']=nk['nameString'].replace('源ノ明朝', '본명조').replace('源ノ角ゴシック', '본고딕').replace('源ノ等幅', '본모노')
210-
ns['languageID']=2052
211-
ns['nameString']=ns['nameString'].replace('源ノ明朝', '思源宋体').replace('源ノ角ゴシック', '思源黑体').replace('源ノ等幅', '思源等宽')
212-
nt['languageID']=1028
213-
nt['nameString']=nt['nameString'].replace('源ノ明朝', '思源宋體').replace('源ノ角ゴシック', '思源黑體').replace('源ノ等幅', '思源等寬')
214-
nh['languageID']=3076
215-
nh['nameString']=nh['nameString'].replace('源ノ明朝', '思源宋體 香港').replace('源ノ角ゴシック', '思源黑體 香港').replace('源ノ等幅', '思源等寬 香港')
216-
nname.append(nk)
217-
nname.append(ns)
218-
nname.append(nt)
219-
nname.append(nh)
220-
font['name']=font['name']+nname
201+
if setname=='1':
202+
nname=list()
203+
for nj in font['name']:
204+
if nj['languageID']==1041:
205+
nk=dict(nj)
206+
ns=dict(nj)
207+
nt=dict(nj)
208+
nh=dict(nj)
209+
nk['languageID']=1042
210+
nk['nameString']=nk['nameString'].replace('源ノ明朝', '본명조').replace('源ノ角ゴシック', '본고딕').replace('源ノ等幅', '본모노')
211+
ns['languageID']=2052
212+
ns['nameString']=ns['nameString'].replace('源ノ明朝', '思源宋体').replace('源ノ角ゴシック', '思源黑体').replace('源ノ等幅', '思源等宽')
213+
nt['languageID']=1028
214+
nt['nameString']=nt['nameString'].replace('源ノ明朝', '思源宋體').replace('源ノ角ゴシック', '思源黑體').replace('源ノ等幅', '思源等寬')
215+
nh['languageID']=3076
216+
nh['nameString']=nh['nameString'].replace('源ノ明朝', '思源宋體 香港').replace('源ノ角ゴシック', '思源黑體 香港').replace('源ノ等幅', '思源等寬 香港')
217+
nname.append(nk)
218+
nname.append(ns)
219+
nname.append(nt)
220+
nname.append(nh)
221+
font['name']=font['name']+nname
222+
elif setname=='2':
223+
nname=list()
224+
for nj in font['name']:
225+
if nj['languageID']==1041:
226+
ns=dict(nj)
227+
nt=dict(nj)
228+
nh=dict(nj)
229+
ns['languageID']=2052
230+
ns['nameString']=ns['nameString'].replace('源ノ明朝', '尙古明体').replace('源ノ角ゴシック', '尙古黑体').replace('源ノ等幅', '尙古等宽')
231+
nt['languageID']=1028
232+
nt['nameString']=nt['nameString'].replace('源ノ明朝', '尙古明體').replace('源ノ角ゴシック', '尙古黑體').replace('源ノ等幅', '尙古等寬')
233+
nh['languageID']=3076
234+
nh['nameString']=nh['nameString'].replace('源ノ明朝', '尙古明體 香港').replace('源ノ角ゴシック', '尙古黑體 香港').replace('源ノ等幅', '尙古等寬 香港')
235+
nname.append(ns)
236+
nname.append(nt)
237+
nname.append(nh)
238+
#elif nj['nameID']>0 and nj['nameID']<7:
239+
else:
240+
ne=dict(nj)
241+
ne['nameString']=ne['nameString'].replace('Source Han', 'Advocate Ancient').replace('SourceHan', 'AdvocateAncient')
242+
nname.append(ne)
243+
font['name']=nname
244+
if 'CFF_' in font:
245+
font['CFF_']['fontName']=font['CFF_']['fontName'].replace('SourceHan', 'AdvocateAncient')
246+
font['CFF_']['fullName']=font['CFF_']['fullName'].replace('Source Han', 'Advocate Ancient')
247+
font['CFF_']['familyName']=font['CFF_']['familyName'].replace('Source Han', 'Advocate Ancient')
248+
if 'fdArray' in font['CFF_']:
249+
nfd=dict()
250+
for k in font['CFF_']['fdArray'].keys():
251+
nfd[k.replace('SourceHan', 'AdvocateAncient')]=font['CFF_']['fdArray'][k]
252+
font['CFF_']['fdArray']=nfd
253+
for gl in font['glyf'].values():
254+
if 'CFF_fdSelect' in gl:
255+
gl['CFF_fdSelect']=gl['CFF_fdSelect'].replace('SourceHan', 'AdvocateAncient')
256+
if setname=='3':
257+
pname=enname.replace(' ', '')
258+
nname=list()
259+
for nj in font['name']:
260+
if nj['languageID']==1041:
261+
ns=dict(nj)
262+
nt=dict(nj)
263+
nh=dict(nj)
264+
ns['languageID']=2052
265+
ns['nameString']=ns['nameString'].replace('源ノ明朝', zhname).replace('源ノ角ゴシック', zhname).replace('源ノ等幅', zhname)
266+
nt['languageID']=1028
267+
nt['nameString']=nt['nameString'].replace('源ノ明朝', zhname).replace('源ノ角ゴシック', zhname).replace('源ノ等幅', zhname)
268+
nh['languageID']=3076
269+
nh['nameString']=nh['nameString'].replace('源ノ明朝', zhname).replace('源ノ角ゴシック', zhname).replace('源ノ等幅', zhname)
270+
nname.append(ns)
271+
nname.append(nt)
272+
nname.append(nh)
273+
#elif nj['nameID']>0 and nj['nameID']<7:
274+
else:
275+
ne=dict(nj)
276+
ne['nameString']=ne['nameString'].replace('Source Han Sans', enname).replace('SourceHanSans', pname).replace('Source Han Serif', enname).replace('SourceHanSerif', pname).replace('Source Han Mono', enname).replace('SourceHanMono', pname)
277+
nname.append(ne)
278+
font['name']=nname
279+
if 'CFF_' in font:
280+
font['CFF_']['fontName']=font['CFF_']['fontName'].replace('SourceHanSans', pname).replace('SourceHanSerif', pname).replace('SourceHanMono', pname)
281+
font['CFF_']['fullName']=font['CFF_']['fullName'].replace('Source Han Sans', enname).replace('Source Han Serif', enname).replace('Source Han Mono', enname)
282+
font['CFF_']['familyName']=font['CFF_']['familyName'].replace('Source Han Sans', enname).replace('Source Han Serif', enname).replace('Source Han Mono', enname)
283+
if 'fdArray' in font['CFF_']:
284+
nfd=dict()
285+
for k in font['CFF_']['fdArray'].keys():
286+
nfd[k.replace('SourceHanSans', pname).replace('SourceHanSerif', pname).replace('SourceHanMono', pname)]=font['CFF_']['fdArray'][k]
287+
font['CFF_']['fdArray']=nfd
288+
for gl in font['glyf'].values():
289+
if 'CFF_fdSelect' in gl:
290+
gl['CFF_fdSelect']=gl['CFF_fdSelect'].replace('SourceHanSans', pname).replace('SourceHanSerif', pname).replace('SourceHanMono', pname)
291+
221292
print('正在生成字体...')
222293
#tmpfile='tmp.json'
223294
tmpfile = tempfile.mktemp('.json')
@@ -232,7 +303,9 @@ def creattmp(mch, pun, simp):
232303
pun=str()
233304
simp=str()
234305
rmun=str()
235-
306+
setname=str()
307+
enname=str()
308+
zhname=str()
236309
if len(sys.argv)<3:
237310
while not os.path.isfile(inf):
238311
inf=input('请输入字体文件路径(或拖入文件):\n')
@@ -258,6 +331,20 @@ def creattmp(mch, pun, simp):
258331
pun=sys.argv[4]
259332
simp=sys.argv[5]
260333
rmun=sys.argv[6].lower()
334+
if len(sys.argv)<8:
335+
while setname not in {'1', '2', '3'}:
336+
setname=input('字体名称设置:\n\t1.使用思源原版字体名称.\n\t2.使用尙古黑体、尙古明体\n\t3.我来命名\n')
337+
else:
338+
setname=sys.argv[7]
339+
if setname=='3':
340+
if len(sys.argv)<10:
341+
while not enname.strip():
342+
enname=input('请输入英文字体名称:\n')
343+
while not zhname.strip():
344+
zhname=input('请输入英文字体名称:\n')
345+
else:
346+
enname=sys.argv[8]
347+
zhname=sys.argv[9]
261348

262349
print('正在载入字体...')
263350
font = json.loads(subprocess.check_output((otfccdump, '--no-bom', inf)).decode("utf-8", "ignore"))

0 commit comments

Comments
 (0)