更新 2016.9.27 16:22閲覧 2260

インストールされているフォントの書体見本を作成するスクリプト

Linux にインストールされているフォントをブラウザから一覧できる。
改めて使ってみたらフォントビューアーより便利だった為、表示崩れを修正して再掲。
見様見真似のシェルスクリプト故、自己責任でどうぞ。

スクリーンショット

参考

ソースコード


argument=$@
file=./preview_fonts.html
cat<<EOT -- >$file
<!doctype html><html><head><meta charset=utf-8><style>*{margin:0;padding:0;}body{padding:15px;background:#fedfeb;}h1{font-weight:lighter;font-size:50px;margin:0;padding:0;}header,div,footer,a{color:#fe6da4;padding:5px;}div{display:table;width:100%;}div:hover,a:hover,h1:hover{background-color:lightgray;color:#888888;}span{display:table-cell;}span:nth-child(1){width:20em;}</style><title>書体見本</title></head><body><header><h1>書体見本</h1></header>

EOT
clean(){
perl -pe 's/(\([si]\)\s*)+/\n/' | tr '"' ' ' | awk '{$1="";print $0}' | xargs echo
}
do_font(){
output=$(fc-query $1)
index=$(echo "$output" | fgrep -c index:)
if [ "$index" -eq 2 ]; then
family=$(echo "$output" | fgrep 'family:' | head -1 | tr '(' '\n' | clean)
fullname=$(echo "$output" | fgrep 'fullname:' | tr '(' '\n' | tail -1 | clean)
slant=$(echo "$output" | fgrep 'slant:' | tr '(' '\n' | head -2 | clean)
weight=$(echo "$output" | fgrep 'weight:' | tr '(' '\n' | head -2 | clean)
postscriptname=$(echo "$output" | fgrep 'postscriptname:' | tr '(' '\n' | head -2 | clean)
else
family=$(echo "$output" | fgrep 'family:' | tr '(' '\n' | head -1 | clean)
fullname=$(echo "$output" | fgrep 'fullname:' | tr '(' '\n' | head -1 | clean)
slant=$(echo "$output" | fgrep 'slant:' | clean)
weight=$(echo "$output" | fgrep 'weight:' | clean)
postscriptname=$(echo "$output" | fgrep 'postscriptname:' | clean)
fi
fontstyle=$(if [ "$slant" -eq 110 ]; then
echo oblique
elif [ "$slant" -eq 100 ]; then
echo italic
else
echo normal
fi)
fontweight=$(if [ "$weight" -gt 100 ]; then
echo bold
elif [ "$weight" -lt 50 ]; then
echo lighter
else
echo normal
fi)
fontname=$(if [ -z "$fullname" ]; then
echo $postscriptname
else
echo $fullname
fi)
fontprev=$(if [ "$argument" ]; then
echo $argument
else
echo $fontname
fi)
}
fc-list | cut -d: -f1 | sort | uniq | while read font; do
do_font $font
echo "<div><span>$fontname</span><span style=\"font-size:50px;font-family:$family;font-style:$fontstyle;font-weight:$fontweight;\">$fontprev</span></div>">>$file
done
cat<<EOT -- >>$file
<footer><small>Created by <a href="http://がりはり.com/ねこ/">Hot Cat Query Fevers</a></small></footer></body></html>

EOT
x-www-browser $file

使い方1 書体見本をフォント名にする場合

  1. 上記のソースコードをテキストエディタにペーストして任意の場所に保存。
    例)./デスクトップ/preview_fonts.sh
  2. 端末を開いて「sh」と入力した後に、半角スペースを入力し、先ほどの preview_fonts.sh をドラッグドロップして実行。
    例)sh './デスクトップ/preview_fonts.sh'
  3. 10秒(?)くらい待つ。フォント数が多いと時間が掛かる。

使い方2 書体見本を任意の文字列にする場合

  1. 端末に「sh」と半角スペースを入力し、preview_fonts.sh をドラッグドロップ。
  2. ドラッグドロップした後に、半角スペースを開けてから文字列を入力して実行。
    例)sh '/var/tmp/preview_fonts.sh' Hot Cat Query Fevers
  3. 10秒(?)くらい辛抱強く待つ。

コメント

当フォームより収集される個人情報は、返信を要する際に使用されるものであり、法令に基づく行政機関等への提供を除き、ご本人の同意を得ずに第三者に提供することはありません。また、コメントが掲載される場合であってもメールアドレスが本サイト内に記載されることはありません。