Back to Blog

    Developer Blog

    Generate an invoice programmatically as a PDF

    Foxit Quick PDF Library

    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:

    1generated invoice

    This article refers to a deprecated product. If you are looking for support for Foxit PDF SDK, please click here.