# Automate your PDF invoices

Imagine you’re a wholesale distributor. New and existing clients regularly call you up for quotes. You take their orders over the phone, draft up a quote, turn it into a PDF, and email it over to them. If they’re happy with the price, they email you back requesting an invoice. You draft up a new invoice, turn it into a PDF, and email it to them for payment.

This is a pretty slow process. Inputting the information into the quote and invoice takes up a lot of your time and it’s easy to make mistakes with the calculations. Why not build an app to solve this problem for you?

I’ll walk you through an app I built in just a few hours to automate this process, using nothing but Python.

Here’s how the app works:

Click here for a copy of the final app:

[Open in Anvil](/content/build#clone:AYDQD7WKV6M74HCK%3dJ6PTV5JR4XX4AYBZAD37ROKK/index.html)

This app uses a number of the techniques covered in our [news aggregator tutorial](/content/learn/tutorials/database-backed-apps/index.html), which is a step-by-step guide to building a “CRUD” app, named after the **C** reate, **R** ead, **U** pdate and **D** elete operations.

For more general information on creating PDFs with Anvil, see [here](/content/docs/working-with-files/creating-pdf-files/index.html).

## How the app works

We store the warehouse inventory of the wholesaler in Anvil’s [Data Tables](/content/docs/data-tables/index.html), a built-in database system built on top of PostgreSQL.

### 1. Select items

Clients enter the wholesaler’s online portal and select items from the product inventory.

### 2. View quote

Once they’re done with their selection, they can view a quote for the selected items.

### 3. Add client information

If they’re happy with the quote, they can add their details to receive a personalised invoice.

### 4. Generate PDF invoice

Once they’ve added their information, the invoice is displayed in the portal, and a PDF version is made available for download.

That’s the full process automated using nothing but Python! [Anvil’s PDF support](/content/docs/working-with-files/creating-pdf-files/quickstart/index.html) makes it simple to drag and drop your visual design, and render it in PDF format.

You can get a copy of the source code and design of the app by clicking here:

[Open in Anvil](/content/build#clone:AYDQD7WKV6M74HCK%3dJ6PTV5JR4XX4AYBZAD37ROKK/index.html)

To learn more about building database-backed apps with Anvil, read our tutorial:

[Building database-backed apps](/content/learn/tutorials/database-backed-apps/index.html)
