rst2pdf: back from the dead!

Today marks a momentous day!

I’ve released 0.94 of rst2pdf to PyPI!

If you have a need to convert plain text files to PDF, check it out.

As the last release, 0.93, was December 2012, I think you could have reasonably assumed that the project was abandoned. So why did I bring it back from the dead?

Some history

For my presentation slide decks, I’ve used text files as the source since October 2012. Initially, I used Markdown with Landslide to convert to HTML, but struggled with presenting using a browser and PDF generation either required a paid licence or unreliable browser CSS print stylesheets. Hence, by January 2013, I was looking for another solution and settled on reStructuredText converted to PDF with rst2pdf and life was good!

I didn’t know it at the time, but the 0.93 version of rst2pdf that came out in December 2012 and was the last one. By 2017, I had realised that it was dead and started looking for a new toolchain and nothing really appealed or was as easy to use as my current rst2pdf workflow.

I decided that I would rather learn Python and the rst2pdf toolchain than the alternatives, so in October 2017 I mailed one of the people listed on the rst2pdf project to ask what was happening and whether I should fork it. After a short discussion, I became a maintainer of the project and started work on bringing it back to life.

Bringing it back

Over the past year, I (along with a few others) rewound the master branch of source code back to the last release and cherry-picked patches that I understood and worked into it. Most importantly, we got the tests up and running again and hooked up Travis to run them. This took a long time as the tests are essentially end-to-end tests that rely on hashes of manually checked the generated PDFs for every test in the system. I’m indebted to Alex, Lorna and Roberto for helping me in this task as it’s tedious and slow. Thank you!

We also brought the project’s’ dependencies up to date including ensuring we continue to support Sphinx. We created a website on, Roberto fixed a number of issues in the queue and I added a couple of features that I really wanted.

Now that we had a codebase history that we understood, along with working tests and a website, I learned about packaging python projects and released 0.94.

What’s next?

rst2pdf 0.94 is a Python 2 project. The next step is to migrate it to Python 3. Python 2 retires on 1st January 2020, so we have less than a year.

We also have issues to fix and some ideas for new features. It’s a stable project though and the key focus it to ensure that converting ReST files to styled PDF remains as simple and easy to do as it is now.

Get involved!

As with all Open Source projects, we love help. Please file bug reports and feature requests on GitHub. If you’d like to contribute, then we’d love improvements to the manual and of course PRs are welcome!

from Rob Allen’s DevNotes

Leave a Reply