CDLABELGEN(1) User Contributed Perl Documentation CDLABELGEN(1)NAMEcdlabelgen - CD jewel case inserts and envelopes creator.
Generates frontcards and traycards for CD cases, and sin-
gle-cd envelopes.
SYNOPSIScdlabelgen [ -c <category> -s <subcategory> -i
<item1%item2%etc> -f <itemsfile> -v <num_items_cover> -e
<cover_epsfile> -S <cover_eps_scaleratio>[,<image_x_off-
set>,<image_y_offset_inches>] -E <tray_epsfile> -T
<tray_eps_scaleratio>[,<image_x_offset>,<image_y_off-
set_inches>] -d <date> -D -o <outputfile> -t <template> -b
-w -h -m -M -O -p -y <page_offset_inches> -l
<line_width_points>] --plaque-color <r,g,b> --category-
color <r,g,b> --subcategory-color <r,g,b> --text-color
<r,g,b>
VERSION
Version 2.6.0, May 2003
DESCRIPTION
cdlabelgen's purpose in life is twofold:
o To be run automatically and swiftly from a shell script
and automatically generate a frontcard and a traycard for
a cd--usually 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.
o 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.aczone.com/tools/cdinsert/. The
software package includes CGI scripts that can be used to
serve cdlabelgen over the internet. An older version may
be available at: http://www.red-bean.com/~bwf/soft-
ware/cdlabelgen/.
cdlabelgen comes with several eps images for you to use on
your labels. These images can be found in /usr/free-
ware/share/cdlabelgen or /usr/local/lib/cdlabelgen or
/usr/share/cdlabelgen or /opt/lib/cdlabelgen or
/usr/local/share/cdlabelgen, depending on your installa-
tion. Included are a Recycling icon, an mp3 icon, the Com-
pact Disc icon (with and without 'Digital' on it), Tux the
penguin, and the new Debian 'swirl' logo. Two color back-
ground images called Music Notes are also available.
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 <category>
Set the category (title) for the CD
-s, subcategory <subcategory>
Set the subcategory (subtitle) for the CD
-i, --items <items>
'items' should be a '%' separated list of items to
print on the traycard of the CD. Note that if the
number of items are too many to fit on the tray card,
cdlabelgen will leave out some items at the end.
cdlabelgen automatically flows the items into 2, 3, 4,
or 5 columns and scales the fontsize accordingly,
unless the "-P" option is used. You can insert blank
lines by inserting 2 percent signs in a row into the
items list.
-f, --items-from-file <filename>
Get item names from file named filename. Each item
should be on its own line separated by carriage
returns. cdlabelgen automatically flows the items
into 2, 3, 4, or 5 columns and scales the fontsize or
clips the items as needed. You can insert blank lines
by placing blank lines between items in this file
-v, --cover-items <number_of_items_for_cover>
Normally, all the items are printed on the tray card.
But if you have a large number of items, you may wish
to print some items on the cover, and rest on the tray
card. This option provides a way of specifying how
many items should be printed on the cover. Default is
0 (i.e., print no item on the cover, print all items
on the tray). The items to be printed on the cover are
taken from the list of items, from the top of the
list. Note that if the number of items is too many to
fit on the cover, it will result in items being
dropped. As of Jan 2002, around 250-300 items can be
fitted on the cover or the tray, depending on whether
a title/subtitle/date is used or not.
-d, --date <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.
-D, --no-date
Do not print any date (overrides -d as well)
-e, --cover-image <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-image-scaleratio <cover_eps_scaleratio
[,image_x_offset,image_y_offset_inches]>
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.0. 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).
If the scale value passed is 0 (or 0.0), then the logo
is used as a background image - it will be scaled as
required to fit the entire cover.
The -S option also takes optional translate arguments.
Normally images are printed on the cover and the tray
so that the bottom-right of the image is anchored to
the bottom-right of the cover or tray. To move the
images away from the bottom and right borders, use
this option. For example, to leave two inches of gap
between the image and the bottom border, and 0.5
inches from the left border, and use 1.0 scaleratio,
use this: -S 1.0,-2,0.5
This offset only applies when the image is being used
as a logo - i.e., image is not being used as back-
ground to fill the entire cover or tray.
-E, --tray-image <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-image-scaleratio <tray_eps_scaleratio
[,image_x_offset,image_y_offset_inches]>
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 positive number (int or float) specifying the
scale.
If the scale value passed is the word fill1, then the
image is used as a background - it is scaled so that
it completely fills the interior tray card region.
The value 0 (or 0.0) works same as the fill1 argument.
If the value passed is the word fill2, then the image
is used as a background - it is scaled so that it com-
pletely fill both the tray card region, and the two
endcaps (but not the extreme right-hand 'tongue-cap').
The -T option also takes optional translate arguments.
Normally images are printed on the cover and the tray
so that the bottom-right of the image is anchored to
the bottom-right of the cover or tray. To move the
images away from the bottom and right borders, use
this option. For example, to leave two inches of gap
between the image and the bottom border, and 0.5
inches from the left border, and use 1.0 scaleratio,
use this: -T 1.0,-2,0.5
This offset only applies when the image is being used
as a logo - i.e., image is not being used as back-
ground to fill the entire cover or tray.
-o, --output-file <outputfile>
If the -o flag is used, cdlabelgen prints to output-
file instead of STDOUT.
-t, --template <template>
Specify explicitly which template to use. This is use-
ful if you need to debug the PostScript code in the
template, use a different template, or if you have
created your own template to use in lieu of the one
provided with cdlabelgen.
-b, --no-tray-plaque
Suppresses printing of the Plaque on the traycard,
thus allowing you to either fit even more items on the
traycard, or to use a slightly larger font size for
the items.
-h, --help
print out the usage message
-w, --tray-word-wrap
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.
If there is a problem with "-w", the best option right
now is to split lines in the input itself, and to omit
the "-w" option.
-m, --create-slim-cover
Creates covers suitable for use in slim cd-cases, this
means no tray card (the tray card is now the inside
front cover). This creates a two page, folding cover
insert. This could also be used in normal cd cases.
-O, --slim-cover-foldout
Output slim cd cover cases with the order of the pages
switched so the folding line lies on the outside of a
normal cd case.
-M, --create-envelope
Creates covers suitable for use as envelopes for a CD.
Guide lines are printed, to aid in folding the print-
out correctly.
-p, --clip-items
Enables clipping of items; uses fixed font size for
all items. Normally, the template.ps used by cdlabel-
gen will try to fit an item in a given column by
reducing the font size if needed. This is ok if done
for one or two items, but if done too often, it makes
the tray card look ugly, with text of varying font
sizes.
Use this option to use a fixed width font for all
items. If the item is too large to fit in a column,
the text will be clipped instead.
-y, --page-offset <y_offset_inches>
Use this to move the entire output up or down, to make
the output fit on appropriate sized paper. For letter
sized paper, 0.8 works well, and for A4 paper, 1.5
works well. The value is in units of inches.
-l, --line-width <line_width_points>
Specify size in points of the edge and interior lines
of the cover and tray card. If this is 0, then the
lines are omitted for both the cover and tray (but
guide cut lines are still printed). The size is speci-
fied in points (1 point is 1/72 inch).
--plaque-color <r,g,b>
Specify a color to fill plaque. Color must be speci-
fied using the rgb components, each value should be
between 0 and 255.
--category-color <r,g,b>
Specify a color for category. Color must be specified
using the rgb components, each value should be between
0 and 255.
--subcategory-color <r,g,b>
Specify a color for subcategory. Color must be speci-
fied using the rgb components, each value should be
between 0 and 255.
--text-color <r,g,b>
Specify a color for text - this is used for the list
of items, and the date display under the plaque and in
the end-caps. Color must be specified using the rgb
components, each value should be between 0 and 255.
EXAMPLEScdlabelgen-c "My Filesystem"
-s "/usr/local/foo"
-e postscript/recycle.eps > foo.ps
cdlabelgen-c "title of cd"
-s "subtitle"
-i "Item 1%and Item 2%a third item here perhaps"
-e postscript/recycle.eps > bar.ps
cdlabelgen-c "Fitz"
-s "home directory"
-o qux.ps
CHARACTER ENCODINGS - using ogonkify
cdlabelgen uses the Helvetica family of fonts for various
text items, using the default encoding of ISO-Latin1.
To use other encodings, the "ogonkify" program can be
used; this is a package available at
http://www.pps.jussieu.fr/~jch/software/ogonkify/ The out-
put from cdlabelgen can be piped into ogonkify, example
for Latin2 encoding:
cdlabelgen <args> | ogonkify -H -eL2 > <outputfilename>
See the man page for ogonkify for other possible values
for the encoding.
Hint: if you always work with a particular encoding, you
can just run ogonkify on template.ps - and use the output
as the new template.ps.
ogonkify -H -eL2 template.ps > template-enc.ps
This way ogonkify has to be run only once, cdlabelgen out-
put will contain the correctly encoded fonts from the mod-
ified template.ps. Use the -tcdlabelgen option to specify
the new template-enc.ps file, or save the old template.ps
and renmae template-enc.ps to template.ps.
AUTHOR
Currently maintained by Avinash Chopde
<avinash@aczone.com>
Original 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
- Sebastian Wenzler <sick@home.and.drunk.at> for reports, tests, RPM ['01]
- Peter Bieringer <pb@bieringer.de> for RPM .spec file ['02]
- Ronald Rael Harvest <number6@cox.net> for original envelope template ['02]
- Alessandro Dotti Contra <alessandro.dotti@libero.it> for color support,
man page and other improvements ['02]
Mathias Herberts
- Mathias Herberts <Mathias.Herberts@iroise.net>, for slim cdcase foldout
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
the need for a free labelling program which could be inte-
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).
Please report bugs and submit any patches to the current
author's email address.
TODO
** Ability to change the text style on a given line:
{#B}Track# {#P}Title {#I} Text...
[Workaround available: just use multi columns input, use blank
lines to spread out input items into columns]
** Ability to select or specify fonts for the text/items
2003-06-17 perl v5.6.1 CDLABELGEN(1)