A bulk pdf generator. This application can generate PDFs in bulk by using just one click.

Overview

logo

forks-badge stars-badge watcher-badge repo_size-badge CodeFactor

A bulk html pdf generator. This application can generate PDFs in bulk by using just one click.

Screenshots

demo1 demo2

Requirements 🧱

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.

Getting started 🚀

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 the src directory or else you need to provide full path of the activate 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.

How to use? 💡

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.

Template variable syntax 🔥

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.

Here is an example

template.html

Certificate of Completion

This is to certify that

%Name%

has completed the course

%Course%

with score of %Score%



">
<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 Completionspan
    >
    <br /><br />
    <span style="font-size:25px"><i>This is to certify thati>span>
    <br /><br />
    <span style="font-size:30px"><b>%Name%b>span ><br /><br /> <span style="font-size:25px"><i>has completed the coursei>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>
data.csv
Name Course Score 👈 These are the labels
Aman Nirala Quantum Information 95

PDF output

Steps to use 🧐

  1. Select your HTML template file in the application (this file is important).
  2. Select style(css) file for additional design customization (optional).
  3. 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 as variables.

  4. 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.

  5. Now you need to select the output directory in which all the documents will be saved.
  6. 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.)
  7. Once everything is done, press the Generate button and wait for the program to finish the process.

License

FOSSA Status

Contributors

All Contributors

Thanks goes to these wonderful people (emoji key):


Aman Nirala

💻 📖 🤔 🎨

This project follows the all-contributors specification. Contributions of any kind welcome!


github_follow_badge twitter-badge

If you like our work, a bit of contribution would motivate us a lot for more open source contributions.

Owner
Aman Nirala
Computer Science and Physics student. Quantum Computing and Mechanics Researcher. Reclusive like a neutrino. A photon to the higgs field of giving up.
Aman Nirala
Convert PDF to AudioBook and Audio Speech to PDF

In this Python project, we will build a GUI-based PDF to Audio and Audio to PDF converter using the Tkinter, OS, path, pyttsx3, SpeechRecognition, PyPDF4, and Pydub libraries and the messagebox modul

RISHABH MISHRA 1 Feb 13, 2022
Python script that split PDF files.

Automatic PDF Splitter This script can create new single-page PDFs files from multipaged PDFs. Requirements Python 3.0+ # Debian distros sudo apt-get

Leandro Padula 5 Apr 02, 2022
Camelot is a Python library that makes it easy for anyone to extract tables from PDF files

Camelot: PDF Table Extraction for Humans Camelot is a Python library that makes it easy for anyone to extract tables from PDF files! Note: You can als

Atlan Technologies Pvt Ltd 3.3k Jan 06, 2023
Python lib for Simple PDF text extraction

Python lib for Simple PDF text extraction

Jason Alan Palmer 651 Jan 01, 2023
this is simple program, that converts pdf file to png

author: a5892731 last update:2021-11-01 version: 1.1 resources: -https://pypi.org/project/pdf2image/ -https://github.com/oschwartz10612/poppler-window

1 Nov 01, 2021
This is PDF Merger Application Developed using Just Python

This is PDF Merger Application Developed using Just Python

Sandeep Kumar Reddy 2 Nov 18, 2021
PyPDF2 is a pure-python PDF library capable of splitting, merging together, cropping, and transforming the pages of PDF files.

PyPDF2 is a pure-python PDF library capable of splitting, merging together, cropping, and transforming the pages of PDF files. It can also add custom data, viewing options, and passwords to PDF files

Matthew Stamy 5k Jan 04, 2023
Compare-pdf - A Flask driven restful API for comparing two PDF files

COMPARE-PDF A Flask driven restful API for comparing two PDF files. Description

Karthikeyan JC 3 Mar 13, 2022
A Python tool to generate a static HTML file that represents the internal structure of a PDF file

PDFSyntax A Python tool to generate a static HTML file that represents the internal structure of a PDF file At some point the low-level functions deve

Martin D. 394 Dec 30, 2022
An application which enables the users to perform simple yet intriguing PDF operations

AstutePDF A repository containing the GUI for an application which enables the users to perform simple yet intriguing PDF operations. These include, M

Raghav S 5 Jan 22, 2022
Scans pdfs for links written in plaintext and checks if they are active or returns an error code.

Scans pdfs for links written in plaintext and checks if they are active or returns an error code. It then generates a report of its findings. Extract references (pdf, url, doi, arxiv) and metadata fr

Marshal Miller 22 Nov 21, 2022
Pdfencrypt is a tool to encrypt/lock PDFs

Pdfencrypt Pdfencrypt is a tool to encrypt/lock PDFs Installation $ apt update $ apt upgrade $ apt install git $ apt install python $ git clone https:

Anontemitayo 5 Nov 28, 2021
Table automatically extraction from PDF Document

PDF Table Extractor Table automatically extraction from PDF Document Our Icon 📌 Name : PDF Table Extractor 📌 Authors : Minku Koo Jiyong Park 📌 Deve

1 Jan 10, 2022
Python PDF Parser (Not actively maintained). Check out pdfminer.six.

PDFMiner PDFMiner is a text extraction tool for PDF documents. Warning: As of 2020, PDFMiner is not actively maintained. The code still works, but thi

Yusuke Shinyama 4.9k Jan 04, 2023
OCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched

OCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched or copy-pasted. ocrmypdf

8k Jan 08, 2023
borb is a library for reading, creating and manipulating PDF files in python.

borb is a library for reading, creating and manipulating PDF files in python.

Joris Schellekens 2.9k Jan 01, 2023
Python bindings for MuPDF's rendering library.

PyMuPDF 1.19.3 Release date: December 15, 2021 On PyPI since August 2016: Author Jorj X. McKie, based on original code by Ruikai Liu. Introduction PyM

Jorj X. McKie 0 Nov 03, 2022
pdf_sprinkles: sprinkles text in your PDFs

pdf_sprinkles: sprinkles text in your PDFs pdf_sprinkles remotely OCRs a PDF with Google Cloud Document AI, and returns the result as a PDF with searc

Will Angley 2 Dec 17, 2021
PyMuPDF is a Python binding with support for MuPDF

PyMuPDF is a Python binding with support for MuPDF (current version 1.18.*), a lightweight PDF, XPS, and E-book viewer, renderer, and toolkit, which is maintained and developed by Artifex Software, I

PyMuPDF 1.9k Jan 03, 2023
Trata PDF para torná-lo compatível com PDF/X e com impressoras em escala de cinza.

tratapdf Trata PDF para torná-lo compatível com PDF/X e com impressoras em escala de cinza. dependências icc-profiles ghostscript visualizador de PDF

1 Nov 30, 2021