wc -l Print(ASTERIX_BORKS_HN).java   #6 files, 1,800 lines<p>wc -l print_job.rb  #1 file, 125 lines<p>This is not, strictly speaking, a fair comparison.  In addition to being a superior version of everything the Java version does, the Ruby version also does GIF export, caching on the web server, and basic feature-wide analytics.  The Java just barely staggers its way to generating a NxM grid and putting pleasingly aligned text in it.  It is also littered with comments like:<p>// DO NOT EDIT.  WILL NOT BE ABLE TO FIX.  See r47 for what happened last time.  (See r53.)  (See r128.)<p>Do it in Prawn.  I seriously have attempted to get my company to run a one-controller Rails app just to do PDF generation, because it would be cheaper going forward than the <i>prodigious</i> amount of effort we spend on report generation in Java.  (This was, sadly, not approved.)