Generate a PDF via a script

Generating a PDF through a script allows the user to customize the PDF given a specific PDF Template

Prerequisites

Procedure

Step 1. Create a PDF Template

  1. Open PDF Designer and create a new template

  2. Design the PDF and bind the components accordingly to your JSON structure.

pdf designer p9function data and bindings
Best practice: To see how the bindings reflect on your PDF, populate the Test Data with mock data.
  1. Save the template

Step 2. Setting the script

  1. Create a new script

  2. Paste the below code:

  3. At pdfName pass the name of the template and in the body, pass any data

try {
    const payload = {   // the data the will be passed in the PDF
        "TOTALS": {
            "TotalHours": "763",
            "TotalGrossPay": "22600"
        },
        "PAYROLL": [{
            "id": "48D6B91B-AEAE-49DA-BBE8-0780FF224678",
            "createdAt": 1636022247181,
            "updatedAt": 1636022247181,
            "EmployeeName": "John Williams",
            "HourlyRate": 20,
            "HoursWorked": 155,
            "OvertimeRate": 30,
            "OvertimeHoursWorked": 10,
            "GrossPay": 3400,
            "editable": false
        }, {
            "id": "98399B93-0BC7-4488-9091-65EDB83C41B1",
            "createdAt": 1636022247181,
            "updatedAt": 1636022247181,
            "EmployeeName": "Rogger Green",
            "HourlyRate": 30,
            "HoursWorked": 140,
            "OvertimeRate": 40,
            "OvertimeHoursWorked": 20,
            "GrossPay": 5000,
            "editable": false
        }, {
            "id": "E55AFA15-04BC-4F02-83CD-A84AC16E52E6",
            "createdAt": 1636022247181,
            "updatedAt": 1636022247181,
            "EmployeeName": "Mathew Athanasiou",
            "HourlyRate": 20,
            "HoursWorked": 160,
            "OvertimeRate": 30,
            "OvertimeHoursWorked": 10,
            "GrossPay": 3500,
            "editable": false
        }, {
            "id": "13CF51AF-4140-429D-8B87-BFD2576CB537",
            "createdAt": 1636022247181,
            "updatedAt": 1636022247181,
            "EmployeeName": "Ronnie Brook",
            "HourlyRate": 30,
            "HoursWorked": 160,
            "OvertimeRate": 40,
            "OvertimeHoursWorked": 20,
            "GrossPay": 5600,
            "editable": false
        }, {
            "id": "5FEC9162-5BB5-462F-9004-E0D7017B08DA",
            "createdAt": 1636022247181,
            "updatedAt": 1636022247181,
            "EmployeeName": "Tommy Bose",
            "HourlyRate": 25,
            "HoursWorked": 148,
            "OvertimeRate": 35,
            "OvertimeHoursWorked": 40,
            "GrossPay": 5100,
            "editable": false
        }]
    }
    const pdfName = // name of the PDF Template
	const objectKey = Date.now().toString().substr(0, 10);
	const securityKey = uuid();  // giving it a unique ID
	const pdfBase64 = await p9.pdf.generatePdf({   // p9 core function that generates PDF
		pdfName: templateName,
		objectKey: objectKey,
		securityKey: securityKey,
        body: payload
	});
	console.log(pdfBase64) // this is the PDF is base64. You may store this in a table to use it in apps and much more
    console.log(objectKey) // use this to locate the PDF in PDF Archive
}
catch (e) {
	console.log(e.toString())
} finally {
	complete();
}

Viewing the PDF

To view the PDF, open PDF Archive, select at the PDF Document filter your PDF Template and search by the Object Key to locate the generated PDF.

Result

Generated PDF from the above steps:

pdf designer p9function pdf result