This project introduced me to automated custom-format PDF generation using the third-party fpdf package and pandas for reading formatting specification from data files.
This very simple script generates note-taking paper designed for use taking notes on beginner concepts in programming. It reads specifications, such as topics and number of pages per topic, from a topics.csv file.
I learnt to work with FPDF objects and their attributes from the fpdf package. Additionally, while writing this script I encountered some package/Python version issues (this video in the course was three years old at the time and fpdf had received some relatively significant changes.) This gave me an opportunity to familiarise myself with PyPi and the process of learning the features of a package independent of course instruction, and as my first real troubleshooting experience this served me well for issues I encountered later in the course.
Simply running the script will generate the pdf. The specifications of the document can be changed in the topics.csv file.
This application was built as part of Ardit Sulce's Python Mega-Course on Udemy. Ardit's github profile for teaching can be found here.
Copyright (c) 2025 Samuel Peter Maycock Richards
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.