A long-lived project that still receives updates
Super simple and fast PDF invoicing in pure Ruby (based on Prawn library).
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 1.7
>= 10.0

Runtime

~> 2.1
>= 3.9.0
~> 3.5
 Project Readme

 

Super simple PDF invoicing. InvoicePrinter is a server, command line program and pure Ruby library to generate PDF invoices in no time. You can use Ruby or JSON as the invoice representation to build the final PDF.

Philosophy

  • Simple, no styling required, no calculation, no money formatting (bring your own)
  • Pure Ruby, no dependency on system libraries or browsers
  • Fast, so you can render invoices on the fly during requests

Examples

Simple invoice

See more usecases in the examples/ directory.

Features

  • A4 and US letter paper size
  • Invoice/document name and number
  • Purchaser and provider boxes with addresses and identificaton numbers
  • Payment method box showing banking details including SWIFT and IBAN fields
  • Issue/due dates box
  • Configurable items' table with item description, breakdown, quantity, unit, price per unit, tax and item's total amount fields
  • Description above the table
  • Final subtotal/tax/total info box
  • Page numbers
  • Configurable field labels & sublabels (optional little labels)
  • Configurable font file
  • Logotype (as image scaled to fit 50px of height)
  • Background (as image)
  • Stamp & signature (as image)
  • Note
  • JSON format
  • CLI
  • Server
  • Well tested

Documentation

Support

I am developing InvoicePrinter as a free and MIT-licensed library for several years now.

Please consider buying my book or my Rails starter kit so I can work more on Open Source.

Contributing

Contributions are welcome. Make sure the tests are passing before submitting a PR:

$ bundle && bundle exec rake test

You can also quickly regenerate the examples if necessary:

$ ruby regenerate.rb

Copyright

Copyright 2015-2024 © Josef Strzibny. MIT licensed.