create pdf file using pdfkit in nodejs
Asked Answered
C

4

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!

Cryptology answered 26/3, 2014 at 14:47 Comment(0)
V
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'));
Valkyrie answered 15/5, 2014 at 17:54 Comment(0)
A
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.
});
Auntie answered 1/1, 2019 at 7:6 Comment(0)
E
1

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

var fs = require('fs');
Enaenable answered 27/3, 2014 at 23:52 Comment(1)
it is already called. Already found out the answer. The right syntax for nodejs: doc.pipe(fs.createWriteStream('out.pdf'));Cryptology
F
1

It works for me:

doc.pipe(fs.createWriteStream('output.pdf'));
Fascinate answered 4/4, 2014 at 7:25 Comment(1)
but many times generates empty PDF, did you get it any time?, requesting to look my question - https://mcmap.net/q/1923325/-pdfmake-returns-blank-page-for-39-fs-createwritestream-39/2034750Aneto

© 2022 - 2024 — McMap. All rights reserved.