I want to convert json data into a pdf file via client-side Javascript. Can you please point me in a helpful direction?
For example, I'd like to convert this json
{"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}
Into a pdf...
Employees
FirstName: John LastName :Doe
FirstName: Anna LastName :Smith
FirstName: Peter LastName :Jones
You can generate PDF's on the client using jsPDF .
var employees = [
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
];
var doc = new jsPDF();
employees.forEach(function(employee, i){
doc.text(20, 10 + (i * 10),
"First Name: " + employee.firstName +
"Last Name: " + employee.lastName);
});
doc.save('Test.pdf');
You can use pdfmake which support both client side and server side rendering
//import pdfmake
import pdfMake from 'pdfmake/build/pdfmake.js';
import pdfFonts from 'pdfmake/build/vfs_fonts.js';
pdfMake.vfs = pdfFonts.pdfMake.vfs;
const employees = [
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
];
const document = { content: [{text: 'Employees', fontStyle: 15, lineHeight: 2}] }
employees.forEach(employee => {
document.content.push({
columns: [
{ text: 'firstname', width: 60 },
{ text: ':', width: 10 },
{ text:employee.firstName, width: 50 },
{ text: 'lastName', width: 60 },
{text: ':', width: 10 }, { text: employee.lastName, width: 50}
],
lineHeight: 2
});
});
pdfMake.createPdf(document).download();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With