Django endesive PDF digital signing utility. This package allows you to digitally sign a PDF document from your Django application. It is based on https://github.com/m32/endesive
In order to digitally sign your pdf documents you will need a valid p12 / pfx certificate. You can use a self-signed certificate for testing purposes but you should aquire a certificate from a Certificate Authority for production.
Special PDF certificates issued by partners on the AATL (Adobe Approved Trust List).
The full documentation is at https://django-endesive.readthedocs.io.
Install Django Endesive:
pip install django-endesive
Add it to your INSTALLED_APPS:
INSTALLED_APPS = (
...
'django_endesive.apps.DjangoEndesiveConfig',
...
)
Add the following to your setup to your settings.py file:
DJANGO_ENDESIVE = {
'PDF_CERTIFICATE_PATH': 'required: /path/to/your/certificate',
'PDF_CERTIFICATE_PASSWORD': 'optional: certificate password if applicable',
'PDF_ATTRIBUTES': {
'CONTACT': 'optional: <[email protected]>',
'LOCATION': 'optional: <your location>',
'REASON': 'optional: <Reason for Document validation>'
}
}
Here is a rather contrived example of how you would sign your pdf:
from django_endesive import pdf
from endesive.pdf import fpdf
# Generate a pdf file (this could be any file already generated by your app)
doc = fpdf.FPDF()
doc.add_page()
doc.set_font('helvetica', '', 13.0)
doc.cell(w=75.0, h=22.0, align='C',
txt='Hello, world page=1.', border=0, ln=0)
doc.output('./pdf.pdf', "F")
# Open file and feed bytes to the sign function
pdf_bytes = open('./pdf.pdf', 'rb').read()
signed_pdf = pdf.sign(pdf_bytes=pdf_bytes)
# signed_pdf bytes can now be written to a bytestream in memory or saved to a file on disk
Does the code actually work?
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install tox (myenv) $ tox
Tools used in rendering this package:
- This project was created by Lance Moore from Engineer ROI.