O ImageMagick suporta a renderização de fontes e textos arbitrários. Abaixo está um script de exemplo que irá iterar sobre fontes disponíveis e renderizar algum texto. Eu não tenho certeza de como você é experiente, então eu vou assumir que o script faz sentido.
Eu corri isso no Cygwin e no Gentoo, então é uma solução viável para ambos os sistemas. Não é perfeito, porque convert.exe
é incapaz de lidar com todas as fontes (em ambos os sistemas). Eu acho que eles devem ser TrueType. Verifique os documentos para opções para o programa de conversão (antialiasing, recorte). Sinta-se à vontade para atualizar o script se você encontrar algumas opções úteis.
Arquivo: fonts.sh
#! /bin/bash
t="
NAME
cowsay/cowthink - configurable speaking/thinking cow (and a bit more)
SYNOPSIS
cowsay [-e eye_string] [-f cowfile] [-h] [-l] [-n] [-T tongue_string]
[-W column] [-bdgpstwy]
DESCRIPTION
Cowsay generates an ASCII picture of a cow saying something provided
by the user. If run with no arguments, it accepts standard input, word-
wraps the message given at about 40 columns, and prints the cow saying
the given message on standard output.
- - -
~ \' ! @ # $ % ^ & * ( ) _ + [ ] { } ; : ' \" , . < > / ? \ /
"
# . . .
CONVERT="/cygdrive/c/Program Files (x86)/ImageMagick-6.8.4-Q16/convert.exe"
LIM=${1:-23}
if [ ! -z "$2" ]; then rm -f Fonts/*; fi
if [ ! -d Fonts ]; then mkdir Fonts; fi
"$CONVERT" -list font| awk '/Font/ {print $2}' | head -n$LIM | sort -R |
while read f ;do
let n=n+1
printf "%4d/%-4d %s\n" $n $LIM "$f"
out="Fonts/$f.png"
txt="Fonts/txt.z"
err="Fonts/$f.err.txt"
if [ ! -f "$out" ] && [ ! -f "$err" ]; then
echo -e "$f\n" > $txt
cat "$0" |sed 's/\t/ /g'>> $txt
"$CONVERT" \
-page a3 -font "$f" \
-kerning 0 -density 90 -pointsize 16 -interline-spacing -2 \
-trim +repage -bordercolor white -border 5 \
text:$txt \
"$out" 2> "$err"
if [ $? -ne 0 ]; then
printf "%9s %s\n" " " ERROR
else rm -f "$err" ;fi
else
printf "%9s %s\n" " " SKIPPING
fi
done
Exemplo de saída
$ time sh fonts.sh 234 clean
1/234 Candara-Italic
2/234 Gabriola
3/234 Candara-Bold
SKIPPING
4/234 Lucida-Sans-Unicode
5/234 Corbel-Bold
6/234 LilyUPC-Italic
7/234 FreesiaUPC-Bold-Italic
8/234 Kartika
9/234 FreesiaUPC
10/234 JasmineUPC-Italic
✂ (...)
41/234 Courier-Oblique
ERROR
42/234 Helvetica
ERROR
✂ (...)
real 4m22.149s
$ du -h Fonts
361M Fonts