Compare commits

...

2 commits

Author SHA1 Message Date
Gilles Filippini
f740b7bc73 feat: generate badges from members spreadsheet 2023-03-10 22:27:48 +01:00
Gilles Filippini
c50ae74f6b fix: tweak sizes 2023-03-10 22:27:10 +01:00
2 changed files with 56 additions and 9 deletions

View file

@ -12,29 +12,35 @@ verso_out=verso-out.jpeg
text_to_image () { text_to_image () {
text="$1" text="$1"
fontsize="$2" fontsize="$2"
output="$3" maxwidth="$3"
convert -size 1000x50 xc:white -gravity center -font "Cantarell-Extra-Bold" -pointsize "$fontsize" -fill black -draw 'text 0,0 "'"$text"'"' "$output" output="$4"
convert -size $((${#text} * $fontsize))x$((2 * $fontsize)) xc:white -gravity center -font "Cantarell-Extra-Bold" -pointsize "$fontsize" -fill black -draw 'text 0,0 "'"$text"'"' "$output"
convert "$output" -trim "$output" convert "$output" -trim "$output"
if [ "$(identify -format "%w" "$output")" -gt "$maxwidth" ]; then
convert "$output" -resize "$maxwidth"x "$output"
fi
} }
text_to_qrcode () { text_to_qrcode () {
text="$1" text="$1"
output="$2" width="$2"
output="$3"
qrencode -t PNG -m 1 -s 9 "$text" -o "$output" qrencode -t PNG -m 1 -s 9 "$text" -o "$output"
convert "$output" -resize "$width"x "$output"
} }
# 1. name -> image # 1. name -> image
text_to_image "$number" 42 number.jpeg text_to_image "$number" 42 470 number.jpeg
text_to_image "$name" 42 name.jpeg text_to_image "$name" 42 470 name.jpeg
text_to_image "$pseudo" 42 pseudo.jpeg text_to_image "$pseudo" 42 470 pseudo.jpeg
text_to_image "$key" 36 key.jpeg text_to_image "$key" 36 950 key.jpeg
text_to_qrcode "$key" qrcode.png text_to_qrcode "$key" 276 qrcode.png
convert verso.jpeg \ convert verso.jpeg \
number.jpeg -geometry +535+96 -composite \ number.jpeg -geometry +535+96 -composite \
name.jpeg -geometry +535+260 -composite \ name.jpeg -geometry +535+260 -composite \
pseudo.jpeg -geometry +535+413 -composite \ pseudo.jpeg -geometry +535+413 -composite \
key.jpeg -geometry +47+575 -composite \ key.jpeg -geometry +47+577 -composite \
$verso_out $verso_out
convert recto.jpeg \ convert recto.jpeg \

View file

@ -0,0 +1,41 @@
#!/bin/bash
set -e
spreadsheet="$1"
normalize_name () {
echo $* | sed -e 's/[^ -]\+/\L\u&/g' -e 's/ De / de /g'
}
viewjpeg="$(ls /usr/share/ghostscript/*/lib/viewjpeg.ps | tail -1)"
convert_jpeg_to_pdf () {
declare -a jpeg_stanza
while [ $# -gt 1 ]; do
jpeg_stanza+=( "($1) viewJPEG showpage" )
shift
done
gs \
-dNOSAFER \
-sDEVICE=pdfwrite \
-o "$1" \
-g1051x678 \
$viewjpeg \
-c "${jpeg_stanza[*]}"
}
mkdir -p badges
while read line; do
eval member=( $line )
if [ "${member[0]}" = "Clef AXIOM" ]; then
break
fi
number="${member[0]}"
lastname="$(normalize_name "${member[1]}")"
firstname="$(normalize_name "${member[2]}")"
nickname="${member[3]}"
key="${member[4]}"
./create-badge.sh "$number" "$lastname $firstname" "$nickname" "$key"
convert_jpeg_to_pdf recto-out.jpeg verso-out.jpeg badges/"${number//\//_}.pdf"
done < <(xlsx2csv -q all -d ' ' "$spreadsheet" | tail +3)