Generate an invoice programmatically as a PDF
Generating PDF files is easy using Foxit Quick PDF Library. In this example we will demonstrate how to programmatically create an invoice as a PDF. In this example we’ll use a range of functions to create the content for the page. The company logo is created using paths, but that section of code could be simplified just by adding an image using the AddImageFromFile function.
/* Create a PDF invoice */
// Set page origin to top left, default is the bottom left
DPL.SetOrigin(1);
// Invoice number text
DPL.SetTextSize(20);
DPL.DrawText(55, 65, "Invoice #");
DPL.SetTextColor(0, 0.5, 1);
DPL.DrawText(140, 65, "1564824");
// Company logo
DPL.SetFillColor(0, 0, 0);
DPL.SetLineColor(1, 1, 1);
DPL.DrawCircle(475, 15, 5, 2);
DPL.DrawCircle(490, 20, 10, 2);
DPL.DrawCircle(505, 25, 15, 2);
DPL.DrawCircle(520, 30, 20, 2);
DPL.DrawCircle(535, 35, 25, 2);
DPL.DrawCircle(550, 40, 30, 2);
DPL.DrawHTMLTextBox(470, 38, 100, 100, "THE
CIRCLE
COMPANY.");
// Draw some lines to give the invoice structure
DPL.SetLineColor(0, 0, 0);
DPL.DrawLine(20, 150, 592, 150);
DPL.DrawLine(20, 200, 592, 200);
DPL.DrawLine(400, 250, 592, 250);
// Text color for body
DPL.SetTextColor(0, 0, 0);
// Invoice headings
DPL.SetTextSize(12);
DPL.DrawText(50, 145, "Description");
DPL.DrawText(225, 145, "Quantity");
DPL.DrawText(375, 145, "Unit Price");
DPL.DrawText(525, 145, "Amount");
// Invoice content
DPL.SetTextSize(10);
DPL.DrawText(50, 195, "Fictional Product 1.0");
DPL.DrawText(245, 195, "5");
DPL.DrawText(385, 195, "199.00");
DPL.DrawText(532, 195, "995.00");
// Invoice totals
DPL.DrawText(455, 225, "Sub-Total");
DPL.DrawText(532, 225, "$995.00");
DPL.DrawText(455, 245, "Tax");
DPL.DrawText(532, 245, "$0.00");
DPL.DrawHTMLText(455, 270, 100, "Total");
DPL.DrawHTMLText(532, 270, 100, "$995.00");
// Payment due date
DPL.DrawHTMLText(50, 400, 100, "Due Date: Today");
// Save the invoice
DPL.SaveToFile("invoice.pdf");
The output looks like this:
This article refers to a deprecated product. If you are looking for support for Foxit PDF SDK, please click here.
Updated on May 16, 2022