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