commit
04242d466b
@ -0,0 +1,40 @@ |
||||
Certyfikaty i dyplomy na obozach WWI |
||||
=== |
||||
|
||||
Zanim zaczniesz |
||||
--- |
||||
1. Sprawdź, czy masz zainstalowane programy `xelatex`, `pdftk` i `pdfunite`. |
||||
1. Popraw `certyfikat.tex`, `dyplom.tex` i `dyplom_wwi.svg`, tak żeby zawierały właściwe miejsce i rok obozu. |
||||
|
||||
Generowanie certyfikatów |
||||
--- |
||||
Przygotuj plik z uczestnikami. Plik powinien zawierać imię i nazwisko (w mianowniku) oraz płec (`brał` lub `brała`) uczestników w formacie: |
||||
``` |
||||
Patryk Czajka;brał |
||||
Jowita Drozdrowicz;brała |
||||
Iwona Kotlarska;brała |
||||
Marek Sokołowski;brał |
||||
``` |
||||
Następnie uruchom skrypt `drukuj_certyfikaty.sh` z parametrm będącym nazwą pliku z uczestnikami. Skrypt wypluje dużo pdf-ów do katalogu `<nazwa_pliku_z_uczestnikami>.out` oraz plik `<nazwa_pliku_z_uczestnikami>_ALL.pdf` ze wszystkimi certyfikatami, gotowy do wydruku. |
||||
|
||||
Generowanie dyplomów |
||||
--- |
||||
Przygotuj plik z dyplomami. Plik powinien zawierać imię i nazwisko (w dopełniaczu) oraz trzy wiersze zawierające informacje, za co ma być dyplom. Format jest bardzo podobny do certyfikatów: |
||||
``` |
||||
Patryka Czajki;za zajęcie pierwszego miejsca;w konkursie recytacji monologu skryby;na |
||||
``` |
||||
|
||||
przykład wypluje dyplom mniej więcej taki: |
||||
``` |
||||
Dyplom |
||||
dla |
||||
Patryka Czajki |
||||
za zajęcie pierszego miejsca |
||||
w konkursie recytacji monologu skryby |
||||
na |
||||
Wakacyjnych Warsztatach Informatycznych 2022 |
||||
``` |
||||
|
||||
Wiersze mogą być puste, byleby w każdym wierszu pliku z dyplomami były dokładnie trzy średniki. |
||||
|
||||
Następnie uruchom skrypt `drukuj_dyplomy.sh` z parametrm będącym nazwą pliku z dyplomami. Skrypt wypluje dużo pdf-ów do katalogu `<nazwa_pliku_z_dyplomami>.out` oraz plik `<nazwa_pliku_z_dyplomami>_ALL.pdf` ze wszystkimi dyplomami, gotowy do wydruku. |
||||
@ -0,0 +1,59 @@ |
||||
\documentclass[a4paper]{article} |
||||
\usepackage[MeX]{polski} |
||||
%\usepackage[utf8]{inputenc} |
||||
|
||||
|
||||
\usepackage{amsfonts} |
||||
\usepackage{amsthm} |
||||
\usepackage{amsmath} |
||||
\usepackage{float} |
||||
\usepackage{graphicx} |
||||
\usepackage{multicol} |
||||
\usepackage[left=2cm,right=2cm]{geometry} |
||||
|
||||
|
||||
\addtolength{\voffset}{+6.0cm} |
||||
%\addtolength{\textheight}{+3cm} |
||||
|
||||
\addtolength{\hoffset}{-2cm} |
||||
\addtolength{\textwidth}{+4cm} |
||||
|
||||
\pagestyle{empty} |
||||
|
||||
\begin{document} |
||||
\begin{center} |
||||
|
||||
{\Huge \bf Certyfikat Uczestnictwa} |
||||
|
||||
\vspace{1.0cm} |
||||
|
||||
{\huge \emph{FILLER_NAME}} |
||||
|
||||
\vspace{0.75cm} |
||||
|
||||
|
||||
\linespread{1.2} |
||||
{\Large |
||||
FILLER_TAKE udział w \\ {\bf Wakacyjnych Warsztatach Informatycznych 2022}\\ |
||||
} |
||||
\end{center} |
||||
|
||||
\vspace{1.5cm} |
||||
\noindent |
||||
\begin{minipage}{0.4999\textwidth} |
||||
\centering |
||||
\large Kierownik obozu |
||||
\end{minipage} |
||||
\begin{minipage}{0.4999\textwidth} |
||||
\centering |
||||
\large Kadra WWI |
||||
\end{minipage} |
||||
|
||||
\vspace{7.75cm} |
||||
\begin{center} |
||||
{\Huge Płock 2022} |
||||
\end{center} |
||||
|
||||
\pagebreak |
||||
|
||||
\end{document} |
||||
@ -0,0 +1,25 @@ |
||||
#!/bin/bash |
||||
set -e |
||||
|
||||
|
||||
[ -z "$1" ] && { echo 'ERROR: Podaj plik do druku jako pierwszy parametr!'; exit 1; } |
||||
OUTDIR="$1.out" |
||||
|
||||
TMP=$(mktemp -d) |
||||
rm -rf $OUTDIR |
||||
mkdir $OUTDIR |
||||
|
||||
NUM=1 |
||||
|
||||
cat "$1" | while read l; do |
||||
osoba="$(echo $l | cut -d\; -f1)" |
||||
osoba_no_spaces="${osoba// /_}" |
||||
bral=$(echo $l | cut -d\; -f2) |
||||
echo $osoba |
||||
sed "s/FILLER_NAME/$osoba/; s/FILLER_TAKE/$bral/;" certyfikat.tex > $TMP/cert_tmp.tex |
||||
xelatex -output-directory=$TMP $TMP/cert_tmp.tex >/dev/null 2>&1 |
||||
pdftk $TMP/cert_tmp.pdf background dyplom_wwi.pdf output "${OUTDIR}/$(printf "%03d" $NUM)_cert_$osoba_no_spaces.pdf" |
||||
NUM=$[NUM + 1] |
||||
done |
||||
|
||||
pdfunite $OUTDIR/* $1_ALL.pdf |
||||
@ -0,0 +1,26 @@ |
||||
#!/bin/bash |
||||
|
||||
[ -z "$1" ] && { echo 'ERROR: Podaj plik do druku jako pierwszy parametr!'; exit 1; } |
||||
|
||||
OUTDIR="$1.out" |
||||
rm -rf $OUTDIR |
||||
mkdir -p $OUTDIR |
||||
|
||||
TMP=$(mktemp -d) |
||||
|
||||
NUM=1 |
||||
cat "$1" | while read l; do |
||||
osoba=$(echo $l | cut -d\; -f1) |
||||
osoba_no_spaces=${osoba// /_} |
||||
line1=$(echo $l | cut -d\; -f2 | tr -d \") |
||||
line2=$(echo $l | cut -d\; -f3 | tr -d \") |
||||
line3=$(echo $l | cut -d\; -f4 | tr -d \") |
||||
echo $osoba |
||||
|
||||
sed "s/FILLER_NAME/$osoba/; s/FILLER_LINE1/$line1/; s/FILLER_LINE2/$line2/; s/FILLER_LINE3/$line3/;" dyplom.tex > $TMP/dyplom_tmp.tex |
||||
xelatex -output-directory=$TMP $TMP/dyplom_tmp.tex 2>&1 >/dev/null |
||||
pdftk $TMP/dyplom_tmp.pdf background dyplom_wwi.pdf output "${OUTDIR}/$(printf "%03d" $NUM)_dyplom_${osoba_no_spaces}.pdf" |
||||
NUM=$[NUM + 1] |
||||
done |
||||
|
||||
pdfunite $OUTDIR/* $1_ALL.pdf |
||||
@ -0,0 +1,73 @@ |
||||
\documentclass{article} |
||||
\usepackage[MeX]{polski} |
||||
\usepackage[utf8]{inputenc} |
||||
|
||||
|
||||
\usepackage{amsfonts} |
||||
\usepackage{amsthm} |
||||
\usepackage{amsmath} |
||||
\usepackage{amssymb} |
||||
\usepackage{float} |
||||
\usepackage{graphicx} |
||||
|
||||
\addtolength{\voffset}{+5.0cm} |
||||
%\addtolength{\textheight}{+3cm} |
||||
|
||||
\addtolength{\hoffset}{-2cm} |
||||
\addtolength{\textwidth}{+4cm} |
||||
|
||||
\pagestyle{empty} |
||||
|
||||
\begin{document} |
||||
\begin{center} |
||||
|
||||
{\bf \Huge Dyplom} |
||||
|
||||
\vspace{0.75cm} |
||||
|
||||
{\Large dla} |
||||
|
||||
\vspace{0.75cm} |
||||
|
||||
{\huge \emph{FILLER_NAME}} |
||||
|
||||
\vspace{0.65cm} |
||||
|
||||
|
||||
\linespread{1.2} |
||||
{\Large |
||||
FILLER_LINE1 ~\\ |
||||
%za wyróżniającą się aktywność w rozwiązywaniu zadań w \\ |
||||
FILLER_LINE2 ~\\ |
||||
FILLER_LINE3 ~\\ |
||||
%odbywających się na \\ |
||||
} |
||||
|
||||
\vspace{0.20cm} |
||||
|
||||
{\Large |
||||
{\bf Wakacyjnych Warsztatach Informatycznych 2022}\\ |
||||
} |
||||
|
||||
\end{center} |
||||
|
||||
\vspace{1cm} |
||||
|
||||
\noindent |
||||
\begin{minipage}{0.4999\textwidth} |
||||
\centering |
||||
\large Kierownik obozu |
||||
\end{minipage} |
||||
\begin{minipage}{0.4999\textwidth} |
||||
\centering |
||||
\large Kadra WWI |
||||
\end{minipage} |
||||
|
||||
\vspace{7cm} |
||||
\begin{center} |
||||
{\Huge Płock 2022} |
||||
\end{center} |
||||
|
||||
\pagebreak |
||||
|
||||
\end{document} |
||||
Binary file not shown.
|
After Width: | Height: | Size: 78 KiB |
Loading…
Reference in new issue