A simple, open-source PDF toolkit API for developers. Designed for ease of use, extensibility, and no vendor lock-in.
- ✅ Merge PDFs (Available)
- 🔜 Image to PDF
- 🔜 PDF to Image
- 🔜 Sign PDF
- 🔜 Fill PDF Form
Clone the repository and install dependencies:
git clone https://github.com/yourusername/pdf-toolkit-api.git
cd pdf-toolkit-api
yarn installStart the development server:
yarn start:devConvert images to a PDFs.
Content-Type: multipart/form-data- Body fields:
images: Images to convert to a single PDF file (can upload multiple)
curl --location 'http://localhost:9999/image-to-pdf' \
--form 'images=@"/C:/Users/ThinkPad/Downloads/image1.jpg"' \
--form 'images=@"/C:/Users/ThinkPad/Downloads/image2.jpg"' \
--form 'images=@"/C:/Users/ThinkPad/Downloads/image3.jpg"'- Returns the PDF file result as a downloadable stream.
Merge multiple PDF files into a single PDF in the specified order.
Content-Type: multipart/form-data- Body fields:
files: PDF files (can upload multiple)order: JSON array of string representing the desired merge order by the files names (e.g.[file2.pdf, file1.pdf, file3.pdf]for third, first, then second PDF to be merged in order)
curl --location 'http://localhost:9999/merge-pdf' \
--form 'pdfs=@"/C:/Users/ThinkPad/Downloads/Resume Tata - March 2025-compressed.pdf"' \
--form 'pdfs=@"/C:/Users/ThinkPad/Downloads/processed.pdf"' \
--form 'pdfs=@"/C:/Users/ThinkPad/Downloads/Profile.pdf"' \
--form 'order="[
\"processed.pdf\",
\"Resume Tata - March 2025-compressed.pdf\",
\"Profile.pdf\"
]"'- Returns the merged PDF file as a downloadable stream.
- Node.js
- Express
- PDF-lib (or your chosen PDF processing library)
Contributions are welcome! Feel free to open issues or submit pull requests for:
- New features
- Bug fixes
- Docs improvements
MIT License. Feel free to use it in personal and commercial projects.
- [:heavy_check_mark:] Add Merge PDFs functionality
- [:heavy_check_mark:] Add support for image-to-PDF
- Add PDF-to-image export
- Add PDF signature functionality
- Add form-filling support
Stay tuned for updates!