https://github.com/studiowebux/booklet
Simple command to split and reorder PDF Pages into Signatures to print the outputted PDF in a Booklet style.
https://github.com/studiowebux/booklet
book bookbinding booklet deno layout nodejs pdf print printer signature
Last synced: about 2 months ago
JSON representation
Simple command to split and reorder PDF Pages into Signatures to print the outputted PDF in a Booklet style.
- Host: GitHub
- URL: https://github.com/studiowebux/booklet
- Owner: studiowebux
- Created: 2022-06-11T19:21:56.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-10-11T04:17:12.000Z (8 months ago)
- Last Synced: 2025-10-28T13:29:01.956Z (8 months ago)
- Topics: book, bookbinding, booklet, deno, layout, nodejs, pdf, print, printer, signature
- Language: TypeScript
- Homepage:
- Size: 343 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

Booklet
---
Table of Contents
---
---
## About
---
Simple NodeJS command to split and reorder PDF Pages into Signatures to print the outputted PDF in a Booklet style.
***Reasons for this project:***
> It is always fun to play with nodeJS !
I needed to split my Apple Pages document into booklet.
### Installation
```bash
npm install -y @yetanothertool/booklet
```
### Usage
```bash
yat-booklet [output]
yat-booklet [output.pdf]
```
**Preview Mode**
```bash
export PREVIEW=1
yat-booklet mySuperBook.pdf 8
```
*Output*:
```bash
Document processed with success !
Saved to 'output.pdf'
Summary: '80' pages split into '8' signature(s)
[
[ [ 10, 1 ], [ 2, 9 ], [ 8, 3 ], [ 4, 7 ], [ 6, 5 ] ],
[ [ 20, 11 ], [ 12, 19 ], [ 18, 13 ], [ 14, 17 ], [ 16, 15 ] ],
[ [ 30, 21 ], [ 22, 29 ], [ 28, 23 ], [ 24, 27 ], [ 26, 25 ] ],
[ [ 40, 31 ], [ 32, 39 ], [ 38, 33 ], [ 34, 37 ], [ 36, 35 ] ],
[ [ 50, 41 ], [ 42, 49 ], [ 48, 43 ], [ 44, 47 ], [ 46, 45 ] ],
[ [ 60, 51 ], [ 52, 59 ], [ 58, 53 ], [ 54, 57 ], [ 56, 55 ] ],
[ [ 70, 61 ], [ 62, 69 ], [ 68, 63 ], [ 64, 67 ], [ 66, 65 ] ],
[ [ 80, 71 ], [ 72, 79 ], [ 78, 73 ], [ 74, 77 ], [ 76, 75 ] ]
]
```
The `output.pdf` file contains all pages in the correct order.
The next step is to configure the printer properly to print your book.
### Troubleshooting
You must use a signature that matches your total page count.
for exemple:
- 80 pages with *3* signatures is **NOT VALID**
- 80 pages with *1* or *2* or *4* and *etc.* signature(s) is **VALID**
---
## Contributing
1. Create a Feature Branch
2. Commit your changes
3. Push your changes
4. Create a PR
Working with your local branch
**Branch Checkout:**
```bash
git checkout -b /prefix-name
```
> Your branch name must starts with [feature|fix|release|chore|hotfix] and use a / before the name;
> Use hyphens as separator;
> The prefix correspond to your Kanban tool id (e.g. abc-123)
**Keep your branch synced:**
```bash
git fetch origin
git rebase origin/master
```
**Commit your changes:**
```bash
git add .
git commit -m ": commit message"
```
> Follow this convention commitlint for your commit message structure
**Push your changes:**
```bash
git push origin /prefix-name
```
**Examples:**
```bash
git checkout -b release/v1.15.5
git checkout -b feature/abc-123-something-awesome
git checkout -b hotfix/abc-432-something-bad-to-fix
```
```bash
git commit -m "docs: added awesome documentation"
git commit -m "feat: added new feature"
git commit -m "test: added tests"
```
## License
Distributed under the MIT License. See LICENSE for more information.
## Contact
- Tommy Gingras @ tommy@studiowebux.com
