InvoGen

Invogen

PyPI PyPI - Python Version GitHub Travis (.org) branch codecov Build The Docs Code style: black

InvoGen is a package to generate beautiful invoices using Python.

Getting Started

To install InvoGen, simply run

pip install invogen

Using InvoGen

InvoGen is easy to use! In the command prompt or in a file type:

from invogen.accounts import Customer
from invogen.invoice import Invoice, InvoiceEntry

foobar_inc = Customer("test", name="Foobar Inc.")
invoice = Invoice(foobar_inc)
invoice.add_entry(
    InvoiceEntry(id_code="Test01", description="Some entry item", rate=5, quantity=1)
)
invoice.shipping = 3

You can get a printout of your invoice like this:

>>> print(invoice)

Invoice for Foobar Inc. (test)
|   ID   |     Description      |   Rate   | Quantity |  Amount  |
+--------+----------------------+----------+----------+----------+
| Test01 | Some entry item      |     5.00 |        1 |     5.00 |
+--------+----------------------+----------+----------+----------+
                                             Sub-total:     5.00
                                              Shipping:     3.00
                                              Discount:    -0.00
                                           +---------------------+
                                                 Total:     8.00

To generate a PDF invoice using the default LaTeX template, use

template = LatexTemplate("default.tex")
template.to_pdf(invoice)

N.B. To use LaTeX templates, you will have to have LaTeX installed. You can find out how to install LaTeX for your system here.

Documentation

Documentation can be found on Read the Docs

The docs are built with Sphinx and autodoc. To build the docs as html yourself, use

cd docs
make html

Testing

The tests are in /test. To run the tests with coverage, use

pytest

Contributing

Please feel free to fork and open a pull request if you would like to change something.

The dependencies can be installed using pip and requirements.txt or Pipenv and the Pipfile.

More templates would be especially welcome!

Authors

License

This project is licensed under the MIT License - see the LICENSE file for details.