Announcing GIP: GnuCash Invoice Printer
Ian Smith-Heisters
i at idiosyncra.tc
Sat Jun 14 16:48:52 EDT 2008
In the proud tradition of gcinvoice and gc2latex, I've written yet
another way of exporting your GnuCash invoices.
= GIP: Gnucash Invoice Printer
Author:: Ian Smith-Heisters <i at idiosyncra.tc>
Copyright:: Copyright (c) 2008 Ian Smith-Heisters
License:: GPLv3 http://www.gnu.org/licenses/gpl.html
== Commandline Usage
./gip.rb -h
If you're getting errors compiling the tex file, you might want to output just
the tex file to debug it.
./gip.rb -d ~/accounts/gnucash_data -i FOO-1 -t example.tex.erb -f tex
pdflatex FOO-1.tex FOO-1.pdf
is equivalent to
./gip.rb -d ~/accounts/gnucash_data -i FOO-1 -t example.tex.erb
except that it might provide some useful debug information that would otherwise
be swallowed by Ruby.
== Installation
gem install xmlsimple getopt-declare rtex --include-dependencies
git git://idiosyncra.tc/idiosyncra.tc/projects/gip.git
== Templates
=== LaTeX
The LaTeX templating engine is basically ye olde ERB, so you'll be wanting to
do stuff like
<%= @invoice.name %>
You might want to take a look at the rtex documentation, in particular the +l+
method, which will escape LaTeX special characters.
<%= l entry.description %>
For a full reference of which instance variables are available to your template,
see <tt>Invoice#with_template_variables</tt>. For a full reference of what
methods you can call on them, consult the source or RDoc output.
=== CSV
The CSV templates are just ruby files with a CSV generator object made
available in <tt>@csv</tt>, along with the usual instance variables from
<tt>Invoice#with_template_variables</tt>. See Ruby stdlib CSV documentation for
more details.
== Library Usage
You can also use GIP as a Ruby library if you're wanting to get down and dirty.
Since I wanted it all in one file until I package it up in a gem, you have to
do a little hack so that the require call doesn't fuck with your program:
ENV['GIP_DONT_RUN'] = '1'
require 'gip'
If you were to not set GIP_DONT_RUN, or set it to something other than '1', your
program will abort looking for commandline arguments. Of course the following
bash command is equivalent to the above Ruby:
GIP_DONT_RUN=1 ruby -rgip -e '...'
More information about the gnucash-user
mailing list