krisbie
krisbie

Reputation: 111

create pdf file using pdfkit in nodejs

I need to generate pdf file in using pdfkit in node.js:

I have this code:

doc = new PDFDocument;
doc.pipe; fs.createWriteStream('output.pdf');

doc.fontSize(15);
doc.text('Generate PDF!');

doc.end();

And it will create a pdf file: 'output.pdf' , but everytime I open the file, the file is corrupted. It says: 'Unable to open document File type plain text document (text/plain) is not supported'.

And then I tried:

doc = new PDFDocument;
doc.pipe fs.createWriteStream('output.pdf');

doc.fontSize(15);
doc.text('Generate PDF!');

doc.end();

But there's an error saying:

doc.pipe fs.createWriteStream('output.pdf');
         ^^
Syntax error: Unexpected Identifier

Then, what is the right way to generate pdf files in nodejs? Especially in part of:

doc.pipe fs.createWriteStream

Please help me. Thanks in advance!

Upvotes: 5

Views: 11323

Answers (4)

Nouman Dilshad
Nouman Dilshad

Reputation: 1080

Try this piece of code.

const fs = require('fs');
const PDFDocument = require('pdfkit');

let options = {
 margins: 50
// you pdf settings here.
}
const doc = new PDFDocument(options);
let out = fs.createWriteStream('output.pdf')
doc.pipe(out);
doc.text('Hellow World.')
doc.end();
out.on('finish', function() {
    // what you want to do with the file.
});

Upvotes: 2

pastudan
pastudan

Reputation: 131

Most of their documentation seems to be written in CoffeeScript. As cool as CoffeeScript is, that makes it a pain for those of us writing plain old JS.

So, anywhere you see spaces in their documentation, you should be able to wrap that function in parenthesis:

doc.pipe(fs.createWriteStream('output.pdf'));

Upvotes: 9

Alex
Alex

Reputation: 7067

It works for me:

doc.pipe(fs.createWriteStream('output.pdf'));

Upvotes: 1

Zlatko
Zlatko

Reputation: 19588

You have to call the fs module before that. Add this at the top of the file:

var fs = require('fs');

Upvotes: 1

Related Questions