Compare commits

...

2 commits

Author SHA1 Message Date
Gilles Filippini
30cc0200e5 chore: .gitignore 2023-06-12 17:31:57 +02:00
Gilles Filippini
dc871a3274 rework: move pdf creation to create-badge.sh
and use `mktemp -d` to create the temporary directory.
2023-06-12 17:28:08 +02:00
3 changed files with 42 additions and 34 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
/badges
*.xlsx

View file

@ -1,13 +1,19 @@
#!/bin/bash #!/bin/bash
#set -x set -euo pipefail
number="$1" number="$1"
name="$2" name="$2"
pseudo="$3" pseudo="$3"
key="$4" key="$4"
recto_out=recto-out.jpeg unset tmpdir
verso_out=verso-out.jpeg cleanup () {
if [ -n "$tmpdir" ] && [ -d "$tmpdir" ]; then
rm -fr "$tmpdir"
fi
}
trap cleanup EXIT
tmpdir=$(mktemp -d)
text_to_image () { text_to_image () {
text="$1" text="$1"
@ -29,20 +35,39 @@ text_to_qrcode () {
convert "$output" -resize "$width"x "$output" convert "$output" -resize "$width"x "$output"
} }
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[*]}"
}
# 1. name -> image # 1. name -> image
text_to_image "$number" 42 470 number.jpeg text_to_image "$number" 42 470 "$tmpdir"/number.jpeg
text_to_image "$name" 42 470 name.jpeg text_to_image "$name" 42 470 "$tmpdir"/name.jpeg
text_to_image "$pseudo" 42 470 pseudo.jpeg text_to_image "$pseudo" 42 470 "$tmpdir"/pseudo.jpeg
text_to_image "$key" 36 950 key.jpeg text_to_image "$key" 36 950 "$tmpdir"/key.jpeg
text_to_qrcode "$key" 276 qrcode.png text_to_qrcode "$key" 276 "$tmpdir"/qrcode.png
convert verso.jpeg \ convert verso.jpeg \
number.jpeg -geometry +535+96 -composite \ "$tmpdir"/number.jpeg -geometry +535+96 -composite \
name.jpeg -geometry +535+260 -composite \ "$tmpdir"/name.jpeg -geometry +535+260 -composite \
pseudo.jpeg -geometry +535+413 -composite \ "$tmpdir"/pseudo.jpeg -geometry +535+413 -composite \
key.jpeg -geometry +47+577 -composite \ "$tmpdir"/key.jpeg -geometry +47+577 -composite \
$verso_out "$tmpdir"/verso.jpeg
convert recto.jpeg \ convert recto.jpeg \
qrcode.png -geometry +693+339 -composite \ "$tmpdir"/qrcode.png -geometry +693+339 -composite \
$recto_out "$tmpdir"/recto.jpeg
[ -d badges ] || mkdir badges
convert_jpeg_to_pdf "$tmpdir"/recto.jpeg "$tmpdir"/verso.jpeg badges/"${number//\//_}".pdf

View file

@ -7,24 +7,6 @@ normalize_name () {
echo $* | sed -e 's/[^ -]\+/\L\u&/g' -e 's/ De / de /g' 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 while read line; do
eval member=( $line ) eval member=( $line )
if [ "${member[0]}" = "Clef AXIOM" ]; then if [ "${member[0]}" = "Clef AXIOM" ]; then
@ -37,5 +19,4 @@ while read line; do
key="${member[4]}" key="${member[4]}"
./create-badge.sh "$number" "$lastname $firstname" "$nickname" "$key" ./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) done < <(xlsx2csv -q all -d ' ' "$spreadsheet" | tail +3)