NAME¶
cdlabelgen - CD/DVD labels, jewel case inserts, and envelopes creator. Generates
frontcards and traycards for CD cases, single-cd envelopes, DVD case inserts,
as well as output suitable for direct printing on CD/DVD.
SYNOPSIS¶
cdlabelgen [
-c <category>
-s <subcategory>
-i
<item1%item2%etc>
-f <itemsfile>
-v
<num_items_cover>
-e <cover_epsfile>
-S
<cover_eps_scaleratio>[,<image_x_offset>,<image_y_offset_inches>]
-E <tray_epsfile>
-T
<tray_eps_scaleratio>[,<image_x_offset>,<image_y_offset_inches>]
-d <date>
-D -o <outputfile>
-t
<template>
-b -C -w -h -m -M
-O -p -y <page_offset_inches>
-l
<line_width_points>]
--create-dvd-inside
--create-dvd-outside --double-case --create-cdlabel
--rotate-endcaps --plaque-color <r,g,b>
--category-color <r,g,b>
--subcategory-color <r,g,b>
--text-color <r,g,b>
-n <volume/number in set>
--rows-columns <row_count_for_items,column_count_for_items>
--tray-overlay <overlay_epsfile>
--tray-overlay-scaleratio
<tray_overlay_image_scaleratio>[,<image_x_offset>,<image_y_offset_inches>]
VERSION¶
- Version 4.1.0, October 2008
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--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. Inside inserts for
DVDs are also supported.
- * To have a minimum of dependencies--cdlabelgen only
requires perl.
cdlabelgen was designed to simplify the process of generating 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. It can also be combined with output from other programs such as
"barcodegen" - to print a barcode as a tray overlay image.
The latest version of cdlabelgen as well as this document can be found at
http://www.aczoom.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/software/cdlabelgen/.
cdlabelgen comes with several eps images for you to use on your labels. These
images can be found in /usr/local/lib/cdlabelgen or /usr/share/cdlabelgen or
/opt/lib/cdlabelgen/ 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. Two color background images called Music Notes are also
available.
CDs: cdlabelgen 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.
Paper Sizes: Normal CD cases, Slim CD cases, DVD inside inserts can be printed
on a letter or A4 sized page. CD/DVD Envelopes and DVD outside inserts will
not fit on a letter sized paper, a larger paper size will be needed to make it
fit.
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.
Special commands can be embedded in the file, all of these commands should
be present starting at the first column of the line. The codes are used to
change the font for an item, the code itself is not printed in the output.
{#BI} - make the item bold and italic
{#I} - make the item italic
{#B} - make the item bold
{#M} - make the item mono-spaced (Courier font)
{#MB} - make the item monospaced and bold (Courier-Bold font)
Example:
{#MB} Text 1 Item
would print the line " Text 1 Item" in a monospaced bold font.
- -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 appropriately 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, cdlabelgen 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 background 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 appropriately 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, cdlabelgen 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 to fill more than just the tray. For normal CD cases, the image
is scaled so that it completely fills both the tray card region, and the
two endcaps (but not the extreme right-hand 'tongue-cap') for normal cd
cases. For Slim CD cases or DVD Inside/Outside covers, the tray image will
fill both the tray and cover regions (including any spines). For directly
printing on a CD (--create-cdlabel), fill2 option works like the fill1
option.
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 background to fill the entire cover or
tray.
- -o, --output-file <outputfile>
- If the -o flag is used, cdlabelgen prints to
outputfile instead of STDOUT.
- -t, --template <template>
- Specify explicitly which template to use. This is useful 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.
- -C, --no-cover-plaque
- Suppresses printing of the plaque on the front cover, thus
allowing a cover image that fills the front cover, but still displaying
category and sub-category information in the other usual places.
- -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, --slim-case
- 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 as an inside insert.
Slim case option can be used with outside dvd inserts ( --create-dvd-outside
) also - in which case the outside insert is created for half-height DVD
case.
- -O, --outside-foldout
- Output slim cd cover cases (or dvd inserts) with the order
of the pages switched so the folding line lies on the outside of a normal
case. Can be used when printing either the slim-cd-case or dvd-inside
inserts.
This option is best used along with option -m (--slim-case) or
--create-dvd-inside.
- --rotate-endcaps
- Endcap text is rotated by 180 degrees, to flip the text
around.
- -M, --create-envelope
- Creates covers suitable for use as envelopes for a CD.
Guide lines are printed, to aid in folding the printout correctly.
- --create-dvd-inside
- Creates inserts suitable for use as inside insert for a
normal DVD case. Guide lines are printed, to aid in folding the printout
correctly. Note: DVD inserts may not print fully on Letter or A4 sized
paper printers; it may require larger paper sizes.
- --create-dvd-outside
- Creates inserts suitable for use as outside cover inserts
for a normal DVD case. Guide lines are printed, to aid in folding the
printout correctly. Note: DVD inserts may not print fully on Letter or A4
sized paper printers; it may require larger paper sizes.
Slim case option ( --slim-case ) can be used with outside dvd inserts also -
in which case the outside insert is created for half-height DVD case.
- --double-case
- Create covers for double-sided DVD cases that hold 6 DVDs.
Only double-width DVD cases are support, double-width CD cases are not
supported. Therefore, using --double-case also implies the
--create-dvd-outside option.
- --create-cdlabel
- For directly printing on a CD or DVD. As of January 2005,
there are inkjets printers that can print on certain types of blank CD/DVD
discs. Only a small number of items can be printed on the CD, and the
number of characters in the title and subtitle is also limited. Always
check the output visually by using PostScript viewers or printing on
paper, before printing on the CD.
With this option, the top portion of the disc represents the
"cover" area - so arguments related to the cover: title
(--category), subtitle (--subcategory), --no-cover-plaque, --cover-items,
--cover-image, etc all apply to the top area. The bottom portion of the
disc represents the "tray" area, so arguments related to the
tray: --no-tray-plaque, --tray-image, etc all apply to the bottom area.
The date (--date) string, if present, is printed along the bottom curved
edge of the disc.
Background images can be specified using the --cover-image option, modified
as need by the --cover-image-scaleratio. If --tray-image is also
specified, note that the cover image is printed first, then the tray image
overwrites the cover image. The title/items text is then finally printed
over all the images.
The --no-tray-plaque and/or --no-cover-plaque (along with --cover-items)
option is also recommended with --create-cdlabel, otherwise there may be
no space for any items to be printed on the disc.
The --clip-items option is also recommended.
- -p, --clip-items
- Enables clipping of items; uses fixed font size for all
items. Normally, the template.ps used by cdlabelgen 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
[<page_x_offset_inches,]<page_y_offset_inches
- Use this to move the entire output up or down (y_offset),
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. An optional X-axis offset can also be specified. Default values: 1
inch for X-axis, 0.8 inches for Y-axis.
- -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
specified in points (1 point is 1/72 inch).
- --plaque-color <r,g,b>
- Specify a color to fill plaque. Color must be specified
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 specified
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.
- -n, --number-in-set <string>
- Append volume information to the end of the date string.
This should be a single string. If used in conjuction with "-D",
it will be in place of the date; otherwise, it is appended to the date as
" - <number-in-set>"
- --rows-columns
<row_count_for_items,column_count_for_items>
- The --rows-columns options forces the list of items to be
printed using that many rows, and that many columns. Both numbers have to
be provided, no spaces, for example: --rows-columns=11,3
The list of items is laid out in top-down, left-to-right fashion. Use blank
items in the input, to get appropriately aligned columns.
--rows-columns applies to the list of items wherever they are printed -
normally on the tray only, but may include cover, or the top and bottom
portions of the round printouts for direct CD label printing. Same values
apply to all these variations, so if you need different number of
rows/columns for cover vs tray, you can use two different runs of
cdlabelgen, to get two postscript files, and pick the cover from one
printout, and tray from the other. This will work for jewel-case inserts,
but may not work for direct CD label printing.
- --tray-overlay overlay_epsfile
- Filename of eps file to print as overlay on traycard. This
image is printed over the background image (tray-image) as well as the
list of items. Therefore, this is useful for things like barcodes. In
terms of EPS file requirements, see the --tray-image option
description.
- --tray-overlay-scaleratio
tray_overlay_image_scaleratio[,image_x_offset,image_y_offset_inches]
- The ratio by which you want to scale the epsfile that is
used with the --tray-overlay option, and optionally to translate the
overlay. Normally overlay image is printed on the tray so that the
bottom-right of the image is anchored to the bottom-right of the tray. To
move the images away from the bottom and right borders, use this option.
For example, to leave 0.1 inches of gap between the image and the bottom
border, and 0.2 inches from the right border, and use 1.0 scaleratio (no
scaling), use this: --tray-overlay-scaleratio 1.0,-0.2,0.1
EXAMPLES¶
cdlabelgen -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 -o bar.ps
cdlabelgen -c "Fitz"
-s "home directory"
-o qux.ps
cdlabelgen -c "Backups"
-s "home directory"
-n "4 of 5"
Direct printing on a CD or DVD, if file "example5.txt" has list of items:
cdlabelgen --clip-items --no-tray-plaque --date "Jan 2005"
-c "Collections 12" -s "- english songs -"
--cover-image "music2.eps" --cover-image-scaleratio 0.0
--tray-image "mp3.eps" --tray-image-scaleratio 0.5,-0.5,2
--page-offset 0.5,0.5 -f example5.txt -o test.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
output 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 output will contain the
correctly encoded fonts from the modified template.ps. Use the -t cdlabelgen
option to specify the new template-enc.ps file, or save the old template.ps
and renmae template-enc.ps to template.ps.
PRINTING¶
When using tools such as Adobe Acrobat to print the .ps or a .pdf file, make
sure that "Fit To Paper" option is unchecked. Also uncheck any
option that will perform scaling up or down of the cdlabelgen output file.
Failure to do so will result in incorrect size printouts.
Paper Sizes: Normal CD cases, Slim CD cases, DVD inside inserts can be printed
on a letter or A4 sized page. CD/DVD Envelopes and DVD outside inserts will
not fit on a letter sized paper, a larger paper size will be needed to make it
fit.
When using different sized paper, experimentation with the
-y (also:
--page-offset) [<page_x_offset_inches,]<page_y_offset_inches>
option may be required to place the image in the printable region of the
paper.
AUTHOR¶
Avinash Chopde <
avinash@aczoom.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
- Stephan Grund <Stephan.Grund@isst.fraunhofer.de>, for monospaced
font and for rotated-end-caps text support
- Dominique Dumont <domi.dumont@free.fr>, for half-height DVD case support
(patch forwarded by Juan Manuel Garcia Molina <juanma@debian.org>)
- Peter Bieringer <pb@bieringer.de> for testing CD label printint ['05]
- Andras Salamon <asalamon@chello.hu> for double-width DVD support ['08]
TODO¶
** Word wrap does not work well at all. It will clip lines, or it will
auto-reduce the font size, both of which option look bad.
** 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