mirror of
https://github.com/24eme/signaturepdf.git
synced 2023-08-25 09:33:08 +02:00
Free web software for signing PDFs and also organize pages, edit medata and compress pdf
https://pdf.24eme.fr
.github/workflows | ||
public | ||
templates | ||
tests | ||
vendor/fatfree | ||
.editorconfig | ||
.gitignore | ||
apache.conf | ||
app.php | ||
Dockerfile | ||
LICENSE | ||
Makefile | ||
php.ini | ||
README.md |
Signature de PDF
Logiciel web libre permettant de signer un PDF.
Instances
Liste des instances permettant d'utiliser ce logiciel :
License
Logiciel libre sous license AGPL V3
Installation
Dépendances :
- php >= 5.6
- rsvg-convert
- pdftk
- imagemagick
- potrace
Sur debian :
sudo aptitude install php librsvg2-bin pdftk imagemagick potrace
Récupération des sources :
git clone https://github.com/24eme/signaturepdf.git
Pour le lancer :
php -S localhost:8000 -t public
Configuration de PHP
upload_max_filesize = 24M # Taille maximum du fichier PDF à signer
post_max_size = 24M # Taille maximum du fichier PDF à signer
max_file_uploads = 201 # Nombre de pages maximum du PDF, ici 200 pages + le PDF d'origine
Déployer avec apache
DocumentRoot /path/to/signaturepdf/public
<Directory /path/to/signaturepdf/public>
Require all granted
FallbackResource /index.php
php_value max_file_uploads 201
php_value upload_max_filesize 24M
php_value post_max_size 24M
</Directory>
Déployer avec docker
Construction de l'image
docker build -t signaturepdf .
Lancement d'un conteneur
docker run -d --name=signaturepdf -p 8080:80 signaturepdf
Configuration
Les variables suivantes permettent de configurer le déployement :
Variable | description | exemple | defaut |
---|---|---|---|
SERVERNAME |
url de déploiement | pdf.24eme.fr |
localhost |
UPLOAD_MAX_FILESIZE |
Taille maximum du fichier PDF à signer | 48 | 24M |
POST_MAX_SIZE |
Taille maximum du fichier PDF à signer | 48 | 24M |
MAX_FILE_UPLOADS |
Nombre de pages maximum du PDF, ici 200 pages + le PDF d'origine | 401 | 201 |
docker run -d --name=signaturepdf -p 8080:80 -e SERVERNAME=pdf.example.org -e UPLOAD_MAX_FILESIZE=48M -e POST_MAX_SIZE=48M -e MAX_FILE_UPLOADS=401 signaturepdf
Tests
Pour exécuter les tests fonctionnels :
make test
Les tests sont réalisés avec puppeteer
et jest
.
Pour lancer les tests et voir le navigateur (en mode debug) :
DEBUG=1 make test
Librairies utilisées
- Fat-Free micro framework PHP : https://github.com/bcosca/fatfree (GPLv3)
- Bootstrap framework html, css et javascript : https://getbootstrap.com/ (MIT)
- PDF.js librairie de lecture de PDF dans un canvas HTML : https://github.com/mozilla/pdf.js (Apache-2.0)
- Fabric.js librairie pour manipuler un canvas HTML : https://github.com/fabricjs/fabric.js (MIT)
- PDFtk outils de manipulation de PDF (GPL)
- librsvg outils de manipulation de SVG : https://gitlab.gnome.org/GNOME/librsvg (LGPL-2+)
- potrace outils de transformation d'image bitamp en image vectorisé : http://potrace.sourceforge.net/ (GPLv2)
- OpenType.js outils de transformation d'un texte et sa police en chemin : https://github.com/opentypejs/opentype.js (MIT)
- ImageMagick ensemble d'outils de manipulation d'images : https://imagemagick.org/ (Apache-2.0)
- Caveat police de caractères style écriture à la main : https://github.com/googlefonts/caveat (OFL-1.1)
Pour les tests :
- Jest Framework de Test Javascript : https://jestjs.io/ (MIT)
- Puppeteer librairie Node.js pour contrôler un navigateur : https://github.com/puppeteer/puppeteer (Apache-2.0)