cdlabelgen - generates frontcards and traycards for CDs


SYNOPSIS

       cdlabelgen -c <category> -s <subcategory> [-i
       <item1%item2%etc> -f<itemsfile> -e <cover_epsfile> -S
       <cover_eps_scaleratio> -E <tray_epsfile> -T
       <tray_eps_scaleratio> -d <date> -D -o <outputfile> -t
       <template> -b -w -h]


VERSION

       Version 1.5.0


DESCRIPTION

       cdlabelgen's purpose in life is twofold:

       · To be run automatically and swiftly from a shell script
           and automatically generate a frontcard and a traycard
           for a cd--usu­ ally data archive cd's. The traycard
           (which goes behind the CD itself) is U-shaped and the
           ends of the CD case bear the label of what the CD is.

       · To have a minimum of dependencies--cdlabelgen only
           requires perl.

       cdlabelgen was designed to simplify the process of gener­
       ating labels for CD's. It originated as a program to allow
       auto generation of frontcards and traycards for CD's
       burned via an automated mechanism (specifically for
       archiving data), but has now become popular for labelling
       CD compilations of mp3's, and copies of CDs. Note that
       cdlabelgen does not actually print anything--it just spits
       out postscript, which you can then do with as you please.

       The latest version of cdlabelgen as well as this document
       can be found at http://www.red-bean.com/~bwf/soft­
       ware/cdlabelgen/. Please make certain that you are using
       the latest version before submitting any bug reports or
       patches.

       Thanks to some really hairy postscript from GNUPlot, cdla­
       belgen now supports arbitrary ISOLatin font characters.
       This means that you can print out characters like ćřĺĆŘĹ
       (ASCII \230, \248, \229, \198, \216 and \197)

       cdlabelgen comes with several eps images for you to use on
       your labels. These images can be found in /usr/share/cdla­
       belgen or /usr/local/share/cdlabelgen, depending on your
       installation. Included are a Recycling icon, an mp3 icon,
       the Compact Disc icon (with and without 'Digital' on it),
       Tux the penguin, and the new Debian 'swirl' logo. If you
       have any freely redistributable eps files that you would
       like to see distributed with cdlabelgen, send them to me
       at <fitz@red-bean.com>, and I may be able to include them

       and subject matter permitting).

       Note that cdlabelgen now prints a 'tongue' as part of the
       traycard. This folds around and is viewable from the front
       in jewel boxes that are entirely clear (CD holder piece is
       not opaque). If you do not have a clear CD holder in your
       jewel box, you may find it easier to just cut the 'tongue'
       off--it's a bit easier to fold without it.

       cdlabelgen requires Perl Version 5.003 or greater.
       Ghostscript is not required, but is recommended so that
       you can test out your labels without wasting paper.


SWITCHES

       -c category
           Set the category (title) for the CD

       -s subcategory
           Set the subcategory (subtitle) for the CD

       -i items
           'items' should be a '%' separated list of items to
           print on the traycard of the CD.  Note that if the
           items list is more than 192 (256 with the -b flag)
           items long, cdlabelgen will truncate it. cdlabelgen
           automatically flows the items into 2, 3, or 4 columns
           and scales the fontsize accordingly. Excessively wide
           items will be scaled down (into illegibility some­
           times--I plan on working on that in a future release)
           to fit horizontally. You can insert blank lines by
           inserting 2 percent signs in a row into the items
           list.

       -f filename
           Get item names from file named filename. Each item
           should be on its own line separated by carriage
           returns. Note that if the items list is more than 192
           (256 with the -b flag) items long, cdlabelgen will
           truncate it. cdlabelgen automatically flows the items
           into 2, 3, or 4 columns and scales the fontsize
           accordingly. Excessively wide items will be scaled
           down (into illegibility sometimes--I plan on working
           on that in a future release) to fit horizontally. You
           can insert blank lines by placing blank lines between
           items in this file

       -d date
           Set the date to be used as 'date' if not set or not
           overridden with the -D flag, today's date will be used
           (default is today's date). Use this option if you
           don't like cdlabelgen's default format of YYCC-MM-YY,
           for example.


       -e cover_epsfile
           Filename of eps file to print on cover. Note that
           cdlabelgen requires that the eps file contain a proper
           '%%BoundingBox LLx LLy URx URy' declaration according
           to the PostScript Document Structuring Conventions.
           cdlabelgen uses this line to determine the dimensions
           of the eps graphic so that it can position it appro­
           priately on the cover. Note that cdlabelgen first
           looks for this file in your working directory. If it
           doesn't find it there, it will look in the list of
           directories where the default eps files are stored
           (see @where_is_the_template). This makes it easy to
           use the images shipped with cdlabgelgen without typing
           miles of pathnames.

       -S cover_eps_scaleratio
           The ratio by which you want to scale the epsfile that
           appears on the cover. If you omit this flag, cdlabel­
           gen assumes a scaleratio of 1. This flag allows you to
           squeeze larger graphics into the cover or expand
           smaller graphics to fill the cover. Scaleratio must be
           a number (int or float).

       -E tray_epsfile
           Filename of eps file to print on traycard. Note that
           cdlabelgen requires that the eps file contain a proper
           '%%BoundingBox LLx LLy URx URy' declaration according
           to the PostScript Document Structuring Conventions.
           cdlabelgen uses this line to determine the dimensions
           of the eps graphic so that it can position it appro­
           priately on the cover. Note that cdlabelgen first
           looks for this file in your working directory. If it
           doesn't find it there, it will look in the list of
           directories where the default eps files are stored
           (see @where_is_the_template). This makes it easy to
           use the images shipped with cdlabgelgen without typing
           miles of pathnames.

       -T tray_eps_scaleratio
           The ratio by which you want to scale the epsfile that
           appears on the traycard. If you omit this flag, cdla­
           belgen assumes a scaleratio of 1. This flag allows you
           to squeeze larger graphics into the traycard or expand
           smaller graphics to fill the traycard. Scaleratio must
           be a number (int or float).

       -o outputfile
           If the -o flag is used, cdlabelgen prints to output­
           file instead of STDOUT.

       C-t template
           Specify explicitly which template to use. This is

           ent template, or if you have created your own template
           to use in lieu of the one provided with cdlabelgen.
           Remember to send in patches to me at <fitz@red-
           bean.com> if you hack any interesting fixes or fea­
           tures into the template.

       -b  Suppresses printing of the Plaque on the traycard,
           thus allowing you to fit even more items on the tray­
           card. Use if you have more than approximately 192
           items. This will allow you to print up to 256 items.

       -h  print out the usage message

       -w  Enables word wrapping of the items that print on the
           traycard. Note that this is *not* extensively tested
           and may be buggy! Make sure that you preview your
           label before printing it if you use this flag. This
           was a frequently requested feature, so I hacked it
           into the perl side of cdlabelgen as I don't have the
           time now to do it properly in postscript--patches are
           welcome (hint, hint).


EXAMPLES

               ./cdlabelgen -c "My Filesystem" -s "/usr/local/foo" -e postscript/recycle.epsi > foo.ps

               ./cdlabelgen -c "title of cd" -s "subtitle" -i "Item 1%and Item 2%a third item here perhaps" -e postscript/recycle.epsi > bar.ps

               ./cdlabelgen -c "Fitz" -s "home directory" -o qux.ps


AUTHOR

       B. W. Fitzpatrick <fitz@red-bean.com>


THANKS

               - Karl Fogel, for general encouragement and that free software vibe
               - Adam Di Carlo, for bug testing, help and making the .deb
               - Greg Gallagher, for bug testing, coding, and tons of suggestions
               - Goran Larsson, for feedback and date fixes
               - Jens Claussen, for the patch to allow arbitrary ISO-Latin1 characters
               - Bernard Quatermass, for contributing several excellent new features


ERRATA

       Perhaps one of the most important features that I wanted
       in a CD labelling program was the ability to print
       Title/Subtitle, and date information on the endcaps of the
       CD jewel box to allow me to keep archive disks in a stan­
       dard CD rack and find a particular one without yanking
       them all out and shuffling through them like a deck of
       cards.

       cdlabelgen was inspired by the need for not only a simple
       cd labelling program (there are many available), but by

       grated easily with scheduled CD archiving routines. I did
       find a program called cdlabel
       http://londo.ncl.ac.uk/~npac/cdlabel/, but that one is
       designed to work with CDDB.

       I searched the net for a suitable program, but found none,
       so taking cues from programs that I found that perform
       similar tasks (like tape labellers and DAT labellers), I
       embarked on this venture. Notable inspiration came from
       the incredible audio-tape.ps by Jamie Zawinski (which is
       indeed, as Jamie notes, completely out of control). Other
       ideas were drawn from casslabel.c, and cdlabel.cc (noted
       above).

       People have already pointed out to me that cdlabelgen
       could be extended to perform other functions:

       · Print out the actual label that goes on the disk (I
           suppose it is kinda funny that it is named cdlabelgen
           and doesn't really generate any label per se).

       · Integrate with cdindex or cddb or something like that.

       If you are interesting in doing or contributing to the
       above features (or any other features for that matter!),
       please contact me at the above address. Please report bugs
       and submit any patches to the above address as well--all
       help is appreciated.


BUGS

       · Excessively wide (> 30 chars) traycard items are shrunk
           into illegibility.

       · Word Wrapping is a bit wonky.


TODO

       In order of importance.

       · Proper word wrapping (on the postscript side).

       · Add cdindex support


LAST MODIFIED

       $Id: cdlabelgen,v 1.48 1999/06/23 17:48:15 bwf Exp $


Man(1) output converted with man2html