Show HN: Handwritten.js – Convert typed text to realistic handwritten pdf


License: MIT

Convert typed text to realistic handwriting!


npm install --save handwritten.js


const handwritten = require('handwritten.js')
const fs = require('fs')
const rawtext = "Hello, world!"
handwritten(rawtext).then((converted) => {

Using without installation

npx handwritten.js -f "path/to/inputfile.txt" -o "path/to/outputfile.pdf"

Note: Use this method only if you plan to use handwritten.js for one time, installing handwritten.js globally (see-below) is recommended for multiple time usages.


npm install handwritten.js -g

Note: DO NOT use sudo to install global packages! The correct way is to tell npm where to install its global packages: npm config set prefix ~/.local. Make sure ~/.local/bin is added to PATH.

Usage after installation

handwritten.js -f "path/to/inputfile.txt" -o "path/to/outputfile.pdf"

Command line

handwritten.js -f path/to/inputfile.txt -o path/to/outputfile.pdf
handwritten.js -f path/to/inputfile.txt -o path/to/outputfile.pdf --ruled
handwritten.js -f path/to/inputfile.txt -o path/to/outputfolder --images png

Check --help or --version option for more details.

In code

handwritten(rawtext, { ruled: true })
handwritten(rawtext, { outputtype: "jpeg/buf" })
handwritten(rawtext, { ruled: true, outputtype: "jpeg/b64" })

Default outputtype: “pdf”. Supported output types are: pdf, jpeg/buf, jpeg/b64, png/buf and png/b64. If the output type is set to pdf, it returns a promise that will resolve in a pdfkit document instance. Else it will return a promise that will resolve in an array containing the buffer or base64 value of the images according to the output type provided.


👤 Rahil Kabani

Give a ⭐️ if this project helped you!

Contributions, issues and feature requests are welcome!
Feel free to check issues page.

handwritten.js only supports English letters. I am not planning to add support for other languages for now. Please do not make issues about this. However, I will merge pull requests if any. See the issue #18 for more details.

GDGVIT/HandWriter – For the cleaned dataset.

🏠 Homepage


Author: admin

Leave a Reply

Your email address will not be published.