PHPackages                             24eme/signaturepdf - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PDF &amp; Document Generation](/categories/documents)
4. /
5. 24eme/signaturepdf

ActiveProject[PDF &amp; Document Generation](/categories/documents)

24eme/signaturepdf
==================

Free open-source web software for signing PDF (alone or with others) and also organize pages, edit medata and compress pdf

v1.10.0(2w ago)8060109[57 issues](https://github.com/24eme/signaturepdf/issues)[9 PRs](https://github.com/24eme/signaturepdf/pulls)AGPL-3.0-onlyJavaScriptPHP &gt;=7.2CI passing

Since Jun 12Pushed 1w ago16 watchersCompare

[ Source](https://github.com/24eme/signaturepdf)[ Packagist](https://packagist.org/packages/24eme/signaturepdf)[ Fund](https://liberapay.com/SignaturePDF)[ RSS](/packages/24eme-signaturepdf/feed)WikiDiscussions master Synced today

READMEChangelog (10)DependenciesVersions (2)Used By (0)

[![License: AGPL v3](https://camo.githubusercontent.com/c61341f63648cdd5aba4f7a073b513106a63778c27b15f96c56157642bc943b4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4147504c25323076332d626c75652e737667)](https://www.gnu.org/licenses/agpl-3.0) [![État de la traduction](https://camo.githubusercontent.com/8aa54a3061c500407b9606b63e7231f5e31c65262664ed88bd16a049dacfdf4f/68747470733a2f2f686f737465642e7765626c6174652e6f72672f7769646765742f7369676e61747572652d7064662f6170706c69636174696f6e2f7376672d62616467652e737667)](https://hosted.weblate.org/engage/signature-pdf/) [![Docker Pull](https://camo.githubusercontent.com/c2c2877e75ab1da01ca2e55e8f206d8b3025001d6ce8324ac1f808959d1a1835/68747470733a2f2f696d672e736869656c64732e696f2f646f636b65722f70756c6c732f78676169612f7369676e6174757265706466)](https://hub.docker.com/r/xgaia/signaturepdf) [![Install Signaturepdf with YunoHost](https://camo.githubusercontent.com/7f9ee377b138a9d111e7547925b4955464085471d42ee89dc3d1af964e2ac12c/68747470733a2f2f696e7374616c6c2d6170702e79756e6f686f73742e6f72672f696e7374616c6c2d776974682d79756e6f686f73742e737667)](https://apps.yunohost.org/app/signaturepdf)

Signature PDF
=============

[](#signature-pdf)

[![Logo signature PDF](https://github.com/24eme/signaturepdf/raw/master/public/logo.svg)](https://github.com/24eme/signaturepdf/blob/master/public/logo.svg)

Free web software for signing (alone or with others), organizing (merge, sort, rotate, delete, extract pages, ...), editing metadatas or compressing PDFs.

Instances
---------

[](#instances)

List of instances where you can use this software:

- [pdf.24eme.fr](https://pdf.24eme.fr) (by [24eme](https://www.24eme.fr/services-libres/))
- [pdf.libreon.fr](https://pdf.libreon.fr) (by [Libreon](https://libreon.fr/))
- [signature.pdf.hostux.net](https://signature.pdf.hostux.net) (by [Hostux](https://hostux.network/))
- [pdf.nebulae.co](https://pdf.nebulae.co) (by [Nebulae](https://nebulae.co/))
- [pdf.kaosx.ovh](https://pdf.kaosx.ovh)
- [pdf.ti-nuage.fr](https://pdf.ti-nuage.fr) (by [Ti Nuage](https://www.ti-nuage.fr/))
- [pdf.cemea.org](https://pdf.cemea.org) (by [Les Ceméa](https://mallette.cemea.org))
- [pdf.caph.info](https://pdf.caph.info) (by [caph.info](https://caph.info))
- [pdf.spirio.fr](https://pdf.spirio.fr) (by [Spirio.fr](https://spirio.fr/))
- [pdf.sequanux.org](https://pdf.sequanux.org) (by [Sequanux](https://www.sequanux.org/))
- [pdf.deblan.org](https://pdf.deblan.org) (by [Deblan](https://wiki.deblan.org/hosting/overview/))
- [pdf.ouvaton.coop](https://pdf.ouvaton.coop) (by [OUVATON](https://ouvaton.coop/))
- [signpdf.liber-it.fr](https://signpdf.liber-it.fr) (by [Liber-IT](https://site.liber-it.fr/))
- [signaturepdf.linux07.fr](https://signaturepdf.linux07.fr) (by [Linux07](https://linux07.fr/))
- [signpdf.blablalinux.be](https://signpdf.blablalinux.be) (by [Blabla Linux](https://blablalinux.be/))
- [framapdf.org](https://framapdf.org/home) (by [Framasoft](https://framasoft.org))
- [pdf.s2s.video](https://pdf.s2s.video) (by [s2s](https://www.s2s.video))

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

License
-------

[](#license)

Open-source software under the AGPL V3 license.

Table of Contents
-----------------

[](#table-of-contents)

- [Installation](#installation)
    - [Debian/Ubuntu](installation.md#debian-ubuntu)
    - [Docker](installation.md#deploy-with-docker)
    - [Linux Alpine](installation.md#alpine)
    - [Package](installation.md#package)
- [Configuration](#configuration)
    - [Enabling and Configuring Multi-Signature Mode](#enabling-and-configuring-multi-signature-mode)
    - [Disabling the Organize Mode](#disabling-the-organize-mode)
    - [Hiding or Modifying the Demo PDF Link](#hiding-or-modifying-the-demo-pdf-link)
    - [Customize the CSS](#customize-the-css)
    - [Custom retention period for shared PDF](#custom-retention-period-for-shared-pdf)
    - [Default Fields for Metadata Editing](#default-fields-for-metadata-editing)
- [Update](#update)
- [Tests](#tests)
- [Libraries Used](#libraries-used)
- [Contributions](#contributions)
- [Screenshots](#screenshots)

Installation
------------

[](#installation)

- [Debian/Ubuntu](installation.md#debian-ubuntu)
- [Docker](installation.md#deploy-with-docker)
- [Linux Alpine](installation.md#alpine)
- [Package](installation.md#package)

Configuration
-------------

[](#configuration)

### Enabling and Configuring Multi-Signature Mode

[](#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

```

You can enable PDFs to be stored encrypted on the server with a symmetric key known only to the signers.

To activate it, gpg needs to be installed and option PDF\_STORAGE\_ENCRYPTION must be set to true.

In the `config/config.ini` file :

```
PDF_STORAGE_ENCRYPTION=true

```

### Enabling digital signature

[](#enabling-digital-signature)

The digital signature depends on `pdfsig` from the poppler project (poppler-utils debian package) and `certutil` from libnss3 project (libnss3-tools debian package).

On debian :

```
sudo apt-get install poppler-utils libnss3-tools

```

To enable digital signature, create certificates in a NSS database. The shell script `create_nss_certs.sh` in `tools` helps to do it :

```
 bash tools/create_nss_certs.sh NSS_DIRECORY/ MY_NSS_PASSWORD MY_CERT_NICK MY_SIGNATUREPDF_URL

```

Once created, set the following directives in the `config/config.ini` file.

```
NSS3_DIRECTORY=NSS_DIRECORY/
NSS3_PASSWORD="MY_NSS_PASSWORD"
NSS3_NICK="MY_CERT_NICK"

```

You must then set the rights on the nss folder and its contents so that the web server has read access to it.

For example with apache on debian :

```
chown www-data:www-data -R NSS_DIRECORY

```

### Disabling the Organize Mode

[](#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

[](#hiding-or-modifying-the-demo-pdf-link)

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

### Customize the CSS

[](#customize-the-css)

It's possible to add a custom CSS file to the location `public/css/app-specific.css`.

If this file exists, it will be loaded automatically.

### Custom retention period for shared PDF

[](#custom-retention-period-for-shared-pdf)

In `config/config.ini` file activate these options :

```
[signature]

; Enable custom retention period for shared PDF
; This override the default retention periods
; Warning: Text on the right of the colon will be translated according to the .po files
;retention[+1 year]="for one year"
;retention[+6 months]="for six months"
;retention[+1 month]="for one month"
;retention[+1 week]="for one week"
;retention[+1 day]="for one day"
;retention[+1 hour]="for one hour"

retention[+10 days]="for ten days"

```

This configuration allows the retention of the PDF for only 10 days

### Default Fields for Metadata Editing

[](#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
------

[](#update)

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

```
git pull -r

```

Tests
-----

[](#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
--------------

[](#libraries-used)

- **Fat-Free** PHP micro framework:  (GPLv3)
- **Bootstrap** HTML, CSS, and JavaScript framework:  (MIT)
- **PDF.js** JavaScript library for rendering PDFs in an HTML canvas:  (Apache-2.0)
- **Fabric.js** JavaScript library for manipulating an HTML canvas:  (MIT)
- **PDFtk** PDF manipulation tools (GPL)
- **librsvg** SVG manipulation tools:  (LGPL-2+)
- **potrace** Bitmap to vector image conversion tools:  (GPLv2)
- **OpenType.js** Tools for converting text and its font into paths:  (MIT)
- **ImageMagick** Image manipulation toolset:  (Apache-2.0)
- **Caveat** Handwriting-style font:  (OFL-1.1)
- **PDF-LIB** JavaScript library for PDF manipulation used for writing metadata:  (MIT), we use the fork  still maintained
- **Ghostscript** GPL Ghostscript is a software suite for processing PostScript and PDF file formats (GPLv3)
- **GPG** GnuPG allows you to encrypt and sign your data and communications (GPLv3)

For testing:

- **Jest** JavaScript Testing Framework:  (MIT)
- **Puppeteer** Node.js library for controlling a web browser:  (Apache-2.0)

Contributions
-------------

[](#contributions)

### Translation

[](#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](https://camo.githubusercontent.com/45c2b42601bdd16d3cc0466bbb20346fa2eb3a2df3f64e6e3e60fa1c2fcc2c30/68747470733a2f2f686f737465642e7765626c6174652e6f72672f7769646765742f7369676e61747572652d7064662f6170706c69636174696f6e2f6d756c74692d677265656e2e737667)](https://hosted.weblate.org/engage/signature-pdf/)

### Contributors

[](#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

[](#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 for software internationalization
- 1 040 € excl. taxes from the foundation NLNet for compress / Reduce PDF File Size
- 1 040 € excl. taxes from the foundation NLNet for encrypt PDFs transmitted and stored on servers
- 1 040 € excl. taxes from the foundation NLNet for signature signed and verified with a key
- 1 040 € excl. taxes from the foundation NLNet for client side organization of the PDF
- 520 € excl. taxes from the foundation NLNet for debian package
- 520 € excl. taxes from the foundation NLNet for allow PDFs to be stored outside

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

Screenshots
-----------

[](#screenshots)

### Signature feature

[](#signature-feature)

[![image](https://private-user-images.githubusercontent.com/71143205/271980065-c3e8b8d2-3f94-45a3-a8fd-143077443337.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4ODUxNzIsIm5iZiI6MTc4Mjg4NDg3MiwicGF0aCI6Ii83MTE0MzIwNS8yNzE5ODAwNjUtYzNlOGI4ZDItM2Y5NC00NWEzLWE4ZmQtMTQzMDc3NDQzMzM3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDA1NDc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk4NmNjZTU3OTM1ODJiNGRiOGNiNDZjYmE0NmY5NGJlZjNlYzc0MDg3NzczOWZkNWU5ODEyNjM3MDQzZjM0MTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.RKYJCmTBU4yg1damta2KVyf2lB1AUn5fXVXz3CiqG4Q)](https://private-user-images.githubusercontent.com/71143205/271980065-c3e8b8d2-3f94-45a3-a8fd-143077443337.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4ODUxNzIsIm5iZiI6MTc4Mjg4NDg3MiwicGF0aCI6Ii83MTE0MzIwNS8yNzE5ODAwNjUtYzNlOGI4ZDItM2Y5NC00NWEzLWE4ZmQtMTQzMDc3NDQzMzM3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDA1NDc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk4NmNjZTU3OTM1ODJiNGRiOGNiNDZjYmE0NmY5NGJlZjNlYzc0MDg3NzczOWZkNWU5ODEyNjM3MDQzZjM0MTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.RKYJCmTBU4yg1damta2KVyf2lB1AUn5fXVXz3CiqG4Q)[![image](https://private-user-images.githubusercontent.com/71143205/271980318-4deeb6fb-caa9-4365-895e-d22177a6ec3b.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4ODUxNzIsIm5iZiI6MTc4Mjg4NDg3MiwicGF0aCI6Ii83MTE0MzIwNS8yNzE5ODAzMTgtNGRlZWI2ZmItY2FhOS00MzY1LTg5NWUtZDIyMTc3YTZlYzNiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDA1NDc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZlNTI0MmQ1ZGQ1MzkwMWY1OWU1NmMxM2IzYTBmYWU5MDFjMGNkNTQ4NTIyNzg2ZTRkMjY4YzI5NjBlMjA3ZmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.IE7FlndMrbN2_kyoNivaGApiZ_lCCHrMgkBejpL-DRM)](https://private-user-images.githubusercontent.com/71143205/271980318-4deeb6fb-caa9-4365-895e-d22177a6ec3b.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4ODUxNzIsIm5iZiI6MTc4Mjg4NDg3MiwicGF0aCI6Ii83MTE0MzIwNS8yNzE5ODAzMTgtNGRlZWI2ZmItY2FhOS00MzY1LTg5NWUtZDIyMTc3YTZlYzNiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDA1NDc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZlNTI0MmQ1ZGQ1MzkwMWY1OWU1NmMxM2IzYTBmYWU5MDFjMGNkNTQ4NTIyNzg2ZTRkMjY4YzI5NjBlMjA3ZmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.IE7FlndMrbN2_kyoNivaGApiZ_lCCHrMgkBejpL-DRM)

### Organizing feature

[](#organizing-feature)

[![image](https://private-user-images.githubusercontent.com/71143205/271980451-800c45a4-4c4c-42d5-b09b-c81cfcc0e6e0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4ODUxNzIsIm5iZiI6MTc4Mjg4NDg3MiwicGF0aCI6Ii83MTE0MzIwNS8yNzE5ODA0NTEtODAwYzQ1YTQtNGM0Yy00MmQ1LWIwOWItYzgxY2ZjYzBlNmUwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDA1NDc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM4MDZiMzljZTViOWVmNWFkYWJjMTFiNWU4MGNlNjA4ODM0ZDI2ODVlMGI5MDBlZGQzODE1NzI2YjY1NWY1MWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.Vdy4PT2U-yuC7nlz48W5bdBd9jYYXrMFqkpJNG6cvdo)](https://private-user-images.githubusercontent.com/71143205/271980451-800c45a4-4c4c-42d5-b09b-c81cfcc0e6e0.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4ODUxNzIsIm5iZiI6MTc4Mjg4NDg3MiwicGF0aCI6Ii83MTE0MzIwNS8yNzE5ODA0NTEtODAwYzQ1YTQtNGM0Yy00MmQ1LWIwOWItYzgxY2ZjYzBlNmUwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDA1NDc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM4MDZiMzljZTViOWVmNWFkYWJjMTFiNWU4MGNlNjA4ODM0ZDI2ODVlMGI5MDBlZGQzODE1NzI2YjY1NWY1MWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.Vdy4PT2U-yuC7nlz48W5bdBd9jYYXrMFqkpJNG6cvdo)[![image](https://private-user-images.githubusercontent.com/71143205/271980580-a008d765-3a74-4ab4-b2bc-4af6c81575fe.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4ODUxNzIsIm5iZiI6MTc4Mjg4NDg3MiwicGF0aCI6Ii83MTE0MzIwNS8yNzE5ODA1ODAtYTAwOGQ3NjUtM2E3NC00YWI0LWIyYmMtNGFmNmM4MTU3NWZlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDA1NDc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdlYmFlNzNjYzMyN2RjYzllNGFlZWUzOGQ4YjcyODgxZmM1YmUxOGNhY2U4NWI3MzBmYzM5NTE5YTVkOGE5YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.P9x1HzQz-NTw2hfAzX-DNYRDVwRC5nx9cyfk1U40eL4)](https://private-user-images.githubusercontent.com/71143205/271980580-a008d765-3a74-4ab4-b2bc-4af6c81575fe.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4ODUxNzIsIm5iZiI6MTc4Mjg4NDg3MiwicGF0aCI6Ii83MTE0MzIwNS8yNzE5ODA1ODAtYTAwOGQ3NjUtM2E3NC00YWI0LWIyYmMtNGFmNmM4MTU3NWZlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDA1NDc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdlYmFlNzNjYzMyN2RjYzllNGFlZWUzOGQ4YjcyODgxZmM1YmUxOGNhY2U4NWI3MzBmYzM5NTE5YTVkOGE5YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.P9x1HzQz-NTw2hfAzX-DNYRDVwRC5nx9cyfk1U40eL4)

### Metadata feature

[](#metadata-feature)

[![image](https://private-user-images.githubusercontent.com/71143205/271980688-f543d665-0ab0-4d2b-8be1-39238879bd6c.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4ODUxNzIsIm5iZiI6MTc4Mjg4NDg3MiwicGF0aCI6Ii83MTE0MzIwNS8yNzE5ODA2ODgtZjU0M2Q2NjUtMGFiMC00ZDJiLThiZTEtMzkyMzg4NzliZDZjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDA1NDc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYyMTQ5MDQ1NjhiOTgwOGY4NTljMDRmZDdkZmZhZGFjOTYyNWJhZDAzOWY5MmU0ZWJiOTFmYjYzNjk3MDUyYzcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.EmzbVt69WTXbg7SFLIhAXece7AlAzTnK7ELnYJpCEvU)](https://private-user-images.githubusercontent.com/71143205/271980688-f543d665-0ab0-4d2b-8be1-39238879bd6c.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4ODUxNzIsIm5iZiI6MTc4Mjg4NDg3MiwicGF0aCI6Ii83MTE0MzIwNS8yNzE5ODA2ODgtZjU0M2Q2NjUtMGFiMC00ZDJiLThiZTEtMzkyMzg4NzliZDZjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDA1NDc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYyMTQ5MDQ1NjhiOTgwOGY4NTljMDRmZDdkZmZhZGFjOTYyNWJhZDAzOWY5MmU0ZWJiOTFmYjYzNjk3MDUyYzcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.EmzbVt69WTXbg7SFLIhAXece7AlAzTnK7ELnYJpCEvU)[![image](https://private-user-images.githubusercontent.com/71143205/271980828-1f195bae-4af3-4d7b-9e31-3acd7552c2eb.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4ODUxNzIsIm5iZiI6MTc4Mjg4NDg3MiwicGF0aCI6Ii83MTE0MzIwNS8yNzE5ODA4MjgtMWYxOTViYWUtNGFmMy00ZDdiLTllMzEtM2FjZDc1NTJjMmViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDA1NDc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQzMjNlZjI0YjE3YTFmNzE5M2IxMTFhYjljZGU5YmNhYzMwZTQ2MzZlNTBlYjQ3YWU2YjI3OWRhNDAxOTEzNGYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.cY6Tl0BrXUgDtMI6mRiRlEz7Xs6jZCxiYngS6o6B1R8)](https://private-user-images.githubusercontent.com/71143205/271980828-1f195bae-4af3-4d7b-9e31-3acd7552c2eb.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4ODUxNzIsIm5iZiI6MTc4Mjg4NDg3MiwicGF0aCI6Ii83MTE0MzIwNS8yNzE5ODA4MjgtMWYxOTViYWUtNGFmMy00ZDdiLTllMzEtM2FjZDc1NTJjMmViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDA1NDc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQzMjNlZjI0YjE3YTFmNzE5M2IxMTFhYjljZGU5YmNhYzMwZTQ2MzZlNTBlYjQ3YWU2YjI3OWRhNDAxOTEzNGYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.cY6Tl0BrXUgDtMI6mRiRlEz7Xs6jZCxiYngS6o6B1R8)

### Compression feature

[](#compression-feature)

[![image](https://private-user-images.githubusercontent.com/71143205/271980937-7d0e93a3-5567-4545-9c43-033b9028b036.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4ODUxNzIsIm5iZiI6MTc4Mjg4NDg3MiwicGF0aCI6Ii83MTE0MzIwNS8yNzE5ODA5MzctN2QwZTkzYTMtNTU2Ny00NTQ1LTljNDMtMDMzYjkwMjhiMDM2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDA1NDc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE1ZDgxOTgzODljNjFmYjAyYmU3Mjk2Y2JjNzdhMGE4ZDdkYzMxOWQ4MmQyZjZjNDA2YTc1Mzc3N2Q1NDg1ODImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.mg-eo8ZpagdTepMBOcBZCHJRre-wPofx9tVO0HthxF4)](https://private-user-images.githubusercontent.com/71143205/271980937-7d0e93a3-5567-4545-9c43-033b9028b036.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4ODUxNzIsIm5iZiI6MTc4Mjg4NDg3MiwicGF0aCI6Ii83MTE0MzIwNS8yNzE5ODA5MzctN2QwZTkzYTMtNTU2Ny00NTQ1LTljNDMtMDMzYjkwMjhiMDM2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDA1NDc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE1ZDgxOTgzODljNjFmYjAyYmU3Mjk2Y2JjNzdhMGE4ZDdkYzMxOWQ4MmQyZjZjNDA2YTc1Mzc3N2Q1NDg1ODImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.mg-eo8ZpagdTepMBOcBZCHJRre-wPofx9tVO0HthxF4)

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance96

Actively maintained with recent releases

Popularity25

Limited adoption so far

Community31

Small or concentrated contributor base

Maturity28

Early-stage or recently created project

 Bus Factor1

Top contributor holds 68.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

19d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/cd0bd5d918a1f4045f727cd441e9e5fff854b47cd2537c1853431b9a16155a59?d=identicon)[wincelau](/maintainers/wincelau)

---

Top Contributors

[![wincelau](https://avatars.githubusercontent.com/u/6379869?v=4)](https://github.com/wincelau "wincelau (841 commits)")[![gpoma](https://avatars.githubusercontent.com/u/46679094?v=4)](https://github.com/gpoma "gpoma (160 commits)")[![tale-fau](https://avatars.githubusercontent.com/u/71143205?v=4)](https://github.com/tale-fau "tale-fau (45 commits)")[![weblate](https://avatars.githubusercontent.com/u/1607653?v=4)](https://github.com/weblate "weblate (33 commits)")[![jblemetayer](https://avatars.githubusercontent.com/u/12171211?v=4)](https://github.com/jblemetayer "jblemetayer (27 commits)")[![teymour](https://avatars.githubusercontent.com/u/576179?v=4)](https://github.com/teymour "teymour (27 commits)")[![24emebot](https://avatars.githubusercontent.com/u/15691680?v=4)](https://github.com/24emebot "24emebot (17 commits)")[![xabirequejo](https://avatars.githubusercontent.com/u/888924?v=4)](https://github.com/xabirequejo "xabirequejo (10 commits)")[![albanobattistella](https://avatars.githubusercontent.com/u/34811668?v=4)](https://github.com/albanobattistella "albanobattistella (9 commits)")[![Atalanttore](https://avatars.githubusercontent.com/u/628474?v=4)](https://github.com/Atalanttore "Atalanttore (8 commits)")[![xgaia](https://avatars.githubusercontent.com/u/18330770?v=4)](https://github.com/xgaia "xgaia (8 commits)")[![rodinux](https://avatars.githubusercontent.com/u/11272759?v=4)](https://github.com/rodinux "rodinux (6 commits)")[![maupao](https://avatars.githubusercontent.com/u/5460156?v=4)](https://github.com/maupao "maupao (4 commits)")[![metingur](https://avatars.githubusercontent.com/u/3920878?v=4)](https://github.com/metingur "metingur (3 commits)")[![mercihabam](https://avatars.githubusercontent.com/u/68013195?v=4)](https://github.com/mercihabam "mercihabam (3 commits)")[![simmstein](https://avatars.githubusercontent.com/u/520175?v=4)](https://github.com/simmstein "simmstein (2 commits)")[![dannielou](https://avatars.githubusercontent.com/u/2053772?v=4)](https://github.com/dannielou "dannielou (2 commits)")[![chiuta](https://avatars.githubusercontent.com/u/154055545?v=4)](https://github.com/chiuta "chiuta (2 commits)")[![ldidry](https://avatars.githubusercontent.com/u/922350?v=4)](https://github.com/ldidry "ldidry (2 commits)")[![lodev](https://avatars.githubusercontent.com/u/818569?v=4)](https://github.com/lodev "lodev (2 commits)")

---

Tags

jspdfpdf-compressionpdf-compressorpdf-editorpdf-extractionpdf-formatpdf-manipulationpdf-mergepdf-mergerpdf-meta-editorpdf-metadatapdf-rotatepdf-signpdf-signaturepdf-signerpdf-toolsphpsignature

### Embed Badge

![Health badge](/badges/24eme-signaturepdf/health.svg)

```
[![Health](https://phpackages.com/badges/24eme-signaturepdf/health.svg)](https://phpackages.com/packages/24eme-signaturepdf)
```

###  Alternatives

[qipsius/tcpdf-bundle

A bundle to easily integrate TCPDF into Symfony

23749.5k](/packages/qipsius-tcpdf-bundle)[macopedia/magmi2

Magento Mass Importer 'Magmi' for Magento 2

11615.7k](/packages/macopedia-magmi2)[tarfin-labs/easy-pdf

Makes pdf processing easy.

1719.4k](/packages/tarfin-labs-easy-pdf)[akeneo-labs/excel-connector-bundle

Akeneo PIM Excel connector bundle

166.4k](/packages/akeneo-labs-excel-connector-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
