Project

invoicepdf

0.01
No commit activity in last 3 years
No release in over 3 years
Easily create PDF invoices
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.0.0
>= 0
~> 1.5.1
>= 0

Runtime

>= 0
 Project Readme

InvoicePDF¶ ↑

InvoicePDF is a Ruby gem to easily create PDF invoices within your application.

I created this to be easily extensible by creating and specifying your own generators to create invoices fit for your use.

Getting Started¶ ↑

  1. Install InvoicePDF as you would any other gem

gem install invoicepdf

  1. Include the gem in your Gemfile for Rails applications

gem “invoicepdf”

  1. Start using it in your application

invoice = InvoicePDF::Invoice.new( :company => “Drew Tempelmeyer”, :company_address => “555 55th StnNew York, NY 00000”, :bill_to => “John Doe”, :number => “AZ-100”, :notes => “Test invoice”) invoice.items << InvoicePDF::LineItem.new(:description => “Here is a line item”, :price => 495.00, :quantity => 5) invoice.save

Using a generator¶ ↑

Generators are what actually create the PDF. This allows you to customize the appearance of your invoice by creating a new generator. Have a look at lib/generators/standard.rb for an example.

Specifying the generator to use is easy. When creating your Invoice object, use the :generator attribute. invoice = InvoicePDF::Invoice.new( :generator => InvoicePDF::Generators::Standard.new, :company => “Drew Tempelmeyer”, :company_address => “555 55th StnNew York, NY 00000”, :bill_to => “John Doe”, :number => “AZ-100”, :notes => “Test invoice”)

We’re using the InvoicePDF::Generators::Standard generator to create our invoice. When you save the invoice, it will call the create_pdf method inside your generator (in this example InvoicePDF::Generators::Standard.create_pdf).

Creating a generator¶ ↑

All generators should be contained within the InvoicePDF::Generators module. Your generator needs to have the create_pdf method.

A barebones generator would look something like the following module InvoicePDF module Generators class Barebone include InvoicePDF::Helpers # if you need the helpers def create_pdf( invoice ) Prawn::Document.generate(“#{invoice.file_path}/#{invoice.file_name}”, :dpi => 72) do |pdf| pdf.text “Invoice #{invoice.number}” end end end end end

This would simply create a PDF in your specified directory with the specified file name.

PDF generation is done by using the Prawn gem (prawn.majesticseacreature.com/docs/).

Contributing to InvoicePDF¶ ↑

  • Check out the latest master to make sure the feature hasn’t been implemented or the bug hasn’t been fixed yet

  • Check out the issue tracker to make sure someone already hasn’t requested it and/or contributed it

  • Fork the project

  • Start a feature/bugfix branch

  • Commit and push until you are happy with your contribution

  • Make sure to add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.

Copyright © 2010 Drew Tempelmeyer. See LICENSE.txt for further details.