国际语言环境指南

第 7 章 具有 mp 的打印过滤器增强模式

本章介绍 mp 实用程序的打印增强功能。本章讨论下列主题:

用于 UTF-8 的打印

可以打印多种输入文件格式(包括用 UTF-8 编写的纯文本格式)的增强 mp 打印过滤器可以在当前 Solaris 环境中获得。此打印过滤器使用可在 Solaris 系统中获得的 TrueType 和 Type 1 可缩放字体和 X11 位图字体。此过滤器还可以使用打印机常驻字体并可用作 X 打印服务器的客户机。

此实用程序的输出是标准的 PostScriptTM,可以发送给任何 PostScript 打印机。当配置为 X 打印服务器的客户机时,mp 实用程序还可以输出任何页面描述语言,mp 受打印服务器支持。

要使用此实用程序,键入下面的命令:

system% mp filename | lp

由于 mp 接受 stdin 流,因此还可以将此实用程序用作过滤器。

system% cat filename | mp | lp

可将该实用程序设置为一个行式打印机的打印过滤器。例如,下列命令通知打印机服务 LP,打印机 lp1 只接受 mp 格式文件。此命令还将打印机 lp1 安装在端口 /dev/ttya 上。有关更多信息,请参见 lpadmin(1M) 手册页。

system# lpadmin -p lp1 -v /dev/ttya -I MP
system# accept lp1
system# enable lp1

使用 lpfilter(1M),可以按以下方式为过滤器添加此实用程序:

system# lpfilter -f lp1 -F pathname 

此命令通知 LP,可通过名为 pathname 的过滤器描述文件使用转换器(此处为 mp)。pathname 包含以下信息:

Input types: simple 
Output types: MP
Command: /usr/bin/mp

使用 /usr/bin/mp 过滤器将缺省类型文件的输入转换为 PostScript 输出。

要打印 UTF-8 文本文件,请使用下列命令:

system% lp -T MP UTF-8-file

有关更多信息,请参阅 mp(1) 手册页。

mp 打印过滤器增强模式概述

mp 打印过滤器在当前 Solaris 发行版中得到增强。最新版的 mp 可以用三种不同的模式进行内部处理,以便在一种语言环境中产生输出文件来打印国际文本。可用的模式包括:

下面部分将描述何时使用特定的打印方法以及 mp 针对这些打印方法所使用的配置和支持文件。

与特定于语言环境的字体配置文件 mp.conf 一起使用 mp

如果命令行中没有给出 -D-P 选项,则此打印方法为缺省方法,除非 /usr/openwin/lib/locale/$LANG/print/usr/lib/lp/locale/$LANG/mp 目录中存在 prolog.ps 文件。prolog.ps 文件强制 mp 使用文件中的 PostScript 嵌入字体进行打印。即使语言环境中存在 prolog.ps,使用 -M 选项也会忽略 prolog.ps 文件而使用 mp.conf 文件(如果存在)。

此方法使用 /usr/lib/lp/locale/$LANG/mp/mp.conf 字体配置文件。您可能不必更改此文件,除非您需要使用替换字体进行打印。此文件可使用 TrueType、Type 1 或 pcf 字体进行配置。

与特定于语言环境的 PostScript Prolog 文件一起使用 mp

/usr/lib/lp/locale/C/ 目录包含对此打印模式通用的 .ps 打印页面布局文件。添加和定制 prolog 文件中提供了如何定制这些文件的描述。

如果命令行中没有给出 -D-P 选项,并且存在 /usr/openwin/lib/locale/$LANG/print/prolog.ps,则 prolog.ps 文件将被前置到输出中。根据 .ps prolog 页的打印样式,布局文件也被前置到输出中。

此打印方法仅使用 PostScript 字体文件。添加和定制 prolog 文件中描述了 prolog.ps 文件的定制。

mp 用作 Xprt(X 打印服务器)客户机

mp 用作 Xprt 客户机允许 mp 打印连接到网络上受 Xprt print 打印服务支持的任何打印机的输出。作为 Xprt 客户机,mp 支持 PostScript 和许多版本的 PCL。

Xprt 客户机按照下列规则尝试连接到 Xprt 服务器:

使用 mp.conf 配置文件的本地化

配置文件为添加或更改字体项或字体组项提供灵活性。

系统配置缺省文件是 /usr/lib/lp/locale/$LANG/mp/mp.conf,其中 $LANG 是有打印操作的语言环境中的语言环境变量。可以使用 -u config.file path 选项指定个人配置文件。

为了便于兼容,连字或变体字型已被编码为字符,这种形式称为 变形显现形式mp.conf 文件主要用于将一种语言环境中的中间代码点映射为用来打印该代码点的字体编码中的表现形式。

中间代码点可以是宽字符,也可以是可移植布局服务 (PLS) 层的输出。复杂文本布局打印要求中间代码点为 PLS 输出。由 mp 生成的缺省中间代码为 PLS 输出。

当前受支持的字体格式是可移植已编译格式 (PCF)、TrueType 和 Type1 格式。既支持系统常驻 Type1 字体又支持打印机常驻 Type1 字体。请记住下列有关 mp.conf 配置文件的格式和内容的信息:

mp.conf 文件中的不同部分包括:

字体别名

mp.conf 文件的字体别名部分用于定义打印时使用的每种字体的别名。该部分的每一行都具有以下形式:

FontNameAlias 字体别名 字体类型 字体路径 			
字体别名

为字体名称起别名的常用惯例是,指定字体的编码/脚本名称,名称后面跟一个字母,表示该字体是 Roman 字体、粗体、斜体或粗斜体(R、B、I 或 BI)。

例如,由于 /usr/openwin/lib/X11/fonts/75dpi/courR18.pcf.Z 是 iso88591 Roman 字体,因此给它起的别名为 iso88591R。

字体类型

对于 .pcf 字体,其可能的值为 PCF,对于 Adobe Type1 字体,为 Type1;而对于 TrueType 字体,则为 TrueType。在此 mp.config 文件中只能配置此三种字体。

字体路径

字体文件的绝对路径名称。对于 Type1 打印机常驻字体,只指定字体名称,如 Helvetica。

例如,

FontNameAlias   prnHelveticaR   Type1   Helvetica

字体组定义

您可以将同一类型的字体合并为一个字体组。字体组的格式如下:

关键字

FontGroup

字体组名称

字体的组名称。

组类型

字体类型。只为同一类型的字体(PCF、Type1 和 TrueType)创建字体组。

Roman

字体组中的 Roman 字体名称。

粗体

字体组中的粗体字体名称。

斜体

字体组中的斜体字体名称。

粗斜体

字体组中的粗斜体字体名称。

对于创建组,只需要 Roman 字体项。粗体、斜体和粗斜体字体均为可选。例如,邮件或新闻文章的标题可用不同类型的字体来显示。如果仅定义了 Roman 字体,则将使用此字体代替其他字体。

映射部分

mp.conf 文件的映射部分从中间代码范围映射到语言环境中的字体组。本部分中每一行的格式如下所示。

关键字

MapCode2Font。

range_start

0x 开头的 4 字节十六进制值表示要映射到一个或多个字体组的代码范围的开始。

range_end

表示要映射的代码范围的结尾。如果值是 '-',则只有一个中间代码点被映射到目标字体。

一个 Type1、PCF 或 TrueType 字体组,变形显现形式通过它进行打印。

关联部分

mp.conf 文件的关联部分将每种字体与共享对象相关联,此共享对象把中间代码点映射到字体编码中的变形显现形式。本部分中每行的格式如下所示:

关键字

CnvCode2Font

字体别名

为字体定义的别名。

映射函数

获取中间代码并返回字体编码中的变形显现形式,变形显现形式再获取字型索引,从而绘制字型。

具有映射函数的文件路径

包含映射函数的 .so 文件名。您可以使用 dumpcs 中的实用程序来确定 EUC 语言环境的中间代码集。


注意 –

mp (1) 使用的当前 TrueType 引擎只能处理格式 4 和 PlatformID 3 cmap。您只能配置 Microsoft .ttf 文件。另外,要想使 TrueType 字体正常工作,字符映射编码必须是 Unicode 或 Symbol。由于 Solaris 环境中的大多数 .ttf 字体遵循这些限制,因此您可以在 mp.conf 文件内映射 Solaris 软件中的所有 TrueType 字体。


您可以创建一个共享对象,此对象映射字体以与 PCF type1 X 逻辑字体描述 (XLFD) 保持一致。然后,您可以创建一个从中间代码范围映射到 XLFD 指定的编码的共享对象。例如:

-monotype-arial-bold-r-normal-bitmap-10-100-75-75-p-54-iso8859-8

相应的 PCF 字体为:

/usr/openwin/lib/locale/iso_8859_8/X11/fonts/75dpi/ariabd10.pcf.Z

此字体以 ISO 8859-8 进行编码,因此共享对象必须在中间代码和对应的 ISO 8859-8 代码点之间映射。

如果带有 XLFD 的 TrueType 字体:

-monotype-arial-medium-r-normal--0-0-0-0-p-0-iso8859-8

具有对应的字体:

/usr/openwin/lib/locale/iso_8859_8/X11/fonts/TrueType/arial__h.ttf

您应该在中间代码和 Unicode 之间映射,因为前一种 TrueType 字体的 cmap 编码在 Unicode 中。在此 TrueType 字体实例中,假定 en_US.UTF-8 语言环境中与希伯来字符(由 PLS 层产生)相对应的样例中间代码为 0xe50000e9。由于该字体为 Unicode 编码,因此以这样的方式来设计对应的 .so 模块内的函数,即当您传递 0xe50000e9时,输出与 Unicode 中的变形显现形式相对应。此处的实例为 0x000005d9

映射函数的函数原型应为:

unsigned int function(unsigned int inter_code_pt)

以下是可在 mp.conf: 中使用的可选关键字/值对:

PresentationForm        WC/PLSOutput

缺省值为 PLSOutput。如果用户指定 WC,则生成的中间代码点为宽字符。对于 CTL 打印,应使用此缺省值。

如果语言环境为非 CTL 语言环境并且键盘值为 PLSOutput,则该值将被忽略,而且 mp 将生成宽字符代码。

如果语言环境支持 CTL,则您可以使用下表中列出的可选关键字/值对。这些变量可以采用该表中间列中给出的任何可能值。

表 7–1 可选关键字/值对

可选关键字 

可选值 

Default 

Orientation

ORIENTATION_LTR/

ORIENTATION_RTL/

ORIENTATION_CONTEXTUAL

ORIENTATION_LTR

Numerals

NUMERALS_NOMINAL/

NUMERALS_NATIONAL/

NUMERALS_CONTEXTUAL

NUMERALS_NOMINAL

TextShaping

TEXT_SHAPED/

TEXT_NOMINAL/

TEXT_SHFORM1/

TEXT_SHFORM2/

TEXT_SHFORM3/

TEXT_SHFORM4

TEXT_SHAPED

如何添加打印机驻留的字体

下列过程中的实例阐释了如何将新的 PCF、TrueType 或 Type1 打印机驻留的字体添加到配置文件中。

完成此过程替换当前配置的字体。在前两步骤中,用于显示范围 0x00000021 - 0x0000007f 中字符的 PCF 字体由 TrueType 字体替代。

  1. 在添加新字体前,请查看配置文件中与当前配置字体相对应的各种组件。

    FontNameAlias iso88591R  PCF  /usr/openwin/lib/X11/fonts/75dpi/courR18PCF.Z
    FontNameAlias iso88591B  PCF  /usr/openwin/lib/X11/fonts/75dpi/courB18PCF.Z
    .
    .
    .
    FontGroup       iso88591         PCF       iso88591R iso88591B
    .
    .
    .
    MapCode2Font    0x00000020      0x0000007f      iso88591
    .
    .
    .
    CnvCode2Font iso88591R _xuiso88591 /usr/lib/lp/locale/$LANG/mp/xuiso88591.so
    CnvCode2Font iso88591B _xuiso88591 /usr/lib/lp/locale/$LANG/mp/xuiso88591.so

    例如,可以将 /usr/openwin/lib/locale/ja/X11/fonts/TT/HG-MinchoL.ttf 字体映射到 en_US.UTF-8 语言环境。由于 HG-MinchoL.ttf 是 Unicode TrueType 字体文件,因而可以使用 .so 模块映射函数直接返回传入的 ucs-2 代码点。

    unsigned short _ttfjis0201(unsigned short ucs2) {
                     return(ucs2);
             }
    1. 将此映射保存为 ttfjis0201.c 文件。

    2. 创建共享对象文件。

      cc -G -Kpic -o ttfjis0201.so ttfjis0201.c
  2. 要映射 PCF 文件(如 /usr/openwin/lib/locale/ja/X11/fonts/75dpi/gotmrk20.pcf.Z),请检查下列与 /usr/openwin/lib/locale/ja/X11/fonts/75dpi/fonts.dir 文件中的 XLFD 对应的编码。

    -sun-gothic-medium-r-normal--22-200-75-75-c-100-jisx0201.1976-0
    1. 对于 jisx0201 编码,请准备一个从 ucs-2 映射到 jisx0201 的共享对象。获得用于创建 .so 模块的映射表。对于 Unicode 语言环境,查找映射到 ftp.unicode.org/pub/MAPPINGS/ 目录中 Unicode 的字符集。

    2. 使用以下映射编写一个 xu2jis0201.c 文件:

      unsigned short _xu2jis0201(unsigned short ucs2) {
                               if(ucs2 >= 0x20 && ucs2 <= 0x7d )
                                       return (ucs2);
                               if(ucs2==0x203e)
                                       return (0x7e);
                               if(ucs2 >= 0xff61 && ucs2 <= 0xff9f)
                                       return (ucs2 - 0xff60 + 0xa0);
                              return(0);
                       }
    3. 在创建映射文件时,请将所有 usc-2 包括到 jisx0201 的各种事例中。

      cc  -G -o xu2jis0201.so xu2jis0201.c

如何创建共享对象文件

下列过程中的实例说明如何创建共享对象文件。

  1. 要添加字体,请编辑与 mp.conf 文件中各部分对应的下列实例的行。

    下例说明如何添加 TrueType 字体。.so 路径指向 xu2jis0201.so 文件。

    FontNameAlias   jis0201R TrueType /home/fn/HG-Minchol.ttf
    FontGroup     jis0201 TrueType jis0201R
    MapCode2Font  0x0020 	0x007f  jis0201
    CnvCode2Font   jis0201R 	 _ttfjis0201 <.so path>

    注意 –

    要添加 PCF 字体,请将关键字从 TrueType 更改为 PCF。


  2. 用已更改的 mp.conf 文件调用 mp 命令以打印新字体中的范围 0x0020-0x007f

    也可以用同样的 .so 文件映射其他日文字符范围,例如,可以映射范围 0x0000FF61 0x0000FF9F


    注意 –

    要保持向后兼容,可以使用 /usr/openwin/lib/locale/$LANG/print/prolog.ps 文件在当前语言环境中创建输出。在使用 prolog.ps 文件时,不需要任何配置文件。


您可以在 /usr/lib/lp/locale/en_US.UTF-8/mp 目录中找到样本 mp.conf 文件。

添加和定制 prolog 文件

prolog 文件可以分为两种主要类别:

PostScript 文件定制

PostScript 文件属于下列种类:

依赖于语言环境的 prolog 文件

prolog.ps 文件的用途是设置非通用字体。应用程序使用这些预定义 PostScript 字体名称进行打印。prolog 文件必须为桌面设置日历管理器和 mp 至少定义下面字体名称:

下列实例使用这些字体打印指定的特殊本地字符集:

100 100 moveto
/LC_Times-Roman findfont 24 scale font setfont
(Any text string in your locale) show

Solaris 本地化工具包为日语环境提供了一个样例 prolog.ps 文件。另外,此文件还位于 /usr/openwin/lib/locale/ja/print/ 目录中。

下例说明如何在现有的 prolog.ps 文件中添加或更改复合字体。

%
(Foo-Fine) makecodeset12 
(Base-Font) makeEUCfont
%

例如,您可以定义名为 LC_Base-Font 的复合字体。LC_Base-Font 可能是包含语言环境字符集和 Base-FontFoo-Fine 字体的复合体。添加或更改字体并不需要深入的 PostScript 编程知识。

对实例版本进行研究是创建 prolog.ps 文件的最好方法。在实例 prolog.ps 中,需要编写两个例程:makecodeset12makeEUCfont。例程 makecodeset12 设置本地字体编码信息。此例程可能会因语言环境的不同而不同。例程 makeEUCfont 将基准字体和语言环境字体合并为一个复合字体。prolog 文件的创建者应具有良好的 PostScript 知识,以便编写 makecodeset12makeEUCfont

prolog.ps 文件支持只保持向后兼容性。在为语言环境生成打印输出时,不创建新的 prolog.ps 文件。请换而使用 mp.conf

prolog.ps 文件的路径为

/usr/openwin/lib/locale/$LANG/print/prolog.ps

通用 PostScript prolog 文件

通用 prolog 文件是 mp.common.ps

其他每个页面布局 prolog 文件都需要包含此文件。

mp.common.ps 文件驻留在 /usr/lib/lp/locale/C/mp/ 目录中。此文件包含一个 PostScript 例程,将一个字体从标准编码重新编码为 ISO 8859-1 编码。.reencodeISO 例程从打印布局 prolog 文件中调用以更改字体的编码。通常情况下,此 prolog 文件不需要进行任何定制。如果您创建自己的 prolog 文件,请将环境变量 MP_PROLOGUE 设置为指向包含修改后的 prolog 文件的目录。

打印布局 prolog 文件

打印布局 prolog文件、mp.*.ps文件包含控制用于打印的页面布局的例程。除了为具有用户名、打印日期和页号的打印页提供页眉和页脚外,这些 prolog 文件还可以提供其他信息。例如,prolog 文件可提供有效的打印区域尺寸以及打印所要使用的横向和纵向模式。

打印布局 prolog 文件为:

需要在每个 prolog 文件中定义一组标准函数。当新的打印页启动、某个打印页结束或新的列结束时这些函数即被调用。这些函数的实现定义了打印输出的打印属性。

下列 PostScript 变量在运行时由 mp 二进制程序定义。所有的打印布局文件都可以使用这些变量来打印动态信息,如用户名主题打印时间。从变量获取的此信息通常出现在打印页的页眉或页脚中。

用户

正在运行 mp 的用户的名称,可从系统 passwd 文件中获取。

MailFor

用于保存要打印的文章类型名称的变量。此变量的可能值为:

  • Listing for-当输入为文本文件时

  • Mail for-当输入为邮件文件时

  • Article from-当输入为新闻组文章时

主题

从邮件和新闻标题中获取的主题。可以使用 -s 选项将某个主题强制为邮件和新闻文件以及正常的文本文件。

Timenow

出现在标题和页脚中的打印时间。此信息从 localtime() 函数中获取。

下列函数在打印布局 prolog 文件中实现。所有这些函数都可以使用子函数。

endpage

用法:page_number endpage

当到达打印页的底部时调用。此函数恢复页面的图形上下文并发出 showpage。在某些 prolog 文件中,页眉和页脚信息按逐页模式而非逐列模式显示。您可以实现此函数以调用显示页眉和页脚灰度级菱形的子函数。

newpage

用法:page_number newpage

当某个新页开始时要执行的例程或命令。设置横向打印模式、保存打印图形上下文和转换页坐标是用于这些例程的一些函数。

endcol

用法:page_number col_number endcol

用于显示页眉和页脚信息,移到新打印位置,等等。

要添加新的打印布局 prolog 文件,需要在打印布局 prolog 文件内显式定义下列变量。

NumCols

打印页中的列数。缺省值为 2。

PrintWidth

打印区域的宽度(以英寸为单位)。缺省值为 6。

PrintHeight

打印区域的高度(以英寸为单位)。缺省值为 9。

.xpr 文件

缺省情况下,这些文件位于 /usr/lib/lp/locale/C/mp/.xpr 文件与每个 PostScript prolog 布局文件相对应,但 mp.common.ps. 除外。您可以通过定义 MP_PROLOGUE 环境变量来定义替换的 prolog 目录。

这些文件用作关键字/值对。以 # 开头的行被当做注释。空格分隔不同的标记(除非显式进行说明)。每个 .xpr 文件的三个主要部分由下列关键字对绑定:

某些关键字/值对可用于这三个区域。在下节中介绍每个区域。

STARTCOMMON/ENDCOMMON 关键字

出现在 STARTCOMMON 关键字之后并且在 ENDCOMMON 关键字之前的所有关键字/值对打印页的常规属性进行定义。关键字的不同有效值使用斜线 (/) 字符分隔。

ORIENTATION 0/1

0 表示以纵向模式打印,而 1 表示以横向模式打印。

PAGELENGTH 无符号整数

一个值,用于表示每个逻辑页的行数。

LINELENGTH 无符号整数

表示每行的单列字符数的值。

NUMCOLS 无符号整数

每个物理页的逻辑页数。

HDNGFONTSIZE 无符号整数

标题字体点尺寸(以小数点表示)。

BODYFONTSIZE 无符号整数

正文字体点尺寸(以小数点表示)。

PROLOGDPI 无符号整数

创建当前 .xpr 文件使用的每英寸点数比例。

YTEXTBOUNDARY 无符号整数

此 y 坐标确定了页或逻辑页(列)中文本打印的边界。此边界还可以用于检查文本打印是否发生在预期的区域内。在复杂文本布局和 EUC 打印时需要此边界,这是因为从相应的字体中获取的字符高度信息有可能是错的。

STARTTEXT 无符号整数无符号整数

以小数点表示的 x/y 点,这是物理页的第一个逻辑页中实际文本打印的开始位置。

PAGESTRING 0/1

1 表示需要在标题中的页号前附加一个页字符串。

0 表示只显示页号。

EXTRAHDNGFONT font string 1font string 2 ... font string n

字体字符串是 X 逻辑字体描述。将关键字 EXTRAHDNGFONT 与逗号分隔的字体名称列表分开的标记是引号 " 字符,而不是空格或制表符。当打印标题时,给定的首选项是这些字体,而不是内置字体。通常情况下,EXTRABODYFONT 用于分配在 /usr/openwin/server/etc/XpConfig/C/print/models/<model name>/fonts 目录中配置的打印机常驻字体。

fonts.dir 文件包含打印机常驻字体的 XLFD。

.xpr 文件中,通常指定字体,如下例所示:

 "-monotype-Gill Sans-Regular-r-normal- -*-%d-*-*-p-0-iso8859-2" 

%d(如果存在)被 mp 替换为 .xpr 文件中当前标题字体的点尺寸。x 分辨率和 y 分辨率由 * 指定。平均宽度字段设置为 0 表示选择了可缩放字体(如有可能)。您还可以提供更多的特定字体名称。

EXTRABODYFONT font string 1font string 2 ... font string n

EXTRAHDNGFONT 相同,除了这些字体被用来打印页面正文以外。

XDISPLACEMENT 带符号/无符号整数

提供要应用于此页的 x 坐标位移,以便在 x 方向移动该页的内容。此位移可以是 +ve 或 -ve 值。

YDISPLACEMENT 带符号/无符号整数

与 x 位移相同(除了移动发生在 y 方向)。

当您处理某些具有非标准页边距宽度并且要求在页中移动打印内容时的打印机时,这两个关键字很有用。

STARTPAGE/ENDPAGE 关键字

此部分中的关键字值对由 STARTPAGE ENDPAGE 关键字绑定。此部分包含要应用于物理页的绘图和标题信息。物理页可包含许多逻辑页,但是,包含在这些关键字之间的所有绘图例程仅一次应用于逻辑页。

有效的绘图实体为 LINE ARCXDrawLine()XDrawArc() 函数在这些关键字的值上执行。

此部分内的尺寸被映射在 PROLOGDPI 单元中。角度以度数表示。

LINE x1 y1 x2 y2

x/y 无符号坐标定义连接一条直线的两个点。

ARC x y width height angle1 angle2

x 和 y 均为表示弧线起始点的无符号整数。width 和 height 为表示弧线的宽度和高度的无符号整数。

USERSTRINGPOS x y

无符号坐标表示标题中用户信息的打印位置。

TIMESTRINGPOS x y

无符号坐标表示标题中打印时间的打印位置。

PAGESTRINGPOS x y

无符号坐标表示每个打印页的页字符串的打印位置。

SUBJECTSTRINGPOS x y

无符号坐标表示页中主题的打印位置。

STARTFORCEDPAGE/ENDFORCEDPAGE 部分

-n 选项分配给 mp 时,STARTPAGE/ENDPAGE 部分内的所有装饰都不打印。但是,即使给出 -n 选项,也会打印 STARTFORCEDPAGE/ENDFORCEDPAGE部分内包含的任何内容。

STARTCOLUMN/ENDCOLUMN 部分

所有关键字与STARTPAGE/ENDPAGE 关键字 中描述的相同,除了此部分中的条目可 NUMCOLS 次应用于物理页以外。如果 NUMCOLS 为 3,则物理页的可打印区域将被分为三个部分,并且每页中直线、弧线或标题装饰将出现三次。

STARTFORCEDCOLUMN/ENDFORCEDCOLUMN 部分

-n 选项分配给 mp 时,STARTCOLUMN/ENDCOLUMN 部分内给定的所有装饰都不打印。但是,即使给出 -n 选项,也会打印 STARTFORCEDCOLUMN/ENDFORCEDCOLUMN 部分内包含的任何内容。

创建新的 .xpr 文件

当创建新的 .xpr prolog 文件时,只需指定与缺省值不同的值。

下表列出针对不同关键字的 mp 程序缺省值(如果在 STARTCOMMON/ENDCOMMON 部分的 .xpr 文件中没有指定这些值):

表 7–2 STARTCOMMON/ENDCOMMON 关键字值

关键字 

值 

ORIENTATION

0

PAGELENGTH

60

LINELENGTH

80

YTEXTBOUNDARY

3005

NUMCOLS

01

HDNGFONTSIZE

120

PROLOGDPI

300

STARTTEXT

135 280

PAGESTRING

0

STARTPAGE/ENDPAGESTARTCOLUMN/ENDCOLUMN 绑定的另两个部分不需要缺省值。

要创建不带装饰的页,请使用如下方式:每个物理页有四个逻辑页,打印格式为纵向格式。指定下列部分和值:

在创建不带装饰的页面时,不需要指定下列两个部分:

如果您不在打印页中加入装饰,则不需要这些参数。所有坐标的缺省值都为 300 dpi,除非您没有指定 PROLOGDPI 关键字。如果目标打印机的分辨率不同,程序将调整 .xpr 文件以适应此分辨率。

在创建 .xpr 文件时,您必须事先知道纸张的尺寸。在美国使用的纸张为 8.5x11 英寸,对于分辨率为 300 dpi 的打印机,2550X3300 为总的尺寸。大多数打印机无法从纸张的左上角打印。相反,在物理纸张的四周会分配一些边距空间。即使您试图从 0,0 打印,也不会打印到页的左上角。当创建新的 .xpr 文件时,请考虑此限制。