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