This is a web application for signing PDF
documents online.
Users can upload PDF files, sign them online, and download the signed PDF files.
The application also supports setting PDF passwords and storing PDF files in the local IndexedDB
.
Signatures, text, and images are stored in localStorage
for reuse.
- Upload PDF files
- Sign PDF files electronically
- Download signed PDF files
- Adjustable signature position and size
- Set PDF passwords
- Open encrypted PDF files
- Support multiple languages
- Store PDF files in IndexedDB
- Custom signatures, text and images are stored in localStorage
- Edit signed PDF files
Clone this repository and install dependencies by running pnpm
(Node.js version is v20.9.0), then:
pnpm dev
: Run in development modepnpm build
: Build in production modepnpm preview
: Run preview
- Frontend: vue3, typescript, tailwindcss, pinia
- Environment construction: vite, eslint, prettier
- PDF Handling: jspdf
- Signature Drawing: @component-hook/pdf-canvas
- Compress image: browser-image-compression
- Internationalization: vue-i18n
- Local Storage: idb-keyval
Upload PDF File
: Click the upload button to select the PDF file you want to sign. The file will be stored in the local IndexedDB.Open Encrypted PDF
: If the PDF file is encrypted, you will be prompted to enter the password to open it.Add Signature
: Choose the position on the PDF where you want to add your signature. Signatures, text, and images will be stored in localStorage for reuse.Adjust Signature
: Drag and resize the signature as needed.Set PDF Password
: After completing the signature, you can set a password to open the PDF.Language Switch
: Select the language in the upper right corner of the header.Download Signed PDF
: After signing, click the download button to get the signed PDF file.Edit Signed PDF
: After signing, click the edit button to edit the signed PDF file.Batch Operation
: Batch archive, delete and reduction files
Contributions are welcome! If you have any suggestions or improvements, please submit a Pull Request or create an Issue.
This project is licensed under the MIT License - see the LICENSE file for details.