Open jakerdy opened 1 year ago
Range is currently not possible via charset
option, sorry. You have to find a way to generate all the character string by yourself.
Okay.
After googling some time, i find here one cool and automatic way to do this.
Works on linux (which is not perfect but vm is enuogh), and maybe somewhere else, where you have utility fc-query
.
You should create bash script (lets call it fdump.sh):
#!/bin/bash -
Usage() { echo "$0 FontFile"; exit 1; }
SayError() { local error=$1; shift; echo "$0: $@"; exit "$error"; }
[ "$#" -ne 1 ] && Usage
width=70
fontfile="$1"
[ -f "$fontfile" ] || SayError 4 'File not found'
list=$(fc-query --format='%{charset}\n' "$fontfile")
for range in $list
do IFS=- read start end <<<"$range"
if [ "$end" ]
then
start=$((16#$start))
end=$((16#$end))
for((i=start;i<=end;i++)); do
printf -v char '\\U%x' "$i"
printf '%b' "$char"
done
else
printf '%b' "\\U$start"
fi
done | grep -oP '.{'"$width"'}'
Don't forget to make in executable: chmod +x fdump.sh
And run in on your font:
./fdump.sh MyFont.ttf > MyFont_charset.txt
As a result you will get file with all defined glyphs in your font:
Hi, it will be great if there is a way to extract all glyphs defined in font. Using original msdf-atlas-gen you could specify charset via ranges, like
An you get all glyphs from this range (if they are present) packed. But it seems there is no way to do in using msdf-bmfont.