Click here to Skip to main content
15,883,835 members
Articles / Web Development / Node.js
Tip/Trick

Generating Server Side PDFs using PDFKit and Node.js

Rate me:
Please Sign up or sign in to vote.
4.75/5 (4 votes)
21 Apr 2014MIT1 min read 38.4K   14  
Generating server side PDFs in 5 minutes with PDFKit and Node.js

Nodejs PDF PDFkit

Introduction

Generating PDFs looks like a massive task when it comes to you at first, but with PDFKit it becomes a cake walk.

What's surprising is that not many people know about PDFKit module for Node.js. It makes dealing with PDF documents extremely easy. The module takes out all the complexities involved and provides simple APIs written in CoffeeScript which can also be used as plain JavaScript. In this post, we will be working towards generating a simple PDF document with text content on server side using PDFKit module and Node.js. So let's get started.

First of all, as we all know, we need to install the module through npm:

JavaScript
npm install pdfkit

Next, we make a generatePDFDocument.js file and write the following code in it:

JavaScript
var PDF = require('pdfkit');            //including the pdfkit module
var fs = require('fs');
var text = 'ANY_TEXT_YOU_WANT_TO_WRITE_IN_PDF_DOC';

doc = new PDF();                        //creating a new PDF object
doc.pipe(fs.createWriteStream('PATH_TO_PDF_FILE'));  //creating a write stream 
            //to write the content on the file system
doc.text(text, 100, 100);             //adding the text to be written, 
            // more things can be added here including new pages
doc.end(); //we end the document writing.

That's all the code we need to create a simple PDF document with text content. Now, we just need to run this using node as follows:

JavaScript
node PATH_TO/generatePDFDocument.js

And it should create a new PDF document at the path you provided in the code to the writeStream. That's it folks, it took us only about 5 minutes to generate a PDF on server.

And There is a Lot More

There is a lot more that you can do with PDFKit, including Vector Graphics, Rich Text, Images, Annotations, etc.

For more information on the APIs and other examples, please refer to github.

We will be covering more about PDFs and use of PhantomJS (another powerful library) with Node.js in the coming posts.

License

This article, along with any associated source code and files, is licensed under The MIT License


Written By
Software Developer (Senior)
India India
Suroor speaks JavaScript and has good social media influence, great passion to write technical blogs which lead to the birth of community blog howtojs.org. Loves to hack bleeding edge technologies and contributes to open source on regular basis. He is the part of core team behind NodeConsole, has written various npm modules and utilities for Node.js. Also he likes to watch House of Cards in free time which is rare!

Comments and Discussions

 
-- There are no messages in this forum --