PPMTOMD
Section: User Commands (1)
Updated: ppmtomd
Page Index
NAME
ppmtomd - convert PPM files to the Alps MicroDry printer format
SYNOPSIS
- ppmtomd [ options ] [ PPM-file ]
-
DESCRIPTION
A program to convert images from PPM format into the control language
for the Alps Micro-Dry printers, at various times sold by Citizen,
Alps and Okidata.
The input image is printed as one page. However, ppmtomd will
correctly handle concatenated PPM files by printing each file on a
separate page, allowing it to be used as a filter for GhostScript with
PPM output.
If no input file is given, ppmtomd reads from standard input.
It does not spool its input to disk; however, it does store several
intermediate files, and for a typical A4 photo image printed in
standard mode, at least 20MB should be available in the temporary
directory (/tmp, or the environment variable TMPDIR), or 80MB
in the dye-sub and vphoto modes.
The formatted output is sent to standard output. ppmtomd does
not at present try to read any information from the printer, so the
output can be sent to a spooler or anywhere else as desired.
OPTIONS
For both option names and values that are options, any unambiguous
(case-insensitive) prefix may be used. For example, the
-transfermode
option takes arguments including
Black, Colour, Cassette, but
it is enough to give
b,co,ca.
-autoshift
This option shifts the image appropriately to take account of the
unprintable areas on the paper, assuming that the input image occupies
the full area of the paper. Thus if a PPM image is generated by
giving the
-sPAPERSIZE=a4 option to GhostScript, ppmtomd should
be given the options
-papersize A4 -autoshift.
-black
This option sets black monochrome printing. It is equivalent to
-monochrome -transfermode Black.
-colourcorrectionmode
This option specifies what colour correction is to be applied. The
possible values are:
- None
-
No colour correction at all is done; in colour printing modes, the RGB
input data will be converted to CMY with no black.
- Plain
-
The RGB input will be converted to CMYK with full black generation and
undercolour removal. This is the default when no dithering is done.
- Photo
-
In this mode, monochrome data will be subject to gamma correction (see
-gamma), and colour data will be corrected by a lookup table
derived from the Alps Windows drivers. It can be adjusted by the
-gamma (see below) and -keepblack options.
This is the default when dithering is specified when using ordinary
inks.
- DyeSub
-
This does colour correction suitable for printing photographs on
Dye Sublimation paper; the colour correction is done by a lookup table
which matches the Alps Windows drivers. In addition, the -gamma
option may be used to give a gamma factor which is first applied
directly to the CMY values of the image; use this to brighten photos.
(Gamma values greater than 1.0 or between 0 and -1.0 will brighten;
the default is -0.9, which happens to give good results with my
digital camera.)
-colourscolour-spec
This option specifies which components of the image are printed,
and what colours are used to print them.
In monochrome modes, there is only one component, called
K, and
in colour modes there are four, called
K,
C,
M,
Y,
corresponding to the black, cyan, magenta and yellow components of the
output images. These components are generated according to the colour
mode and colour correction options; however, they need not all be
printed. The
colour-spec is a comma-separated list of components
to be printed. For example,
-colours c,y will print only the
cyan and yellow planes of the image.
These components are always printed in the order C,M,Y,K, except when
using dye sublimation inks, in which case they are printed in the
order Y,M,C (there is no K).
If no CMYK colours are to be printed, give
- or
none as
the
colour-spec.
NOTE: the following functionality is available but not
recommended (use the -spotcolours option instead).
Each component may be optionally followed by
=colour, where colour is a cassette supported by the
printer. This causes the given colour to be printed for the component.
For example, -colours c=MetallicSilver,y=MetallicGold will
print an image in silver and gold, the silver parts being represented
by cyan in the input, and the gold parts by yellow. Colours may be
given with full names or with abbreviations. The currently supported
list of colours is given under the -spotcolours option; however,
note that the foil colours require special processing that will not
happen if they are used here.
-datamodemode
This was the name of the
-tranfermode option (q.v.) in versions 1.2 and
earlier. It remains supported for backwards compatibility.
-ditherdithering-mode
This option specifies what dithering should be applied to the input.
The possible modes are:
- None
-
The default for non-dyesub: no dithering is done, and the output pixels are
calculated in CMYK and then rounded to on or off. Use this mode if the
dithering is to be done by another program such as ghostscript.
- FloydSteinberg
-
(also fs for short) uses a standard Floyd-Steinberg error
diffusion algorithm. In principle, this is not a good technique for
normal MicroDry printing technology; however, it can give good results in
some circumstances.
This is the default for dye sublimation printing.
- Halftone
-
(also ht for short) uses a clustered dot ordered dither with
customized halftone screen angles, and a line screen. This is the
dithering recommended for general use. N.B. The default is no
dithering, except in dye sublimation mode.
- CoarseHalftone
-
(also cht for short) is the same, but uses a coarser, dot rather
than line, screen, giving an impression more like normal print.
- Square
-
This is a somewhat experimental technique that is only suitable for
use in the RasterColour data mode. Not recommended; see the technical
section for further information.
-draft
This option sets printing with the re-usable EconoBlack ribbon
(MD-5000 and later models only). It is equivalent to
-monochrome
-transfermode EconoBlack.
-econoblack
A synonym for
-draft.
-firstpass
This is a specialist option. It tells the driver that it is only
handling the first of several passes, and that on exit the printer
should be left in data transfer mode and the paper backfed to top of
form.
-forcecurlcorrection
This option forces a paper curl correction pass even in overlay mode.
-glossy
This option tells the printer to put the glossy finish overcoat on
the image. This uses the printer's built-in facility for this: the
glossy finish will be applied to the smallest rectangle bounding
the printed area. Finer control can be achieved by using Finish
as a spot colour. This option is set by default in dye sublimation
printing; it can be cancelled with the
-noglossy option.
-halftone
This is a compatibility option, equivalent to
-dither Halftone.
-informatinput_type
This option specifies how to treat the input. The possible values are
- Colour
-
The default mode: the input is a standard colour image, and (unless
prevented by other options) undergoes colour correction and possibly
dithering to generate four colour output.
- Monochrome
-
The input is converted to a grey file, gamma correction is applied and
possibly dithering, and then all selected output colours are printed
at the resulting level. Note that this mode should usually only be
used if just one output colour is being printed: if you use this
option on its own, the result will be an image printed four times
over, in each colour! This mode is automatically set by appropriate
user-level options such as -black.
- Diag
-
The input is in a special diagnostic format which codes the value of a
four colour pixel into an RGB pixel. This format is described in the
technical section (***).
-gammag
This option sets the initial gamma correction that is applied to input
data. At present, in monochrome modes this is applied directly to the
darkness k as k -> k**g; in colour modes, it is applied to the CMY
components by c -> c**g. The default value depends on the type of printing.
-inresolutionres
This integer valued option sets the resolution of the input file if it
is different from the printing resolution. Currently this is only
supported for 600 dpi input and 1200 dpi output.
-keepblack
If this option is given, pure black in the input will be printed as
pure black in the output, overriding the normal colour corrected
value. This option is appropriate for mixes of black text and
images. However, for images without text, it is probably better not to
give this option; without it, the solid blacks will blend better with
the surrounding colours.
-lastpass
This is a specialist option. It is like
-midpass, except that
no further pass follows, so that curl correction should be performed,
the paper ejected, and the printer reset as normal.
-lfadjustadjustment
This option specifies the line feed adjustment, changing the amount by
which the printhead advances between passes. If thin white stripes
appear between bands, a negative lfadj can be used to remove
them. May be useful with very heavy paper or very light paper;
the neutral setting seems correct for normal paper on my printer,
but reports vary.
adjustment is in units of 1/9th of a (600dpi) pixel, and has
possible values from -128 to +127.
-mediamediatype
This option specifies the printing media type. It affects several
other options. For completeness, we list here all possible media
types, though some have never been available on the printers so far
sold.
- PlainPaper
-
The default medium, meaning standard photocopy paper.
- FinePlainPaper
-
This is not actually a different medium; rather it is plain paper, but
everything is printed twice, giving a richer colour. The term "Fine"
is historical Alps; it's misleading, since this is intended for paper
that is rougher than usual and so needs double printing.
- LaserPaper
-
This appears to be the same as PlainPaper, but smoother, which may
affect some firmware fine-tuning of the printing.
- DyeSubPaper
-
Dye sublimation paper. Setting this medium implies the use of the dye
sublimation ink cartridges. Currently, no other inks may be used (so
no spot colours), although there seems no reason in principle why the
other inks should not be usable as overcolours.
- DyeSubLabel
-
This variant on dye sublimation paper is probably a product (sold only
in Japan) for id-cards and the like.
- VPhotoFilm
-
This is a plastic film for variable-dots printing. If this medium is
selected, ppmtomd will do variable-dots printing. (VPhoto printing on
plain paper or with VPhoto primer is not yet supported.)
- VPhotoCard
-
Postcard sized VPhoto film, I think. This also implies variable-dots
printing.
- OHP
-
Overhead transparencies (normal ones, not the special ink ones).
- FineOHP
-
Overhead transparencies with double printing.
- Cardboard
-
It is not entirely clear what this is for; it is probably for business
cards (card printing sheets are sold in Japan for the MD series).
- PostCard
-
This is a heavy paper or light card sold in Japan for printing
postcards.
- IronSheet
-
This is sheets for iron-on transfers.
- SpecialIron
-
This is for iron-on sheets using the special OHP inks; not usable.
- BackPrint
-
Backprint film is used for mugs and the like; it is not easily
available outside Japan, and is to be withdrawn in September 2004.
With this medium, the image is automatically mirrored left-to-right.
- FineBackPrint
-
Backprint film with double printing.
- GlossyPaper
-
also sold as photo-realistic paper is a very smooth paper intended for
1200dpi printing with the earlier (pre-MD5000) printers.
- GlossyLabel
-
This variant on photo-realistic paper is probably a product (sold only
in Japan) for id-cards and the like.
- SpecialOHP
-
This medium is not usable with modern MD printers. Alps originally
marketed (in Japan only) a set of inks specially designed for
transparencies. This medium indicates transparencies to be printed
with the special inks. The transparencies and inks work only with the
MD-2000 (and presumably also the Printiva 600). The inks were
withdrawn in 2000.
- FineSpecialOHP
-
is to SpecialOHP as FinePlainPaper is to PlainPaper; it is not usable.
- LabecaSheet
-
This medium was sold in Japan only, and is now withdrawn. It appears to
be labels for videotapes etc.
- ThermalPaper
-
This is thermal paper that will be directly activated by the print
head - i.e. no ribbon is used. It is not known whether this is safe to
do on the retail MD series; certainly no such paper is sold by Alps.
- CDMaster
-
Another medium not available on the current printers. It appears to
be for printing stick-on labels for CDs - or possibly even directly on
to CDs.
-midpass
This is a specialist option. It tells the driver that the printer has
already been set up with appropriate values, and left in data transfer
mode, so the driver should simply print the specified components.
Unless the
-lastpass option is also given, the printer will be
left in data transfer mode.
-modelmodelname
This option tells the driver which model of printer it is driving.
Possible values are: Printiva-600 (the Citizen Printiva 600C),
Printiva-600U (the same, upgraded to recognize metallic silver),
Printiva-700, Printiva-1700 (later Citizen models),
MD-2000, MD-2010, MD-4000, MD-2300, MD-1000, MD-1300, MD-1500,
MD-5000, MD-5500 (Alps models),
DP-5000 (Oki models).
The default is DP-5000 (can be changed at compile time) for
ppmtomd,
or Printiva-600U if called as
ppmtocpva (for compatibility). The main
difference is between models before the MD-5000, and the 5000 onwards
models; however, the driver tries to ensure that unsupported commands
are not issued to the printer.
-monochrome
This is a compatability option, and is equivalent to
-informat Monochrome.
-nocurlcorrection
This option suppresses the curl correction that the printer normally
performs on the last print pass. Note that the printer only performs
curl correction on paper media, and that curl correction is
automatically disabled in overlay mode.
-nopack
This is a debugging option only; it disables the use of compression in
the output.
-noreset
This is a specialist option. Normally, the driver will issue a printer
reset at the end of processing; this option prevents it.
-outformatoutput_format
This option specifies what form of output the program generates.
The values are:
- RGL
-
The default: output for driving the printer.
- packetRGL
-
Output encapsulated in the packetized format used for bidirectional
drivers. Warning: this output must not be sent directly to the
printer; it must be handled by a suitable spooler.
- PPM
-
The output is a PPM file with each pixel being cyan, magenta, yellow,
black or white as it would appear on the printer.
- Diag
-
The output is a PPM file in a diagnostic format which codes a CMYK
pixel into an RGB pixel.
- ColourDiag
-
The output is the PPM file resulting from applying the colour
correction routines to the input, but without any other processing.
-overlay
If this option is given, at the end of printing the paper will
be returned to top of form so that further data can be overlaid
on the same page.
(Technical note: the printer will be left in the idle mode.)
-pageC -pageM -pageY -pageK
These options are deprecated compatibility options. They specify which
components should be printed; use the
-colours option instead.
-pagelengthlength
This option sets the length of the page, from top printing position to
bottom printing position.
length may be given in the usual units
of measurement; if no unit is given, a unit of 1/600 inch is assumed
(regardless of the resolution setting). This option is usually set
automatically from the paper size.
-pagewidthwidth
This option sets the printing width of the page.
width may be
given in the usual units of measurement; if no unit is given, a unit
of 1/600 inch is assumed (regardless of the resolution setting). This
option is usually set automatically from the paper size.
-papersizesize
This option sets the size of the paper being used. Possible values
are Custom (the length and width should be given by options),
Executive, Letter, Legal, A4, B5, PostCard, DyeSubLabel. For the
exact dimensions of these sizes, see the note *** in the technical
section. NOTE: the default size is explicitly set to A4 by the driver,
although the printers' built-in default varies with country.
-phadjustadjustment
This option varies the intensity of the print head drive signal,
making the image lighter or darker than normal.
adjustment may
take values between -50 and +50; negative values make the image
darker. It is not known whether this option may increase wear on the heads.
-ppmout
This is a compatibility option, equivalent to
-outformat PPM.
-primer
This option lays a coat of VPhoto Primer over the whole area of the
image before printing. It should be used together with
-printmode
VPhoto. (To be precise, this option is equivalent to setting the
first unused undercolour component to Primer=always.)
-printmodemode
This option is used to print with VPhoto (variable dot, misleadingly
called 2400dpi) printing on plain paper - or standard printing on
VPhoto paper, should it be desired. It is available only with the 5000
series printers. The possible values of
mode are as follows:
Default - the mode is determined by the media, being DyeSub printing
on DyeSub media, VPhoto printing on VPhoto media, and standard
printing on all other media; Standard - 1 bit per pixel standard
printing; VPhoto - 4 bits per pixel variable dot printing; DyeSub - 4
bits per pixel printing with dye sublimation inks. (The last option has
no known use, since dye sub printing only works on dye sub media.)
Note that this option applies only to the CMYK components;
undercolours and spot colours are always printed in Standard mode,
whatever the media.
-resolutionres
This option sets the printing resolution.
res is an integer,
with values 600 (default) for 600x600 dpi, 300 for 300x300 dpi,
or 1200 for 1200x600 dpi.
-satgammasg
This option is not used in version 1.2.
-solidblack
This is a compatibility option, equivalent to
-keepblack.
-spotcolourscolourspecs
This option gives the spot colours to be printed after the CMYK
colours. Up to four spot colours may be given.
colourspecs is a
comma-separated list of colour specification, each of the form
n=col=inspec.
n is an integer between 1 and 4; the spot colours are printed in
order.
col is the ribbon colour for this component: possible values
(abbreviations) are Black (k), Cyan (c), Magenta (m), Yellow (y),
MetallicGold (mg), MetallicMagenta (mm), MetallicCyan (mc),
MetallicSilver (ms), White (w), GoldFoil (gf), SilverFoil (sf), Primer
(p), Finish (f), Overcoat (oc). Note that the Foil ribbons also
require the CMYK ribbons to be installed, and that the Finish and
Overcoat ribbons will normally be used via other options. (The Primer
ribbon is of course normally used as an undercolour rather than a spot
colour).
For use in complex overlays, four pseudo-colours are also possible
values. NullSpot (ns) and NullFoil (nf) cause nothing to be printed,
but otherwise behave like non-foil and foil spots: NullSpot blanks out
anything underneath, and NullFoil causes a CMYK undercoat to be
printed. The colours RawGoldFoil (rgf) and RawSilverFoil (rsf) print
the foil cartridges without an undercoat, assuming this has already
been done in a previous overlay.
inspec specifies how the spot colour is given in the input file.
The following values are possible:
c (respectively m,y,kP means that the spot colour is given
by the C (respectively M,Y,K) value
of the input. NOTE: for this calculation, the RGB input is converted
to CMYK with full black generation and undercolour removal, regardless
of any options affecting colour correction for the normal inks.
R-range:G-range:B-range specifies a
range of RGB colours in the input that give the spot colour. Each
range is of the form m[-n] where m and n
are integers from 0 to 255 expressed in decimal. Hexadecimal values
may be given by prefixing them with 0x, but octal values are not
recognized. The spot colour is printed if each of the RGB components
lies within the specified ranges.
notwhite or n means that the spot colour is printed if the
input pixel is not white (useful with the glossy finish ribbon).
always or a means that the spot colour is printed over the
entire image. (Useful for glossy finish or undercoats.)
See also the -spotfile for specifying the spot colours.
Note that no colour correction or halftoning is applied to spot
colours; they are either on or off. Note also that spot colours
are printed in addition to CMYK colours; if no CMYK colours are
needed, use the -colours none option.
For pixels where a solid spot colour such as the Metallics is printed,
the CMYK colours are not printed. For the Foil colours, an undercoat
of CMYK is printed.
NOTE: The driver will not handle more than seven colours
(including Glossy Finish if requested) in total. If you are using a
5000 series printer, load the required seven cartridges into the
printer. If you are using a pre-5000 series printer, then if
(a) you are using four or fewer colours, then load those cartridges, or
(b) if you are using more than four colours, load the CMYK cartridges;
then when the printer flashes its error light, open the printer,
remove the cartridges in the holders and replace them with the
remaining spot cartridges (I advise leaving the empty holder free).
If you need to handle more than seven colours, you must use the
-overlay option to print in several passes.
-spotfilefile
This option specifies a file containing the input data for the spot
colours and under colours, instead of the main input file. This file
must have the same dimensions and format as the main input file.
-transfermodemode
This option specifies how the different colours are sent to the
printer. Generally this option need not be given, as the driver will
choose appropriate modes depending on other options; indeed, it should
not be given by the user unless they have a full understanding of the
internals of both the printer and the driver. For a full description
of modes, see the note (***) in the technical section of this man
page. In versions 1.2 and earlier, this option was called
-datamode.
The possible values for the option are:
- Colour
-
The default mode, in which the four colours are sent a page at a time,
in the order cyan, magenta, yellow, black.
- Black
-
The mode for monochrome data, printing in black only.
- EconoBlack
-
Like Black, but uses the re-usable economy black ribbon. Available
only with the 5000 and later printers.
- Cassette
-
This mode is like Colour, but the colours black, cyan, magenta, yellow
are instead printed with whatever cassettes are in holders 1, 2, 3, 4
respectively. In this mode, the printing order is 1, 2, 3, 4. ***
Available only on the pre-5000 models. See the technical section for
caveats. (***)
- RasterColour
-
In this mode, each line of the image is sent in all four colours, then
the next line, and so on. The printer prints one band in the four
colours, then the next band, and so on. This mode is required for the
multi-colour YMC ribbon available for the pre-5000 models; its use in any
other case is not advised (see technical section ***). Available on
the pre-5000 models only.
- RasterCassette
-
This is the Cassette analogue of the RasterColour mode: data is
transmitted a line at a time, and the colours black, cyan, magenta,
yellow are interpreted as the cassettes in holders 1, 2, 3, 4. Use of
this mode is not advised in any case. Available on pre-5000 models
only.
- NColour
-
This mode is an extension of Colour mode allowing more than four
components. Available on the 5000 models only. (Previous versions used
the confusing term MultiColour, which is accepted for backwards
compatibility.)
-undercolourscolourspecs
This option is the same as
-spotcolours, except that the
colours are printed before the CMYK colours, and have no effect on
what other colours are printed. The main use is with white ink to
undercoat on dark paper. (Note that if an RGB
inspec is used
to specify an undercolour, the given colour is also printed as normal
on top of the undercoat. This is probably not the intended effect! If
you wish to do special effects with undercolours, you should use an
overlay or spotfile.) See also the
-spotfile option.
-usemulticolourribbon
This option is available on the pre-5000 series printers, and
instructs the driver that the CMY multi-colour ribbon is to be
used. This will result in the CMYK colours being printed in two
passes instead of four: the first pass will be CMY, the second K.
-version
This option prints the version number and exits.
-xshiftxoffset
This option shifts the image in the x-direction.
xoffset may be
given in the usual units of measurement; if no unit is given, a unit
of 1/600 inch is assumed (regardless of the resolution setting).
See also
-autoshift. A positive offset shifts the image right.
-yshiftyoffset
This option shifts the image in the y-direction.
xoffset may be
given in the usual units of measurement; if no unit is given, a unit
of 1/600 inch is assumed (regardless of the resolution setting).
See also
-autoshift. A positive offset shifts the image down.
USAGE NOTES
To print a image from a PPM file with halftoning for photos, it
suffices to do
ppmtomd -dither ht file >/dev/printer
assuming that the printer is on /dev/printer.
Suppose that text.ps is a PostScript file (possibly containing several
pages). To print it in black only on A4 paper, the following
combination of GhostScript and pptomd can be used:
gs -q -dNOPAUSE -dBATCH -sDEVICE=pgmraw -r600
-sOutputFile='|ppmtomd -autoshift
-black >/dev/printer'
page.ps
To print at the highest resolution, do:
gs -q -dNOPAUSE -dBATCH -sDEVICE=pgmraw -r1200x600
-sOutputFile='|ppmtomd -autoshift -resolution 1200
-inresolution 1200
-black >/dev/printer'
page.ps
Note that using the pbmraw format for GhostScript is not recommended.
Many versions of GhostScript have bugs in this format, and there is
no efficiency saving, since ppmtomd will convert its input to
PPM.
To print a photograph in an image file photo.ppm, load the dye
sublimation inks and paper and do
ppmtomd -media DyeSubPaper photo.ppm >/dev/printer
To print a photo in the variable dots mode on VPhoto film, with glossy
finish, do
ppmtomd -media VPhotoFilm -glossy -dither ht photo.ppm >/dev/printer
To print the same on plain paper:
ppmtomd -printmode VPhoto -glossy -dither ht photo.ppm >/dev/printer
ACKNOWLEDGMENTS
The writing of this driver is greatly assisted by the manufacturers.
Citizen originally supplied me with the command language spec for the
Printiva printers; Alps supplied me with the spec for their models;
and Oki Systems (UK) supplied me with a DP-5000 printer for testing.
TECHNICAL NOTES
This section is not yet written.