এটি অগত্যা সর্বোত্তম পদ্ধতি নয় এবং এটি নিশ্চিত যে ব্যবহারকারী-বান্ধব নয়, তবে এটি কাজ করা সহজ: এটি করার জন্য পাইথনের স্ক্রিপ্ট এখানে।
পাইথন-ফন্টকনফিগ লাইব্রেরি ইনস্টল করুন । হয় এটি আপনার বিতরণ থেকে (উদাহরণস্বরূপ sudo apt-get install python-fontconfig
ডেবিয়ান এবং ডেরিভেটিভসগুলিতে) পান বা আপনার হোম ডিরেক্টরিতে এটি ইনস্টল করুন ( pip install --user python-fontconfig)
তারপরে আপনি এই স্ক্রিপ্টটি চালাতে পারেন (এটি সাধারণত fc-search-codepoint
আপনার ডিরেক্টরিতে যেমন ডিরেক্টরিতে সংরক্ষণ করুন এবং এটি কার্যকর করতে সক্ষম করুন)):PATH
~/bin
#!/usr/bin/env python2
import re, sys
import fontconfig
if len(sys.argv) < 1:
print('''Usage: ''' + sys.argv[0] + '''CHARS [REGEX]
Print the names of available fonts containing the code point(s) CHARS.
If CHARS contains multiple characters, they must all be present.
Alternatively you can use U+xxxx to search for a single character with
code point xxxx (hexadecimal digits).
If REGEX is specified, the font name must match this regular expression.''')
sys.exit(0)
characters = sys.argv[1]
if characters.startswith('U+'):
characters = unichr(int(characters[2:], 16))
else:
characters = characters.decode(sys.stdout.encoding)
regexp = re.compile(sys.argv[2] if len(sys.argv) > 2 else '')
font_names = fontconfig.query()
found = False
for name in font_names:
if not re.search(regexp, name): continue
font = fontconfig.FcFont(name)
if all(font.has_char(c) for c in characters):
print(name)
found = True
sys.exit(0 if found else 1)
ব্যবহারের উদাহরণ:
$ fc-search-codepoint 🉃⼼😻🕲🝤
$ echo $?
1
এই সমস্ত চরিত্রের সাথে আমার কোনও ফন্ট নেই।
$ fc-search-codepoint U+1F64D
/usr/share/fonts/truetype/unifont/unifont_upper.ttf
/usr/share/fonts/truetype/unifont/unifont_upper_csur.ttf