Training Course Documentation Compiler


Documentation compiler tool that facilitates the definition of a series of modules, each comprising of different document types such as PDF, Word, and PowerPoint.

Enables for the organisation of training material as well as the ability to compile frequent updates to an existing course

The Problem

  • Existing training course materials were constructed using a combination of Word documents, PowerPoint presentations and PDF inserts.
  • In order to produce a well-organised set of deliverables to give to clients as handouts a lot of work and third party websites were required to produce a series of PDF manuals
  • Often manuals once compiled into PDF form were not well organised so the resulting printouts would need to be split up into modules and after printing, this would then be inserted into the training folders
  • If any changes were made to the training material it was not easy to combine this into a final released manual

The Inputs

  1. Training course directory structure
    1. This can be a checked out structure from a version control repository i.e. SVN
    2. Documents from Word, PowerPoint, and PDF file formats
  2. List of training modules
  3. Training course name
  4. Destination path for the compiled modules

The Requirements

  1. The user must be able to simply define a training course and its modules
  2. The user should be able to add documents to the training course module
  3. The user should be able to add a directory containing supported document types to a module
  4. It must be possible to save and recall a training course
  5. It must be possible to request the training course is compiled into a single PDF document per module
  6. It must be possible for the user to specify the destination for the compiles PDF documentation

The Implementation

  • A multi-threaded python application was constructed, this facilitates the storage of the course details and the user parameters as specified.
  • The application GUI was written using a PyQT5 interface, designed in QT Designer
  • The application makes use of a windows com object interface for python which allows the Microsoft documents to be instanced as objects, this enables calls to the application object to print to PDF
  • Once all documents are in PDF format they are combined into a single PDF in the correct order


The application has been successfully deployed and used for managing the training material for several training courses.

Windows Python, PyQT5, Win32 objects