Skip to main content
https://travis-ci.org/by-cx/InvoiceGenerator.svg?branch=master Latest Version

This is library to generate a simple invoices. Currently supported formats are PDF and XML for Pohoda accounting system. PDF invoice is based on ReportLab.

Example image of invoice

Installation

Run this command as root:

pip install InvoiceGenerator

If you want upgrade to new version, add --upgrade flag:

pip install InvoiceGenerator --upgrade

You can use setup.py from GitHub repository too:

python setup.py install

Documentation

Complete documentation is available on Read The Docs.

Example

Basic API

Define invoice data first:

import os

from tempfile import NamedTemporaryFile

from InvoiceGenerator.api import Invoice, Item, Client, Provider, Creator

# choose english as language
os.environ["INVOICE_LANG"] = "en"

client = Client('Client company')
provider = Provider('My company', bank_account='2600420569', bank_code='2010')
creator = Creator('John Doe')

invoice = Invoice(client, provider, creator)
invoice.currency_locale = 'en_US.UTF-8'
invoice.add_item(Item(32, 600, description="Item 1"))
invoice.add_item(Item(60, 50, description="Item 2", tax=21))
invoice.add_item(Item(50, 60, description="Item 3", tax=0))
invoice.add_item(Item(5, 600, description="Item 4", tax=15))

Note: Due to Python’s representational error, write numbers as integer tax=10, Decimal tax=Decimal('10.1') or string tax='1.2' to avoid getting results with lot of decimal places.

PDF

Generate PDF invoice file:

from InvoiceGenerator.pdf import SimpleInvoice

pdf = SimpleInvoice(invoice)
pdf.gen("invoice.pdf", generate_qr_code=True)

Pohoda XML

Generate XML invoice file:

from InvoiceGenerator.pohoda import SimpleInvoice

pdf = SimpleInvoice(invoice)
pdf.gen("invoice.xml")

Note: Pohoda uses three tax rates: none: 0%, low: 15%, high: 21%. If any item doesn’t meet those percentage, the rateVat parameter will not be set for those items resulting in 0% tax rate.

Only SimpleInvoice is currently supported for Pohoda XML format.

Hacking

Fork the repository on github and write code. Make sure to add tests covering your code under /tests/. You can run tests using:

python setup.py test

Then propose your patch via a pull request.

Documentation is generated from doc/source/ using Sphinx:

python setup.py build_sphinx

Then head to doc/build/html/index.html.

History

1.2.0 - 2024-07-14

  • Large project update, support for Python 3.8 - 3.12

1.1.0 - 2020-04-24

  • Fix QR code on invoice

  • Drop Python 2 support

  • Add pt_BR translation

  • Add support for transparent PNGs

1.0.0 - 2018-05-17

  • Add support for Pohoda XML format

  • Added much more complex documentation

  • Parameter Address.zip was renamed to Address.zip_code

  • Add parameters division and country to the Address

  • Added parameter Address.bank_code If present, the bank code will be written after dash to the account number, otherwise whole Address.bank_account will be used

  • Address are rendered to fit the area on the PDF invoice

  • Code style fixes

  • Fixes for rounding: usage of decimal.Decimal and added parameter Invoice.rounding_strategy

  • Fix for QR code

  • Allow to set line width in SimpleInvoice

0.5.4 - 2017-03-22

  • Fix locale in build package

0.5.3 - 2017-01-09

  • Use Babel for currency formating; fix and improve tests

0.5.2 - 2014-12-04

  • Stop mentionning python2.6 support

  • Make invoice.variable_symbol optional

0.5.1 - 2014-10-28

  • Fix conf relative import

  • Use python native function splitlines for notes

0.5.0 - 2014-09-21

  • Add property number to object Invoice

  • Replaced variable symbol for invoice number in invoice header

  • Update Czech translations

0.4.9 - 2014-07-3

  • Bug fix previous commit

0.4.8 - 2014-07-3

  • Create proforma invoice

0.4.7 - 2014-07-1

  • Change date format for qr code generator

  • Disable converting datetime to string on Invoice

  • Disable rendering empty values

0.4.6 - 2014-05-14

  • The displayed number of pages only when there is more than one

  • Rename Date to Date of exposure

  • Use pillow instead of PIL

0.4.5 - 2014-04-21

  • Support for multipage items printout

  • Support for multiline item description

  • Use locale to print currency strings and values

  • Adding logo to provider header

No notes on earlier releases.

Contributors

  • Adam Strauch (@creckx)

  • Martin Voldrich (@rbas)

  • Petr Dlouhy (@PetrDlouhy)

  • Antoine Musso (@hashar)

Release files for InvoiceGenerator 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for InvoiceGenerator 1.2.0
File Size Uploaded
invoicegenerator-1.2.0.tar.gz 1.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for InvoiceGenerator 1.2.0
File Interpreter ABI Platform
InvoiceGenerator-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.4 MB

Release files / invoicegenerator-1.2.0.tar.gz

Download URL invoicegenerator-1.2.0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
d9977fa63eaa4769a8175dee0487d9a6be2a4667e703c5e1e83a141b32cd0976
BLAKE2b-256 checksum
How to use checksums
2531f256a6fe577752672b76062cc4fe10b46439bfdad6b97b7b479174e5ebf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.9

Release files / InvoiceGenerator-1.2.0-py3-none-any.whl

Download URL InvoiceGenerator-1.2.0-py3-none-any.whl
Size 1.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
2eab5a02f6c975c03c554d0f214e5ed2c9b70956c0d1558a05cc24ed3a6173dc
BLAKE2b-256 checksum
How to use checksums
7cc3d52b0808108eacd11f40ba8a9f25a75f4499abd914d5a8b53a92b4774ff8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.9

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.0

1 release file

1.0.1

1 release file

0.5.4

1 release file

0.5.3

1 release file

0.5.2

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.9

1 release file

0.4.8

1 release file

0.4.7

1 release file

0.4.6

1 release file

0.4.5

1 release file

0.4.4

1 release file

0.4.3

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page