PHPackages                             creagia/laravel-sign-pad - 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. creagia/laravel-sign-pad

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

creagia/laravel-sign-pad
========================

Laravel package for of E-Signature with Signature Pad and Digital Certified Sign with TCPDF

3.0.1(2mo ago)54097.2k—8%51[1 PRs](https://github.com/creagia/laravel-sign-pad/pulls)MITPHPPHP ^8.2CI passing

Since Oct 3Pushed 2mo ago9 watchersCompare

[ Source](https://github.com/creagia/laravel-sign-pad)[ Packagist](https://packagist.org/packages/creagia/laravel-sign-pad)[ GitHub Sponsors](https://github.com/creagia)[ RSS](/packages/creagia-laravel-sign-pad/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (28)Versions (18)Used By (0)

Laravel pad signature
=====================

[](#laravel-pad-signature)

A Laravel package to sign documents and optionally generate [certified PDFs](https://www.prepressure.com/pdf/basics/certified-pdf#:~:text=A%20Certified%20PDF%20is%20a,errors%20or%20notifications%20were%20generated) associated to a Eloquent model.

[![Latest Version on Packagist](https://camo.githubusercontent.com/e36974feb92c44af678807b9a892e32eb1cd5e1edbabad230929c61d15174408/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f637265616769612f6c61726176656c2d7369676e2d7061642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/creagia/laravel-sign-pad)[![GitHub Tests Action Status](https://camo.githubusercontent.com/5834ba3261b5c49177fea9d2893f5a240cf5e4ee592cccaa91f89564f270efc5/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f637265616769612f6c61726176656c2d7369676e2d7061642f72756e2d74657374732e796d6c3f6c6162656c3d7465737473)](https://github.com/creagia/laravel-sign-pad/actions?query=workflow%3Arun-tests+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/4f4dd1f7827d19de2fd6b8808a9971a902755898b320a214518f27b5d11132a5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f637265616769612f6c61726176656c2d7369676e2d7061642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/creagia/laravel-sign-pad)

Requirements
------------

[](#requirements)

Laravel pad signature requires **PHP 8.2 - 8.5** and **Laravel 11 - 13**.

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

[](#installation)

You can install the package via composer:

```
composer require creagia/laravel-sign-pad
```

Publish the config and the migration files and migrate the database

```
php artisan sign-pad:install
```

Publish the .js assets:

```
php artisan vendor:publish --tag=sign-pad-assets
```

This will copy the package assets inside the `public/vendor/sign-pad/` folder.

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

[](#configuration)

In the published config file `config/sign-pad.php` you'll be able to configure many important aspects of the package, like the route name where users will be redirected after signing the document or where do you want to store the signed documents. You can customize the disk and route to store signatures and documents.

Notice that the redirect\_route\_name will receive the parameter `$uuid` with the uuid of the signature model in the database.

Preparing your model
--------------------

[](#preparing-your-model)

Add the `RequiresSignature` trait and implement the `CanBeSigned` class to the model you would like.

```

```

If you want to generate PDF documents with the signature, you should implement the `ShouldGenerateSignatureDocument` class . Define your document template with the `getSignatureDocumentTemplate` method.

```

```

A `$model` object will be automatically injected into the Blade template, so you will be able to access all the needed properties of the model.

Usage
-----

[](#usage)

At this point, all you need is to create the form with the sign pad canvas in your template. For the route of the form, you have to call the method getSignatureRoute() from the instance of the model you prepared before:

```
@if (!$myModel->hasBeenSigned())

        @csrf

@endif
```

### Retrieving signatures

[](#retrieving-signatures)

You can retrieve your model signature using the Eloquent relation `$myModel->signature`. After that, you can use:

- `getSignatureImagePath()` returns the signature image path.
- `getSignatureImageAbsolutePath()` returns the signature image absolute path.
- `getSignedDocumentPath()` returns the generated PDF document path.
- `getSignedDocumentAbsolutePath()` returns the generated PDF document absolute path.

```
echo $myModel->signature->getSignatureImagePath();
echo $myModel->signature->getSignedDocumentPath();
```

### Deleting signatures

[](#deleting-signatures)

You can delete your model signature using

- `deleteSignature()` method in the model.

```
echo $myModel->deleteSignature();
```

Customizing the component
-------------------------

[](#customizing-the-component)

From the same template, you can change the look of the component by passing some properties:

- *border-color* (hex) to change the border color of the canvas
- *pad-classes* and *button-classes* (strings) indicates which classes will have the sign area or the submit &amp; clear buttons
- *clear-name* and *submit-name* (strings) allows you to modify de default "Submit" and "Clear" values of the buttons.
- *disabled-without-signature* (boolean) indicates if the submit button should be disabled when the user has not signed yet.

An example with an app using Tailwind would be:

```

```

Certifying the PDFs
-------------------

[](#certifying-the-pdfs)

To certify your signature with TCPDF, you will have to create your own SSL certificate with OpenSSL. Otherwise you can find the TCPDF demo certificate here : [TCPDF Demo Certificate](https://github.com/tecnickcom/TCPDF/blob/main/examples/data/cert/tcpdf.crt)

To create your own certificate use this command :

```
cd storage/app
openssl req -x509 -nodes -days 365000 -newkey rsa:1024 -keyout certificate.crt -out certificate.crt

```

More information in the [TCPDF documentation](https://tcpdf.org/examples/example_052/)

After generating the certificate, you'll have to change the value of the variable `certify_documents` in the `config/sign-pad.php` file and set it to **true**.

When the variable `certify_documents` is set to true, the package will search the file allocated in the `certificate_file` path to sign the documents. Feel free to modify the location or the name of certificate file by changing its value.

Inside the same `config/sign-pad.php` we encourage you to fill all the fields of the array `certificate_info` to be more specific with the certificate.

Finally, you can change the certificate type by modifying the value of the variable `cert_type` (by default 2). You can find more information about certificates types at [TCPDF setSignature reference](https://hooks.wbcomdesigns.com/reference/classes/tcpdf/setsignature/).

Upgrading
---------

[](#upgrading)

See [UPGRADING](UPGRADING.md) for details.

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

62

—

FairBetter than 99% of packages

Maintenance87

Actively maintained with recent releases

Popularity54

Moderate usage in the ecosystem

Community25

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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

Every ~89 days

Recently: every ~185 days

Total

15

Last Release

64d ago

Major Versions

1.1.3 → 2.0.02023-04-13

2.1.3 → 3.0.02026-03-04

PHP version history (2 changes)1.0.0PHP ^8.0

3.0.0PHP ^8.2

### Community

Maintainers

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

---

Top Contributors

[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (24 commits)")[![dtorras](https://avatars.githubusercontent.com/u/240932?v=4)](https://github.com/dtorras "dtorras (20 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (15 commits)")[![juliangarcess](https://avatars.githubusercontent.com/u/41131304?v=4)](https://github.com/juliangarcess "juliangarcess (4 commits)")[![marcbe](https://avatars.githubusercontent.com/u/2853593?v=4)](https://github.com/marcbe "marcbe (3 commits)")[![laravel-shift](https://avatars.githubusercontent.com/u/15991828?v=4)](https://github.com/laravel-shift "laravel-shift (2 commits)")[![stockhausen](https://avatars.githubusercontent.com/u/263501?v=4)](https://github.com/stockhausen "stockhausen (1 commits)")[![mikescola](https://avatars.githubusercontent.com/u/4997757?v=4)](https://github.com/mikescola "mikescola (1 commits)")[![Sergej-Tihonov](https://avatars.githubusercontent.com/u/15265981?v=4)](https://github.com/Sergej-Tihonov "Sergej-Tihonov (1 commits)")[![ahac](https://avatars.githubusercontent.com/u/273572?v=4)](https://github.com/ahac "ahac (1 commits)")

---

Tags

laravelpdfsignaturesignature-pad

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/creagia-laravel-sign-pad/health.svg)

```
[![Health](https://phpackages.com/badges/creagia-laravel-sign-pad/health.svg)](https://phpackages.com/packages/creagia-laravel-sign-pad)
```

###  Alternatives

[spatie/laravel-pdf

Create PDFs in Laravel apps

9963.4M12](/packages/spatie-laravel-pdf)[vormkracht10/laravel-mails

Laravel Mails can collect everything you might want to track about the mails that has been sent by your Laravel app.

24149.7k](/packages/vormkracht10-laravel-mails)

PHPackages © 2026

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