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
Training course directory structure
This can be a checked out structure from a version control repository i.e. SVN
Documents from Word, PowerPoint, and PDF file formats
List of training modules
Training course name
Destination path for the compiled modules
The Requirements
The user must be able to simply define a training course and its modules
The user should be able to add documents to the training course module
The user should be able to add a directory containing supported document types to a module
It must be possible to save and recall a training course
It must be possible to request the training course is compiled into a single PDF document per module
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
Conclusion
The application has been successfully deployed and used for managing the training material for several training courses.