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)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

invoicegenerator-1.2.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

InvoiceGenerator-1.2.0-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file invoicegenerator-1.2.0.tar.gz.

File metadata

  • Download URL: invoicegenerator-1.2.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.9

File hashes

Hashes for invoicegenerator-1.2.0.tar.gz
Algorithm Hash digest
SHA256 d9977fa63eaa4769a8175dee0487d9a6be2a4667e703c5e1e83a141b32cd0976
MD5 5412d72f76d07cd8e6315c0cb77302e2
BLAKE2b-256 2531f256a6fe577752672b76062cc4fe10b46439bfdad6b97b7b479174e5ebf2

See more details on using hashes here.

File details

Details for the file InvoiceGenerator-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for InvoiceGenerator-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2eab5a02f6c975c03c554d0f214e5ed2c9b70956c0d1558a05cc24ed3a6173dc
MD5 8c18bdab13d768a3de3385d1333b0a22
BLAKE2b-256 7cc3d52b0808108eacd11f40ba8a9f25a75f4499abd914d5a8b53a92b4774ff8

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 files

1.1.0

1 file

1.0.1

1 file

0.5.4

1 file

0.5.3

1 file

0.5.2

1 file

0.5.1

1 file

0.5.0

1 file

0.4.9

1 file

0.4.8

1 file

0.4.7

1 file

0.4.6

1 file

0.4.5

1 file

0.4.4

1 file

0.4.3

1 file

0.4.2

1 file

0.4.1

1 file

0.4.0

1 file

0.1.1

1 file

0.1.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page