86 lines
2.2 KiB
Bash
Executable File
86 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
. setenv.sh
|
|
|
|
if [ -z "$PICCREATE" ]; then
|
|
echo "please source the environment"
|
|
exit 1
|
|
fi
|
|
|
|
O_ARGS=0
|
|
E_OPTERROR=85
|
|
|
|
USAGE="create a jpg file with the purl inside
|
|
Usage: `basename $0` [-hie]
|
|
-i id
|
|
-e extract
|
|
Examples:
|
|
to test the glyph later with inkscape:
|
|
`basename $0` -i ../in/buchstabe_a.svg
|
|
to extract the points and text from the glyph:
|
|
`basename $0` -i ../in/buchstabe_a.svg -e "
|
|
|
|
|
|
while getopts "i:eu:" Option
|
|
do
|
|
case $Option in
|
|
i) ID=$OPTARG;;
|
|
e) EXTRACT=$OPTARG;;
|
|
*) echo "$USAGE" >&2; exit 1; # Default.
|
|
esac
|
|
done
|
|
|
|
shift $(($OPTIND - 1))
|
|
|
|
if [ -z $ID ] ; then
|
|
echo "-> no id/filename given"
|
|
echo "$USAGE" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$ID" ]; then
|
|
echo "please give a .svg file of a glyph as input"
|
|
echo "$USAGE" >&2
|
|
exit 1
|
|
fi
|
|
if [ -s "$ID" ]; then
|
|
export BASE=`basename $ID .svg`
|
|
export TARGET=$PICCREATE_OUT/$BASE.svg
|
|
else
|
|
echo "input file does not exist"
|
|
echo "$USAGE" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# extrahiere die wichtigen Zeilen aus dem Font
|
|
cat $ID | egrep '<\<line\>|x1|x2|y1|y2|/>|style' | egrep -v '\<text\>|id=|http:' > line-$BASE.svg
|
|
cat $ID | egrep 'circle|translate|\<r\>' > circles-$BASE.svg
|
|
cat $ID | egrep '<\<text|text\>>|\<x\>=|\<y\>=|tspan|style|preserve' | egrep -v '\<transform-center-x\>|\<window-|\<id\>=' > text-$BASE.svg
|
|
|
|
# reduziere einige Zeilen um bestimmte Muster
|
|
cat line-$BASE.svg | sed -e 's/inkscape:transform-center-x=".*"//g' > $$; mv $$ line-$BASE.svg
|
|
cat text-$BASE.svg | sed -e 's/inkscape:transform-center-y=".*"//g' > $$; mv $$ text-$BASE.svg
|
|
|
|
|
|
if [ -z "$EXTRACT" ];
|
|
then
|
|
# schreib einen kompletten neuen Buchstaben zum testen
|
|
echo '<svg xmlns="http://www.w3.org/2000/svg" version="1.1">' > $TARGET
|
|
cat text-$BASE.svg >> $TARGET
|
|
cat circles-$BASE.svg >> $TARGET
|
|
cat line-$BASE.svg >> $TARGET
|
|
echo '</svg>' >> $TARGET
|
|
else
|
|
# schreib nur das extract zur Verwertung als Font in die Ausgabe
|
|
touch $TARGET
|
|
cat text-$BASE.svg >> $TARGET
|
|
cat circles-$BASE.svg >> $TARGET
|
|
cat line-$BASE.svg >> $TARGET
|
|
fi
|
|
|
|
rm line-$BASE.svg
|
|
rm circles-$BASE.svg
|
|
rm text-$BASE.svg
|
|
|
|
|
|
|