Fixed #947: Move pdf functions of participant app to new pdf.py