Invoice With Multiple Pages - PHP
PDF from HTML Template sample in PHP demonstrating ‘Invoice With Multiple Pages’
generate-invoice.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PDF Invoice Generation Results</title>
</head>
<body>
<?php
// Get submitted form data
$apiKey = $_POST["apiKey"]; // The authentication key (API Key). Get your own by registering at https://app.pdf.co
// Prepare URL for HTML to PDF API call
$url = "https://api.pdf.co/v1/pdf/convert/from/html";
// Prepare requests params
$parameters = array();
$parameters["name"] = "result.pdf";
/*
Please follow below steps to create your own HTML Template and get "templateId".
1. Add new html template in app.pdf.co/templates/html
2. Copy paste your html template code into this new template. Sample HTML templates can be found at "https://github.com/bytescout/pdf-co-api-samples/tree/master/PDF%20from%20HTML%20template/TEMPLATES-SAMPLES"
3. Save this new template
4. Copy it’s ID to clipboard
5. Now set ID of the template into “templateId” parameter
*/
// HTML template using built-in template
// see https://app.pdf.co/templates/html/3/edit
$parameters["templateid"] = 3;
// Data to fill the template
$templateData = file_get_contents("./invoice_data.json");
$parameters["templateData"] = $templateData;
// Create Json payload
$data = json_encode($parameters);
// Create request
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, array("x-api-key: " . $apiKey, "Content-type: application/json"));
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
// Execute request
$result = curl_exec($curl);
if (curl_errno($curl) == 0)
{
$status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($status_code == 200)
{
$json = json_decode($result, true);
if (!isset($json["error"]) || $json["error"] == false)
{
$resultFileUrl = $json["url"];
// Display link to the file with conversion results
echo "<div><h2>Conversion Result:</h2><a href='" . $resultFileUrl . "' target='_blank'>" . $resultFileUrl . "</a></div>";
}
else
{
// Display service reported error
echo "<p>Error: " . $json["message"] . "</p>";
}
}
else
{
// Display request error
echo "<p>Status code: " . $status_code . "</p>";
echo "<p>" . $result . "</p>";
}
}
else
{
// Display CURL error
echo "Error: " . curl_error($curl);
}
// Cleanup
curl_close($curl);
?>
</body>
</html>
invoice_data.json
{
"paid": true,
"company_name": "Lovely Company Inc.",
"company_address": "1234 Market St\nSan Francisco, California 94102\nUSA",
"company_logo": "https://bytescout-com.s3.amazonaws.com/files/demo-files/cloud-api/pdf-edit/logo.png",
"barcode_value": "sample encoded barcode value for page 1\nwuth line breaks if needed\n\nOrder id:",
"ocr_scanline": "OCR-A 123567890",
"order_id": "1122455",
"order_date": "15 Jan 2022",
"customer_id": "T8001",
"shipped_date": "20 Jan 2022",
"shipped_via": "UPS",
"bill_to_name": "T-800 Research Lab",
"bill_to_address": "435 South La Fayette Park Place, \nLos Angeles, CA 90057\nUSA",
"ship_to_name": "Cyberdyne Systems",
"ship_to_address": "18144 El Camino Real\nSunnyvale, California\nUSA",
"freight": 19.95,
"notes": "Thank you for your purchase.\nThanks for your support of advanced robotics.",
"items": [
{
"name": "T-800 Prototype Research",
"price": 50.0,
"quantity": 2
},
{
"name": "T-800 Cloud Sync Setup",
"price": 150.0,
"quantity": 3
},
{
"name": "T-800 Prototype Research 2",
"price": 20.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 24.99,
"quantity": 5
},
{
"name": "T-800 Prototype Research 2",
"price": 199.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 19.0,
"quantity": 5
},
{
"name": "T-800 Prototype Research 2",
"price": 20.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 49.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 1000.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 12.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 25.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 24.99,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 14.95,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 149.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 99.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 100.0,
"quantity": 4
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 9
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
},
{
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 3
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 2
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 3
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 3
}, {
"name": "T-800 Prototype Research 2",
"price": 3.49,
"quantity": 3
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 15.0,
"quantity": 5
},
{
"name": "T-800 Prototype Research",
"price": 50.0,
"quantity": 2
},
{
"name": "T-800 Cloud Sync Setup",
"price": 150.0,
"quantity": 3
},
{
"name": "T-800 Prototype Research 2",
"price": 20.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 24.99,
"quantity": 5
},
{
"name": "T-800 Prototype Research 2",
"price": 199.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 19.0,
"quantity": 5
},
{
"name": "T-800 Prototype Research 2",
"price": 20.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 49.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 1000.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 12.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 25.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 24.99,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 14.95,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 149.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 99.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 100.0,
"quantity": 4
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 9
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
},
{
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 3
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 2
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 3
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 3
}, {
"name": "T-800 Prototype Research 2",
"price": 3.49,
"quantity": 3
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 1
},
{
"name": "T-800 Prototype Research",
"price": 50.0,
"quantity": 2
},
{
"name": "T-800 Cloud Sync Setup",
"price": 150.0,
"quantity": 3
},
{
"name": "T-800 Prototype Research 2",
"price": 20.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 24.99,
"quantity": 5
},
{
"name": "T-800 Prototype Research 2",
"price": 199.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 19.0,
"quantity": 5
},
{
"name": "T-800 Prototype Research 2",
"price": 20.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 49.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 1000.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 12.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 25.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 24.99,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 14.95,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 149.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 99.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 100.0,
"quantity": 4
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 9
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
},
{
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 3
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 2
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 3
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 3
}, {
"name": "T-800 Prototype Research 2",
"price": 3.49,
"quantity": 3
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 1
},
{
"name": "T-800 Cloud Sync Setup 3",
"price": 30.0,
"quantity": 5
}, {
"name": "T-800 Prototype Research 2",
"price": 10.0,
"quantity": 1
}
]
}
sample.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>HTML to PDF API Example</title>
</head>
<body>
<form name="form1" enctype="multipart/form-data" method="post" action="generate-invoice.php">
<p>
<label>Authentication key (API Key). Get your own by registering at <a href="https://apidocs.pdf.co">https://apidocs.pdf.co</a>.</label>
<br/>
<input type="text" name="apiKey" placeholder="API Key"/>
</p>
<p>
Click "Proceed" to generate PDF invoice from predefined templateId and "invoice_data.json".
</p>
<input type="submit" name="submit" value="Proceed" />
</form>
</body>
</html>
PDF.co Web API: the Web API with a set of tools for documents manipulation, data conversion, data extraction, splitting and merging of documents. Includes image recognition, built-in OCR, barcode generation and barcode decoders to decode bar codes from scans, pictures and pdf.
Download Source Code (.zip)
return to the previous page explore PDF from HTML Template endpoint
Copyright © 2016 - 2023 PDF.co