Coder Social home page Coder Social logo

24eme / signaturepdf Goto Github PK

View Code? Open in Web Editor NEW
303.0 16.0 40.0 3.75 MB

Free web software for signing PDFs and also organize pages, edit medata and compress pdf

Home Page: https://pdf.24eme.fr

License: GNU Affero General Public License v3.0

PHP 39.27% JavaScript 57.00% Makefile 0.90% CSS 1.77% Dockerfile 0.49% Smarty 0.22% Shell 0.34%
pdf signature pdf-sign pdf-signature pdf-signer php js pdf-compression pdf-compressor pdf-meta-editor

signaturepdf's Introduction

License: AGPL v3 État de la traduction

PDF Signature

Free web software for signing, organizing, editing metadatas or compressing PDFs.

Instances

List of instances where you can use this software:

Feel free to add yours through an issue or a pull request.

License

Open-source software under the AGPL V3 license.

Table of Contents

Installation

Configuration

Enabling and Configuring Multi-Signature Mode

This mode allows multiple people to sign a PDF, but it requires that the PDFs be stored on the server.

It is not mandatory to enable this mode for the application to work; it is an option.

Create the config/config.ini file

cp config/config.ini{.example,}

In the config/config.ini file, configure the PDF_STORAGE_PATH variable with the path where uploaded PDF files can be stored:

PDF_STORAGE_PATH=/path/to/folder

Create this folder:

mkdir /path/to/folder

The web server should have write permissions on this folder.

For example, for Apache:

chown www-data /path/to/folder/to/store/pdf

Disabling the Organize Mode

To disable the Organize mode, add DISABLE_ORGANIZATION=true to the config/config.ini file.

Hiding or Modifying the Demo PDF Link

To hide the demo PDF link, add PDF_DEMO_LINK=false to the config/config.ini file.

Default Fields for Metadata Editing

In the config/config.ini file, you can add as many fields as you want with the HTML input type (text, date, number, email, etc.) that will be preloaded for each PDF.

METADATA_DEFAULT_FIELDS[field1].type = "text"
METADATA_DEFAULT_FIELDS[field2].type = "text"
METADATA_DEFAULT_FIELDS[field3].type = "date"
METADATA_DEFAULT_FIELDS[field4].type = "number"

Update

The latest stable version is on the master branch. To update, simply fetch the latest changes:

git pull -r

Tests

To run functional tests:

make test

The tests are performed using puppeteer and jest.

To run the tests and view the browser (in debug mode):

DEBUG=1 make test

Libraries Used

For testing:

Contributions

Translation

To update the translation, simply execute make that will update the .pot file, which will merge the .po files which then will allow to create updated .mo files.

État de la traduction

Contributors

These people are the authors of the code of this software :

Vincent LAURENT (24ème), Jean-Baptiste Le Metayer (24ème), Xavier Garnier (Logilab), Simon Chabot (Logilab), Tangui Morlier (24ème), Gabriel POMA (24ème), Tanguy Le Faucheur (24ème), Étienne Deparis, battosai30

Fundings

  • 1 365 € excl. taxes from the company Logilab for the development of the shared signature feature
  • 1 950 € excl. taxes from the company Logilab for the development of the metadata editing feature
  • 100 € excl. taxes donations from the company Spirkop
  • 100 € excl. taxes donations from the company PDG IT
  • 1 040 € excl. taxes from the foundation NLNet pour software internationalization

The development of the software was primarily done during the working hours of 24ème employees.

Screenshots

Signature feature

image image

Organizing feature

image image

Metadata feature

image image

Compression feature

image

signaturepdf's People

Contributors

24emebot avatar atalanttore avatar axedoardo avatar battosai30 avatar chiuta avatar dsoulayrol avatar goofy-mdn avatar gpoma avatar guillaumev-cemea avatar jblemetayer avatar kosssi avatar maupao avatar metingur avatar milouse avatar simmstein avatar spiriospirio avatar tale-fau avatar teymour avatar tobigr avatar wincelau avatar xgaia avatar zirisut avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

signaturepdf's Issues

Utiliser $PDF_DEMO_LINK=True ne fonctionne pas.

Le README et le Dockerfile indiquent que la valeur par défaut de PDF_DEMO_LINK est True. Or, cela ne fonctionne pas.

En lisant le code, notamment ce commit on s’aperçoit qu’une URL est attendue.

More Language Options

I love how well your group of people have built this project.
I'm just wondering if you ever plan to integrate the option to change
languages?

Thank you for all you do.

Editer les métadonnées ne fonctionne pas

Bonjour,
J'ai installé le service et tout fonctionne parfaitement sauf l'édition de métadonnées. Voici les captures de l'interface : il n'y a pas la possibilité de choisir un PDF ou d'utiliser celui de l'exemple contrairement aux autres onglets.

(version installée : 1.3.0)

Merci par avance pour votre aide !

Capture d’écran du 2023-04-20 23-49-30
Capture d’écran du 2023-04-20 23-49-35

Edit : en analysant la page avec la console, le problème semble venir du document "metadata", j’ai le message "erreur 500 underfined variable $maxSize" juste après "le document PDF ne doit pas dépasser"

Faille de sécurité ?

Bonjour,

Est ce que l'application pourrait être exploitée par des PDF malicieux ?

Je n'ai pas le temps de vérifier mais j'imagine que ça serait intéressant de le savoir.

PS: J'ai connu votre application par Nebulae, félicitation 24eme à l'air d'être une super boite \o/ surtout que vous utilisez Cozy Banks (que j'ai aidé à développer) pour votre compte en banque.

Pouvoir supprimer un svg ajouté au pdf depuis un téléphone

Actuellement il est possible de le faire à l'aide de la touche supprimé, mais pour un un téléphone ça ne permet pas de le faire.

Peut être avec une petite bar d'outils qui apparaitrait lorsqu'un objet est séléctionné ou bien avec un appui long sur l'objet puis une popup de confirmation.

Image docker

Permettre le déploiement du projet via docker

[Docker] Image cassée depuis la version 1.3.0

Bonjour,

Tout d'abord, merci pour cette app très utile ❤️

Je pense qu'il y a un problème suite à la modification du Dockerfile et de l'ajout de l'instruction USER www-data depuis la v1.3.0.
En effet cela rentre en conflit avec l'entrypoint.sh qui précise :

envsubst < /usr/local/signaturepdf/config/apache.conf > /etc/apache2/sites-available/signaturepdf.conf
envsubst < /usr/local/signaturepdf/config/php.ini > /usr/local/etc/php/conf.d/uploads.ini
envsubst < /usr/local/signaturepdf/config/config.ini.tpl > /usr/local/signaturepdf/config/config.ini
chown -R www-data:www-data /usr/local/signaturepdf && chmod 750 -R /usr/local/signaturepdf

Au démarrage on se retrouve donc avec ces erreurs :

signaturepdfdocker-app-1  | /usr/local/signaturepdf/entrypoint.sh: line 3: /etc/apache2/sites-available/signaturepdf.conf: Permission denied
signaturepdfdocker-app-1  | /usr/local/signaturepdf/entrypoint.sh: line 5: /usr/local/etc/php/conf.d/uploads.ini: Permission denied
signaturepdfdocker-app-1  | /usr/local/signaturepdf/entrypoint.sh: line 7: /usr/local/signaturepdf/config/config.ini: Permission denied
signaturepdfdocker-app-1  | chown: changing ownership of '/usr/local/signaturepdf/config/config.ini': Operation not permitted

car évidemment www-data n'a pas les droits pour faire ces modifications sur le filesystem.

L'accès à l'appli par le navigateur retourne ensuite une 403 car c'est le vhost par défaut qui répond.

ping @xgaia qui avait mis en place le build Docker si je ne me trompe pas.

Génération de PDF en full client side

Actuellement signaturepdf envoie les informations de signature au serveur et stocke le pdf sur le serveur pour ensuite génerer le PDF final avec du code serveur.

Dans le cadre d'une intégration de l'UI de signaturepdf dans CryptPad (une solution de drive chiffré de bout en bout permettant entre autre le stockage de PDF et le partage collaboratif), il est nécessaire de faire la génération de PDF client side.

L'objectif est d'ouvrir le PDF, d'y intégrer les signatures et annotations et de resauver le PDF

Demande de subvention à la NLnet Foundation

Le 30 septembre 2022 nous avons soumis une demande de subvention à la NLNet Foundation de 16250 € pour apporter des évolutions à PDF Signature.

La demande complète : 20220930_nlnet_signaturepdf_2022-10-106.txt

Le budget demandé servira à réaliser les fonctionnalités suivantes :

Améliorer la confidentialité des données qui transitent sur le serveur :

  • Chiffrer les PDF transmis et stockés sur le serveurs

La souveraineté et la maitrise de ses données personnelles :

  • Permettre de demander la suppression d'un pdf partagé à tous moment
  • Permettre de stocker les PDF sur une instance de nextcloud plutôt que sur le serveur où le logiciel est installé

De facilité l'intégration de signatures dans d'autres logiciels libres :

  • Intégrer Signature PDF dans nextcloud en développant une extension pour pouvoir signer un PDF à partir de l'interface nextcloud
  • Construire un paquet debian d'installation

L'ajout de fonctionnalités permettant aux utilisateurs de services similaires privateurs et propriétaire d'en être moins dépendants :

  • Signature signé et vérifié à l'aide d'une clé
  • Interface de saisie des zone d'éditions d'un PDF
  • Remplir les zones d'éditions signature standard (Signature Field / Acroform) d'un PDF
  • Permettre de compresser, réduire la taille du fichier PDF
  • Ajouter un mode signature hiérarchique avec des personnes prédifinis et des zones de signature et paraphe bien précises

Internationalisation :

  • Internationalisation de l'interface

Rendre le texte séléctionnable dans la visu du PDF

Actuellement quand on clique on qu'on tente de séléctionner quelque chose sur le canva d'une page du PDF on peut faire une séléction multiple, mais je ne suis pas sur que ce soit très utile. J'ai l'impression qu'il serait mieux de pouvoir séléctionner du texte dans le PDF pour éventuellement faire des copier coller.

Partage du PDF signé

Permettre de partager un lien vers le PDF Signé pour y ajouter une nouvelle signature.

[doc] manque cas d'usages

Bonjour,
Ça semble un chouette projet :-)

Je n'ai pas trouvé de doc "fonctionnelle" genre à quoi ça sert ? Quid de clé pour la signature ? La valeur probante ?

Merci <3

Modularisation de signaturepdf pour intégration dans CryptPad sans forker

Une intégration/fork de singaturepdf a été réalisé. Le code est ici:

https://github.com/xwiki-labs/cryptpad/tree/signpdf/www/sign

Cependant il a été nécessaire de forker pour plusieurs raisons:

1/ Remplacement de la generation server-side par client-side (voir #45)
2/ Besoin de modifier le code qui charge le PDF dans l'UI signaturepdf. CryptPad récupère le fichier par son propre système. Il faudrait être capable soit de fournir le fichier à la librairie signaturepdf full client side ou de choisir une methode alternative pour aller chercher le fichier
3/ Besoin de stocker la configuration des éléments de signature dans Cryptpad et pas dans localstorage (non possible dans le contexte CryptPad). De la même manière il faudrait pouvoir fournir une API pour stocker les configurations des élements de signature
Une fonction non implementé dans le cas CryptPad pourrait être aussi de choisir comme image une image de son drive. Donc il pourrait être intéressant de pouvoir ajouter une tab à la popup pour créer un élement de signature)
4/ Modifications de CSS et d'HTML pour s'afficher correctement dans l'interface CryptPad (qui a déjà une sidebar et un header)
5/ Ajout d'un bouton pour stocker le fichier signé dans le drive cryptpad

Tous ces éléments demandent plus de modularization afin de pouvoir "utiliser la libraire signaturepdf" plutôt que de la forker.

Typo

Il faudrait corriger le texte au dessus de la création de signature

Dessiner à main lever => Dessiner à main levée

Les accents font planter l'enregistrement

Quand on écrit du texte avec un accent (ex: é), lors de la sauvegarde on se retrouve avec une page blanche (et accessoirement on perd nos modifications en revenant en arrière)

Testé avec « é » et « É »

Chiffrer les PDF sur le serveur

Chiffrer les pdf stocké sur le serveur, seul l'utilisateur pourrait le déchiffrer à l'aide d'une clé stocké en localstorage dans son navigateur et passé à chaque requête.

Alpine issue

Hi guys,

Very cool project :)

As I like to work with Proxmox and Alpine containers, I tried this environnement to install signaturepdf.

So :

  • Alpine 3.15
  • Php8
  • Nginx

Everything works except when I try to download the signed pdf : I see a POST /sign with HTTP 200 response, but the screen stay white. No error in logs ...

If you have any clue ...

It's not a emergency at all, I installed it with success in a Debian container + apache + php7.4, it's just curiosity and if I can stay on Alpine I prefer ;)

Regards

Conserver la séléction d'un svg active

À chaque ajout de svg dans le pdf, la séléction du svg dans la colonne de droite disparait.

Il serai intéressant d'avoir une possibilité de conserver la séléction d'un svg active notamment pour les paraphage.

POST des SVG en mode input file

Dans le formulaire de téléchargement du PDF signé, remplacer les input type hidden qui permettent de poster un svg par page du pdf par des input file.

Ainsi le traitement du formulaire en php permettra les vérifications classiques sur les fichiers postés

ne fonctionne pas avec Firefox

Bonjour,
Superbe application.
Elle fonctionne très bien sur Chromium.
Malheureusement, ça ne fonctionne pas sur Firefox (version testée: 95.0 en safe mode donc sans aucune extension)
Que manque-t-il pour que ça fonctionne avec Firefox?
Merci

Intégration Nextcloud

Si vous voulez faire des demandes de financement, je fais ma liste au père noel! 🙃

PDF en multisignature : chiffrer le pdf et les calques sur le serveur

En multisignature, le PDF et les calques des signatures sont stockés sur le serveur.

Pour un service mis à disposition publiquement, il serait utile que ces fichiers soient stockés chiffré.

L'url de partage pourrait être constituée d'une ancre contenant une clé symétrique de chiffrement. Ainsi le détenteur du serveur ne pourrait pas lire les fichiers. La clé ne transiterait alors qu'en POST et ne serait donc pas lisible dans les logs du serveur.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.