A bulk html pdf generator. This application can generate PDFs in bulk by using just one click.
![]() | ![]() |
---|---|
Your system must have the following tools installed and setup with system path variables updated before you can use this software.
- Python3
- pip package manager
- GTK3 Runtime (for Windows, MacOS and few linux based systems).
You can get GTK form here 👉 For Windows, For MacOS, For Linux
Note: Your system might already have gtk3 installed. You need not install gtk dev dependencies.
To run the application from the source code you need to meet few basic requirements. Once that is done we are ready to do the setup.
To prepare the environment you need to follow these steps:
-
Execute the
prep.sh
script which will make virtual environment. Here is an example for debian based system:$ chmod +x prep.sh $ ./prep.sh
-
Now we can activate the environment. Here is an example:
-
For Unix or MacOS based system:
$ source env/bin/activate
-
For Windows based system:
$ env\Scripts\activate.bat
Note: Your
pwd
must be thesrc
directory or else you need to provide full path of theactivate
script. -
To deactivate use the following command:
$ deactivate
-
-
Now we are ready to install the required packages. Run the following command to install all the required packages:
$ pip install -r requirements.txt
-
Once we are done with installing packages. We are ready to execute the application using python. Here is an example:
$ python app.py
Note: To run this software successfully you need to make sure you have GTK3 installed.
When the application is launched it has a single window with a few but important options. The application uses special syntax to generate customized content. Lets have a brief walk through it:
The application uses HTML and CSS to render document designs. We have provided some pre-build templates but feel free to load your custom design.
To make the document generation versatile and make customization possible we added a variable syntax in system for the templates which will be used to render real value from the data file.
- A variable is surrounded by
%
.Example:
%label%
- A label is the column name of the data file. It is the first row of the
.csv
file.
Number | Alpha | Beta | Gamma | 👈 These are the labels |
---|---|---|---|---|
1 | 100 | 40 | 0.5 | |
2 | 90 | 80 | 0.7 | |
3 | 150 | 20 | 0.1 |
Note: Labels are case sensitive.
template.html
<style>
@page {
size: 890px 690px;
margin: auto;
}
</style>
<div
style="width:800px; height:600px; padding:20px; text-align:center; border: 10px solid #787878"
>
<div
style="width:750px; height:550px; padding:20px; text-align:center; border: 5px solid #787878"
>
<span style="font-size:50px; font-weight:bold"
>Certificate of Completion</span
>
<br /><br />
<span style="font-size:25px"><i>This is to certify that</i></span>
<br /><br />
<span style="font-size:30px"><b>%Name%</b></span
><br /><br />
<span style="font-size:25px"><i>has completed the course</i></span>
<br /><br />
<span style="font-size:30px">%Course%</span> <br /><br />
<span style="font-size:20px">with score of <b>%Score%</b></span>
<br /><br /><br /><br />
</div>
</div>
Name | Course | Score | 👈 These are the labels |
---|---|---|---|
Aman Nirala | Quantum Information | 95 |
PDF output
- Select your
HTML
template file in the application (this file is important). - Select
style(css)
file for additional design customization (optional). - Then choose your data file
(.csv)
.Note: The data file needs to be a
.csv
i.e.comma(,)
separated file. The first row is considered as"label"
information and not data instance. This is important as this"label"
will be used in the template file asvariables
. - Next you need to define an output file name format. This is optional, you can leave is empty and it will auto-generate file name based on the data.
Note: You have to follow variable syntax format for defining file name. Here is an example:
%label-1%_MIT_%label-2%.pdf
. - Now you need to select the output directory in which all the documents will be saved.
- Finally it's time to do a final check and tweaks before staring the document generation process.(Don't forget to save the changes made to the template or style files in the application before starting to process.)
- Once everything is done, press the
Generate
button and wait for the program to finish the process.
Thanks goes to these wonderful people (emoji key):
Aman Nirala 💻 📖 🤔 🎨 |
This project follows the all-contributors specification. Contributions of any kind welcome!
If you like our work, a bit of contribution would motivate us a lot for more open source contributions.