Generating PDF files is easy using Debenu 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<br>CIRCLE<br>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, "<b>Total</b>");
DPL.DrawHTMLText(532, 270, 100, "<b>$995.00</b>");
 
// Payment due date
 
DPL.DrawHTMLText(50, 400, 100, "<b>Due Date: Today</b>");
 
// Save the invoice
 
DPL.SaveToFile("invoice.pdf");

// 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<br>CIRCLE<br>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, "<b>Total</b>");
DPL.DrawHTMLText(532, 270, 100, "<b>$995.00</b>");

// Payment due date

DPL.DrawHTMLText(50, 400, 100, "<b>Due Date: Today</b>");

// Save the invoice

DPL.SaveToFile("invoice.pdf");

The output looks like this:

Sample Invoice PDF