Building PDFs

Plom now has everything that it needs to build PDFs for you to print.

Producing PDFs to print

Run plom-create make. It may prompt you for your server manager password.

$ plom-create make
Add DB row for paper 0001: ID DNM Q1v2 Q2v1 Q3v2
Add DB row for paper 0002: ID DNM Q1v1 Q2v1 Q3v1
Add DB row for paper 0003: ID DNM Q1v1 Q2v2 Q3v2
Add DB row for paper 0004: ID DNM Q1v2 Q2v2 Q3v1

...

Building named papers
100%|████████████████████████████████████████████████████████| 40/40 [00:04<00:00,  8.22it/s]
Writing produced_papers.csv.
Checking papers produced and prename-ing any pre-named papers into the database

The system constructs your PDFs in two steps. First it builds the database and populates it with information about each of the papers — such as the student name and ID (if you printed some named tests), and which question-versions have been chosen. Once that is done, the PDFs are constructed (in parallel) and any updates to the database are made. Your papers are now ready to print and you can find them in the papersToPrint subdirectory:

$ ls papersToPrint/
exam_0001.pdf  exam_0008.pdf  exam_0015.pdf  exam_0022.pdf  exam_0029.pdf  exam_0036.pdf
exam_0002.pdf  exam_0009.pdf  exam_0016.pdf  exam_0023.pdf  exam_0030.pdf  exam_0037.pdf
exam_0003.pdf  exam_0010.pdf  exam_0017.pdf  exam_0024.pdf  exam_0031.pdf  exam_0038.pdf
exam_0004.pdf  exam_0011.pdf  exam_0018.pdf  exam_0025.pdf  exam_0032.pdf  exam_0039.pdf
exam_0005.pdf  exam_0012.pdf  exam_0019.pdf  exam_0026.pdf  exam_0033.pdf  exam_0040.pdf
exam_0006.pdf  exam_0013.pdf  exam_0020.pdf  exam_0027.pdf  exam_0034.pdf
exam_0007.pdf  exam_0014.pdf  exam_0021.pdf  exam_0028.pdf  exam_0035.pdf

Here is the resulting exam_0001.pdf (which is named) and exam_0027.pdf (which is unnamed):

We strongly recommend that you check some of these files before you print. Each page should have 3 qr-codes and 1 triangle stamped in the corners. Additionally the centre-top of each page has the test- and page-number stamped on it. Please also double-check the specification. If something has gone wrong, before you print is the best time to catch it. After printing, it is much harder to fix things and some dangerous manual hackery may be required.


Printing is out-of-scope for this tutorial but should be done carefully!

Finding some students to write your test is also out of scope…

After the test, we are now ready to start processing scans and get on with marking.


Something went wrong

Here are some common errors that are easy to fix before printing.

  • “I found an error in the specification”
  • “I used the wrong classlist”, or “My classlist is out of order”
  • “I didn’t generate enough papers”
  • “I found typos in my source tests”
  • “My source tests are different lengths”
  • “My source tests have different numbers of questions”
  • “The qr-codes in the final PDFs overlap my text.”

For now, the best advice is probably that you should just start again from scratch.