5

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!

4 Answers 4

9

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')); 
Sign up to request clarification or add additional context in comments.

Comments

2

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. }); 

Comments

1

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

var fs = require('fs'); 

1 Comment

it is already called. Already found out the answer. The right syntax for nodejs: doc.pipe(fs.createWriteStream('out.pdf'));
1

It works for me:

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

1 Comment

but many times generates empty PDF, did you get it any time?, requesting to look my question - stackoverflow.com/q/54930985/2034750

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.