The PDF stamping turned out to be harder than I thought and led me to a couple of unexpected edge cases. I looked around for a Python library because I wanted to keep all of my code in Python. I came across PyPDF2 and reportlab. I made the initial version of the stamping program using PyPDF2 but later replaced it with pdfrw. I will share the reasons later.
The lord who stood before him had a grim, heartless face. He had lost a hand in the last battle. He had seen Skari run in terror from the monsters, and Skari knew he had earned his isolated eternity. His crime was not so great that he deserved hell itself, but bad enough for him to be sentenced to this purgatory. His fate, his job, was to protect humans against evil . . . even though his close proximity to the nightmare gates had twisted him, too.
aa06259810