mp(1) User Commands mp(1)
mp - text to PDL (Page Description Language) pretty print filter
mp [-A4] [-C] [-D target_printer_name] [-F] [-L localename] [-P tar-
get_spool_printer] [-PS] [-US] [-a] [-c chars] [-d] [-e] [-ff] [-fp]
[-l] [-ll] [-m] [-M] [-n] [-o] [-p prologue] [-s subject] [-tm] [-ts]
[-u config_file_path] [-v] [-w words] [-z point_size] [-?] [file-
The mp program, when called without the -D or -P option, reads each
filename in sequence and generates a prettified version of the contents
in PostScript format, sent to standard output. If no filename argument
is provided, mp reads the standard input. If the standard input is a
terminal, input is terminated by an EOF signal, usually Control-d.
The -D and -P options require the target printer name as an argument
and produce the Page Description Language (PDL) of the target printer.
The -D option causes the PDL to output to stdout and the -P option
causes the PDL to be directly spooled to the printer. In the absence of
these options, mp will product default PostScript output.
The mp program accepts international text files of various Solaris
locales and produces output which is proper for the specified locale.
The output will also contain proper text layout. For instance, the out-
put will contain bidirectional text rendering, and also shaping, since
the complex text layout (CTL) is supported in mp.
Mail items, news articles, ordinary ASCII files, complete mail folders,
and digests are all acceptable input formats for mp. The output format
includes grayscale lozenges, or the outline of the same dimensions as
the lozenges, containing banner information at the top and bottom of
The following options are supported:
-a Formats the file as a news article. The top
banner contains the text: "Article from news-
group", where newsgroup is the first news group
found on the "Newsgroups:" line.
-A4 Uses A4 paper size (8.26 x 11.69 inches).
-c chars The maximum number of characters to extract
from the gecos field of the user's /etc/passwd
entry. The default is 18.
-C Instead of using "\nFrom" to denote the start
of new mail messages, mp will look for (and
use) the value of the Content-Length: mail
header. If the Content-Length doesn't take you
to the next "\nFrom", then it is wrong, and mp
falls back to looking for the next "\nFrom" in
the mail folder.
-d Formats the file as a digest.
-D target_printer_name Produces the PDL for the target printer.
Requires X Print Server connection. tar-
get_printer_name can be either
printer_name@machine[:display_number] or just
printer_name. In the first form, mp tries to
connect to the X Print Server display
machine[:display_number] with the target
printer as printer_name.
-e Assumes the ELM mail frontend intermediate file
format. Used when printing messages from within
ELM (using the "p" command), especially for
printing tagged messages. This option must be
specified in your ELM option setup.
-ff Formats the file for use with a Filofax per-
-fp Formats the file for use with a Franklin Plan-
ner personal organizer.
-F Instead of printing who the mail article is
for, the top header will contain who the mail
article is from. A useful option for people
with their own personal printer.
-l Formats output in landscape mode. Two pages of
text will be printed per sheet of paper.
-ll Formats output in landscape mode. One page of
text will be printed per sheet of paper. This
is useful for printing files with longer than
-L localename Provides the locale of the file to be printed.
If this command line option is not present,
then mp looks for the MP_LANG environment vari-
able. If that is not present, the LANG environ-
ment variable is used. If none of these options
are present, mp tries to determine the locale
it is running in. If it cannot determine the
locale, mp assumes it is running in the C
-m Formats the file as a mail folder, printing
-M Forces mp to use the mp.conf file for printing
output even if a prolog.ps file exists for that
locale. Useful when printing to non-native
-n Turns off the gray bars and associated informa-
tion from header and footer. Used to get output
similar to output of 'lp filename'.
-o Formats the file as an ordinary ASCII file.
-p prologue Employs the file prologue as the Post-
Script/Xprt prologue file, overriding any pre-
viously defined file names. This file specifies
the format of the print output. For PostScript
output, the prologue file will have a .ps
extension. For Xprt clients (when the -D option
is specified), this file will have an .xpr
extension. These files are defined in the SUP-
PLIED PROLOGUE FILES section below.
-P target_spool_printer Spools the PDL to the target printer. No output
is sent to stdout. Requires X Print Server con-
nection. target_spool_printer can be either
printer_name@machine[:display_number] or just
printer_name. In the first form, mp tries to
connect to the display machine[:display_number]
with the target printer as printer_name.
-PS If the mail or digest message just has Post-
Script as the text of the message, this is nor-
mally just passed straight through. Specifying
this option causes PostScript to be printed as
-s subject Uses subject as the new subject for the print-
out. If you are printing ordinary ASCII files
that have been specified on the command line,
the subject will default to the name of each of
-tm Formats the file for use with the Time Manager
-ts Formats the file for use with the Time/System
International personal organizer.
-US Uses US paper size (8.5 x 11 inches). This is
the default paper size.
-u config_file_path Specifies an alternate configuration file to
the default file
absolute file path name must be used.
-v Prints the version number of this release of
-w words The maximum number of words to extract from the
gecos field of the user's /etc/passwd entry.
The default is 3.
-z point_size Prints the output text in the point size speci-
fied by point_size. The internal default is 12
points for portrait printing and 9 points for
-? Prints the usage line for mp. Notice that the ?
character must be escaped if using csh(1).
The following operand is supported:
filename The name of the file to be read.
The mp print filter can be used to print files in any locale that is
installed in the user's machine.
Example 1: Printing Japanese text files
Japanese text files encoded in the euc codeset can be printed in any
non-Japanese PostScript printers by entering:
example% mp -L ja_JP.eucJP -M ja_JP_eucJP.txt | lp
Here, the -L option specifies the locale and the -M option invokes the
mp.conf configuration file instead of the default prolog.ps file. In
the case of ja_JP.eucJP, both /usr/lib/lp/locale/ja_JP.eucJP/mp/mp.conf
and /usr/openwin/lib/locale/ja_JP.eucJP/print/prolog.ps files are
present. Therefore, the -M option is used to override the precedence of
the default prolog.ps file. Using mp.conf as the configuration file
makes it possible to print to any PostScript printer.
The encoding of the locale specifed by the -L option and that of the
text file to be printed have to be the same. In the above Japanese file
example, if the text file is encoded in Shift-JIS, use the following
command, since the locale ja_JP.PCK is encoded in SJIS:
example% mp -L ja_JP.PCK -M SJIS.txt | lp
Example 2: Running in Xprt mode
If an X Print Server daemon (/usr/openwin/bin/Xprt) is running in any
system in the network, mp can be invoked as follows, enabling it to
output in any Page Description Language supported by Xprt (the default
value of display_number is 2100):
example% setenv XPSERVERLIST "machine1[:display_number1] \
example% setenv XPDISPLAY machine_name[:display_number]
Using the options -D printer_name[@machine[:display_number]] or -P
printer_name[@machine[:display_number]] gives the greatest precedence
and mp tries to connect to Xprt running on machine[:display_number]
with printer_name. When not specified, the default display_number value
is 2100. If this fails, printer_name is tried with an Xprt display
obtained from the following logic. The following is also valid if you
enter only -D printer_name or -P printer_name on the command line.
mp checks XPSERVERLIST for a list of space-separated Xprt servers until
it finds one which supports the printer_name argument. If none is
found, mp checks the XPDISPLAY environment variable, which is of the
form machine[:display_number]. If that is also not set or not valid, mp
tries to connect to the default display, :2100. If that is also not
successful, mp exits with an error message.
To pipe the data to the target printer when XPSERVERLIST or XPDISPLAY
is set, enter:
example% mp -D printer_name -L ja_JP.eucJP \
-M ja_JP_eucJP.txt | lp -d printer_name
For direct spooling when working in Xprt client mode, use the -P
example% mp -P printer_name -L ja_JP.eucJP -M ja_JP_eucJP.txt
Example 3: Turning off the header and footer
Use the -n option to turn off the mp header and footer:
example% mp -n mytext.txt | lp
Example 4: Printing long text lines
Use the -ll option to print text files with longer than 80 column lines
in landscape mode:
example% mp -ll mytext.txt | lp
Example 5: Specifying print point size
Use the -z option to specify any point size, in this case, 20 points:
example% mp -z 20 mytext.txt | lp
XPSERVERLIST If the arguments to -D or -P is of the form
printer_name@machine[:display_number], XPSERVERLIST is
used only if the machine[:display_number] does not sup-
XPSERVERLIST contains a space-separated list of Xprt
displays to which to connect the printer. mp goes
through the list sequentially to get an Xprt server
that can support the given printer, exiting at the
first instance where mp finds a display to which to
connect. If this is not set, the environment variable
XPDISPLAY is used instead.
XPDISPLAY If the -D or -P option is specified in the command line
with just the printer_name argument and no XPSERVERLIST
variable is set in the environment, the XPDISPLAY
variable is used to determine the machine[:display_num-
ber] running the X Print Server to connect the client.
If XPDISPLAY is also not set, the print server startup
script starts an Xprt server at port 2100 of the
machine in which the client is running. The script
terminates the print server once the job is over. If
XPDISPLAY is set, the mp client tries to contact the
print server running at XPDISPLAY. In this case, no
attempt is made to start the server if it is not run-
MP_PROLOGUE Used to determine the directory where the page format-
ting files (.xpr or .ps) are kept. These files deter-
mine page decorations, number of logical pages per
physical page, landscape or portrait format, and so
forth. In the absence of MP_PROLOGUE, the default loca-
tion of the directory is /usr/lib/lp/locale/C/mp.
MP_LANG If neither of the -D or -P options is specified, a pro-
LANG logue file is prepended to the output to be printed.
The prologue file is called /usr/open-
localename is the value of the MP_LANG or LANG environ-
ment variable, if present. If both variables are
present, the file /usr/openwin/lib/locale/locale-
name/print/prolog.ps is given preference due to back-
ward compatibility reasons. If either of these files
are not present, and the -D option is not specified, a
configuration file of the locale called
/usr/lib/lp/locale/localename/mp/mp.conf is used as the
source of the configuration information that substi-
tutes the prologue information for printing. The pres-
ence of prolog.ps disables mp.conf for backward compat-
The following exit values are returned:
0 Successful completion.
1 An error occurred.
SUPPLIED PROLOGUE FILES
The following prologue files are provided. Files with .ps extensions
are for the PostScript output. Files with .xpr extensions are for the
Print Server client. .xpr files are created for 300dpi printers and
will scale to other resolution values.
mp.common.ps Common prologue file for all other .ps files in
mp.pro.ps Used by default.
mp.pro.ff.ps Used if the -ff option is in effect.
mp.pro.fp.ps Used if the -fp option is in effect.
mp.pro.tm.ps Used if the -tm option is in effect.
mp.pro.ts.ps Used if the -ts option is in effect.
mp.pro.alt.ps An alternative modification of the default pro-
mp.pro.alt.xpr logue file which outputs the page number in the
right corner of the bottom banner.
mp.pro.l.ps Prologue file used for landscape outputs.
mp.pro.ll.ps Prologue file used for landscape outputs, when
mp.pro.ll.xpr printing files with longer than normal lines.
mp.pro.altl.ps Alternate prologue file used for landscape out-
Initialization file for csh(1).
Initialization file for mail(1).
Default configuration file.
Common prologue file for all other .ps files in this directory. Not
for .xpr files.
Default prologue files for mail printing.
Default prologue files for landscape format.
Default prologue files for landscape format with one column per
page. Useful when printing files with long lines.
Alternate prologue files for landscape format.
Alternative "default" prologue files. Insert page numbers in the
bottom right corner of each page.
Default prologue files for Filofax format.
Default prologue files for Franklin Planner format.
Default prologue files for Time Manager format.
Default prologue files for Time/System International format.
Default locale-specific prologued file as an alternative to the
mp.conf file. See ENVIRONMENT VARIABLES for more detail on the
The structure and format for mp.conf and .xpr files are documented in
the International Language Environments Guide. Refer to this document
if you need to use alternate fonts, including Printer Resident Fonts,
or if you want to make changes to output format.
See attributes(5) for descriptions of the following attributes:
tab() allbox; cw(2.750000i)| cw(2.750000i) lw(2.750000i)|
lw(2.750000i). ATTRIBUTE TYPEATTRIBUTE VALUE AvailabilitySUNWmp
csh(1), mail(1), mailtool(1), attributes(5)
International Language Environments Guide
SunOS 5.10 5 Oct 2003 mp(1)