國際語言環境指南

第 7章 藉由 mp 所進行的列印過濾器增強

本章說明藉由 mp所進行的列印增強。其討論下列的主題:

UTF-8 的列印

增強的mp(1) 在 Solaris 9 環境中可以使用列印過濾器,其能夠列印各種輸入檔案格式包括以UTF-8撰寫的平面文字檔。其使用 Solaris 系統上可用的 TrueType 與 Type 1 可縮放字型以及 X11 點陣字型。其也可以利用印表機內建字型並扮演 X 列印伺服器用戶端的角色。

這個公用程式的輸出是標準的 PostScript,並且可以發送到任何的 PostScript 印表機上。當以 X 列印伺服器用戶端工作時,mp(1) 也可以輸出任何頁面說明語言,列印伺服器可支援mp

若要使用該公用程式,請鍵入下列字串:

system% mp filename | lp

由於公用程式可接受 stdin 串流,所以您也可以將公用程式作為過濾器來使用

system% cat filename | mp | lp 

您可以將公用程式設定為行列式印表機的列印過濾器。例如,下列的指令序列會告知印表機服務 LPlp1 印表機只接受 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線上援助頁以取得更多詳細資訊。

mp列印過濾器增強概述

mp列印過濾器在 Solaris 9 版本中已進行增強。最新的 mp 可在三種不同的模式中以內部方式進行作業,在語言環境中產生輸出檔案以列印國際文字。可用的模式為:

以下章節說明何時使用特定的列印方法, 以及mp 針對這些列印方法使用哪種配置和支援檔案。

藉由語言環境特定字型配置檔mp.conf來使用mp

若是沒有在指令行中指定 -D-P選項,此列印方法即為預設值,除非 prolog.ps檔案存在於/usr/openwin/lib/locale/$LANG/print 或是/usr/lib/lp/locale/$LANG/mp目錄中。該prolog.ps檔案強制mp 使用檔案中的 PostScript 內嵌式字型。就算是prolog.ps 存在於語言環境中,使用-M選項會忽略prolog.ps檔,並使用mp.conf檔案 (若存在的話) 做為替代。

此方法使用/usr/lib/lp/locale/$LANG/mp/mp.conf字型配置檔。您不需要變更此檔案除非需要使用替代字型列印。此檔案可以使用 TrueType、Type 1 或來配置。pcf字型。/usr/lib/lp/locale/C/ 包含此列印模式以及下一個方法中常用的 .ps 列印頁面配置檔。 自訂現有的prolog檔案並增加新的 prolog檔案中提供如何自訂這些檔案的說明。

藉由指定語言環境的 PostScript Prologue 檔案來使用mp

若是指令行中沒有指定 -D-P選項,並且存在/usr/openwin/lib/locale/$LANG/print/prolog.ps ,那麼prolog.ps檔即前置至輸出。根據 .ps prolog 頁的列印樣式,配置檔亦前置至輸出。

此列印方法只利用 PostScript 字型檔。mp 視為 Xprt (X 列印伺服器) 用戶端來使用中說明prolog.ps的檔案自訂。

mp 視為 Xprt (X 列印伺服器) 用戶端來使用

此支援功能可讓 mp 為所有連接到 X 列印伺服器所支援的印表機來列印輸出。使用此指令也支援 PostScript 以及許多版本的 PCL。

若是使用 -D-P指令選項其中之一,並且在環境中沒有設定XPDISPLAY變數,則列印伺服器啟動程序檔會在用戶端正在執行的機器中,使用埠 2100 啟動 Xprt 伺服器。該程序檔也會在mp完成後終止列印伺服器。若是設定XPDISPLAY,該mp用戶端嘗試聯絡正在XPDISPLAY上執行的列印伺服器。在此狀況中,若是伺服器並沒有執行則不會嘗試啟動之。

/usr/lib/lp/locale/C/mp目錄包含以 Xprt用戶端方式進行作業的mp .xpr列印頁面配置檔。這些是針對 300 dpi 印表機所建立的範例檔。如果目標印表機有不同的 dpi 值,則此 dpi 值將自動轉換成目標印表機的解析度。

配置檔本土化

配置檔提供新增或變更字型項目,或字型群組項目的彈性。

系統預設的配置檔/usr/lib/lp/locale/$LANG/mp/mp.conf 中的 $LANG 為列印工作發生的語言環境之變數。使用者可以擁有個人的配置檔,其可以藉由-u config.file path選項來指定。

一個針對相容性而被編碼為字元的 ligature 或變數文字影像稱為表示格式 mp.conf 檔案主要是用來將語言環境中的中間字碼點,對映至用來列印該字碼點的字型編碼中的表示格式。

中間字碼點可以是寬字元,或是「可攜配置服務 (PLS)」層的輸出。若要進行「複雜文字配置」列印,則中間字碼點必須為 PLS 輸出。由 mp 產生的預設中間字碼 (1) 為 PLS 輸出。

目前支援的字型格式為可攜式編譯格式(PCF)、TrueType 以及 Type1 格式。同時支援系統與印表機內建的 Type 1 字型。請注意下列關於mp.conf配置檔的格式與內容。

mp.conf檔案中不同的區段包括:

字型別名

mp.conf檔案中的字型別名區段是用來定義每個用於列印字型的別名。此區段中的每一行皆為如下的格式:

FontNameAlias font-alias-name font-type font-path 			
font-alias-name

為字型名稱加入別名的一般慣例是在後方加上表示該字體為羅馬字體、粗體、斜體,或粗斜體的字母 (R、B、I 或 BI),藉以指定字型的編碼/程序檔名稱。

例如,/usr/openwin/lib/X11/fonts/75dpi/courR18.pcf.Z, 因為其是 iso88591 Roman 字型,所以能夠給定的別名為 iso88591R。

font-type

指定PCF針對.pcf字型, Type1針對 Adobe Type1 字型,以及TrueType針對 truetype 字型。只有這三種字型能夠在此 mp.config檔案中配置。

font-path

針對此處的字型檔案給定絕對路徑名稱。若為 Type1 印表機內建字型,則只需指定字型名稱,例如 Helvetica

例如,

FontNameAlias   prnHelveticaR   Type1   Helvetica

字型群組定義

您可以結合相同類型的字型以構成字型群組。字型群組的格式如下列所示。

keyword

FontGroup

fontgroupname

字型的群組名稱。

GroupType

字型類型。只為相同類型的字型建立字型群組(PCF,Type1,TrueType)。

Roman

字型群組中的羅馬字型名稱。

Bold

字型群組中的粗體字型名稱。

Italic

字型群組中的斜體字型名稱。

BoldItalic

字型群組中的粗斜體字型名稱。

針對建立群組,只需要羅馬字型登錄。粗體、斜體以及 粗斜體字型為選擇性的。例如,不同類型的字型是用來顯示郵件/新聞文章的標題行。若是只定義 Roman 字型,則其是用來代替其他字型。

對映區段

mp.conf 檔案的對映區段從中間程式檔的範圍對映至語言環境中的字型群組。此區段的每一行如以下所示。

keyword

MapCode2Font。

range_start

A 4–位元十六進制值是以 0x 開頭,表示字碼範圍的起點以對映至一個或多個字型群組。

range_end

表示需要對映的字碼範圍結尾。它可以是 '-' 值,其中只有單一中間字碼點對映至目標字型。

group

將列印的是 Type1、PCF 或 TrueType 字型群組的表示格式。

關聯區段

mp.conf 檔案的關聯區段可讓每個字型與共用物件產生關聯,而該物件會將中間字碼點對映至字型編碼中的表示格式。此區段的每一行如以下所示。

keyword

CnvCode2Font

font alias name

為字型所定義的別名。

mapping function

在中間字碼中執行,並傳回字型編碼中的表示格式,可用來依序取得 glyph 索引,及繪製 glyph。

檔案路徑有對映功能

包含對映功能的.so檔案名稱。您可以使用 dumpcs 中的公用程式來尋找 EUC 語言環境的中間字碼集。


註解 –

目前mp所使用的 TrueType 引擎 (1) 只能處理格式 4 以及 PlatformID 3 cmap。那表示您只能配置 Microsoft .ttf檔案。此外,字元對映編碼必須是 TrueType 字型引擎的 Unicode 或 符號才能正確地作業。由於 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

由於此字型是在 isoISO 8859-8 中進行編碼,因此共用物件必須在中間字碼和相應的 ISO 8859-8 字碼點之間對映。

若是 TrueType 字型使用 XLFD:

-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 編碼,因此當您傳送 0xe50000e9 時,其輸出會對應於 Unicode 中的表示格式,您可依此方式設計相對應 .so 模組中的功能。這裡的範例為 0x000005d9

對映功能的原型應該為:

unsigned int function(unsigned int inter_code_pt)

下列為可在 mp.conf: 檔案中使用的選擇性關鍵字/值對。

PresentationForm        WC/PLSOutput

預設值為PLSOutput。若是使用者指定 WC,則所產生的中間字碼點為寬字元。針對 CTL 列印,應該使用此預設值。

如果該語言環境為非 CTL 的語言環境且其鍵盤值為 PLSOutput,則該值會被忽略,mp(1) 也會產生寬字元碼做為替代。

如果語言環境支援 CTL,您可以使用列於下表的選擇性關鍵字/值對。這些變數可以假設表格中間欄中所給定的任何可能值。

表 7–1 可選擇的鍵/值對

可選擇的關鍵字 

可選擇的值 

預設值  

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範圍中所顯示的字元,使用 TrueType 字型替代目前的 PCF 字型

在增加新的字型之前,請先在配置檔案中查看與目前配置的字型相對應的各種元件,如以下所示。

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 語言環境中執行對映的候選者。由於這是一個 Unicode 字元對映的 TrueType 字型檔案,因此在 .so 模組的對映功能中,您只需要一個直接傳回 ucs-2 字碼點的功能。

unsigned short _ttfjis0201(unsigned short ucs2) {

                 return(ucs2);

         }

將其儲存在 ttfjis0201.c檔案中。建立如下的共用物件。

cc -G -Kpic -o ttfjis0201.so ttfjis0201.c

但若是您正在對映 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

若是jisx0201為編碼方式,準備從 ucs-2 對映至 jisx0201 的共用物件。您需要獲得建立.so模組的對映表格(若是尚未提供一個表格)。針對 Unicode 語言環境,請從ftp.unicode.org/pub/MAPPINGS/下許多 Unicode 的字元表處尋找對映。遵循這些對映 (1)(1) 以便寫入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);

                 }

當建立對映檔時,包括所有從 UCS-2 對映至 jisx0201 的狀況。

cc  -G -o xu2jis0201.so xu2jis0201.c

建立共用物件檔案

此範例建立共用物件檔案。

藉由將下列行新增至mp.conf中相對應的區段以新增此字型。下列範例顯示如何新增 TrueType 字型。PCF 字型將遵循相同的型樣,除非您將關鍵字變更為 PCF 來取代 TrueType。

FontNameAlias   jis0201R TrueType /home/fn/HG-Minchol.ttf 

FontGroup     jis0201 TrueType jis0201R

MapCode2Font  0x0020 	0x007f  jis0201

CnvCode2Font   jis0201R 	 _ttfjis0201 <.so path>

其中.so路徑指向xu2jis0201.so 檔案。

使用變更的mp.conf 檔案啟動mp(1)造成範圍0x0020-0x007f 以新的字型列印。使用相同方式將其他日文字元範圍做對映。so檔案,例如,範圍 0x0000FF61 0x0000FF9F

若要維護回溯相容性,該/usr/openwin/lib/locale/$LANG/print/prolog.ps 檔案 (若存在的話) 是用來在目前的語言環境中建立輸出,其中$LANG為語言環境元件之一。在該種情況下,不使用配置檔機制。

請參考/usr/lib/lp/locale/en_US.UTF-8/mp/mp.conf,其為一個mp.conf範例檔案。

自訂現有的prolog檔案並增加新的 prolog檔案

prolog檔案可以分割為兩個主要的種類:

PostScript 檔案自訂

該 PostScript 檔案分屬於下列種類:

語言環境相依prolog檔案

prolog.ps檔案的目的為設定非一般的字型。應用程式使用這些預先定義的 PostScript 字型名稱來列印。針對「桌面集日曆」管理者以及 mp,該prolog檔案必須最少定義下列字型名稱。

以下範例將使用這些字型來列印指定的特定本土字元集:

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 是 Foo-Fine 以及被稱為 Base-Font 基本字型的複合字型。Foo-Fine 是包含本土字元集的字型。在增加或變更字型時,您並不需要具備豐富的 PostScript 知識。

建立prolog.ps檔案的最佳方法為學習範例版本。在範例prolog.ps中,需要寫入兩個常式makecodeset12以及 makeEUCfontMakecodeset12設定本土字型編碼資訊。此常式可能因語言環境而異。MakeEUCfont合併基本字型與語言環境字型以形成複合字型。prolog檔案的建立者應該擁有良好的 PostScript 知識以便寫入 makecodeset12以及makeEUCfont.

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 編碼的字型。可呼叫列印版面配置 prolog 檔案中的 .reencodeISO 常式來變更字型的編碼。通常此 prolog檔案不需要任何自訂。若是使用者建立其所屬的prolog檔案,設定該環境變數 MP_PROLOGUE以指向包含修改過的 prolog檔案之目錄。

列印版面配置 prolog 檔案

列印版面配置prolog檔案,mp.*.ps 檔案,包含控制列印頁面版面配置的常式。除了以使用者名稱、列印日期,和頁碼來給定列印頁面的標頭和頁腳之外,這些 prolog 檔案還能提供其他的資訊。例如,prolog檔案可給定有效的列印區域大小,以及列印的橫向和直向模式。

列印版面配置prolog檔案為:

需要在每一個 prolog檔案中定義標準功能集。當起始新的列印頁面、列印頁面結束或新的一行結束時,即呼叫這些功能。這些功能的執行定義了列印輸出的列印屬性。

藉由 mp(1) 二進制在執行時期定義下列的 PostScript 變數。所有的列印版面配置檔皆可以使用這些變數來列印動態資訊,像是user name subject,和 print time。從變數取得的這項資訊通常會出現在列印頁面的標頭或頁腳。

User

執行mp的使用者名稱,從系統passwd檔案處獲得。

MailFor

變數是用來保留要列印文章的類型名稱。此變數的可能值為:

  • “清單針對”-當輸入為文字檔案時

  • “郵件針對”-當輸入為郵件檔案時

  • “文章起始”-當輸入為來自新聞群組的文章時

Subject

從郵件與新聞標頭處取得的主題。您可以使用- 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. 以外您可以定義替代的prolog目錄藉由定義MP_PROLOGUE環境變數。

這些檔案以關鍵字/值對的方式作業。以 #起始的行將視為註釋。除非明確敘述否則以空白隔開不同的記號。每個.xpr檔案的三個主要區段是藉由下列關鍵字對當做界限:

某些關鍵字/值對可以用在這三個區域中。下一段會說明每個區域。

STARTCOMMON/ENDCOMMON關鍵字

所有出現在STARTCOMMON 關鍵字之後並在ENDCOMMON關鍵字之前的關鍵字/值對定義了列印頁面的一般屬性。不同的關鍵字有效值是藉由使用 "/" 來做分隔。

ORIENTATION 0/1

"0" 表示列印以直印方式發生以及 "1" 表示以橫印發生。

PAGELENGTH unsigned-integer

表示每一個邏輯頁面行數的值。

LINELENGTH unsigned-integer

表示每行單一欄位字元數的值。

NUMCOLS unsigned-integer

每一實體頁面的邏輯頁面數。

HDNGFONTSIZE unsigned-integer

以十分之一點計算的標題字型點大小。

BODYFONTSIZE unsigned-integer

內文字型點的大小 (十分之一點)。

PROLOGDPI unsigned-integer

目前的.xpr檔案建立時所使用的每英吋點數標度。

YTEXTBOUNDARY unsigned-integer

此 y 座標可建立頁面或邏輯頁面 (欄位) 中的文字列印邊界。此邊界是用來當做額外的檢查,以便檢視文字列印是否發生在預期的區域內。當您從相對應的字型中取得字元高度資訊時可能會出現錯誤,因此在進行「複雜文字配置」和 EUC 列印時將會需要此邊界。

STARTTEXT unsigned-integer unsigned-integer

當真實文字從實體頁面中的第一頁邏輯頁面開始列印時, x/y 點為十分之一點。

PAGESTRING 0/1

1 表示需要將 "Page" 字串附加在標題中的頁面編號之前。

0 表示只顯示頁面編號。

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

該 'font string 1' 至 'font string n' 為「 X 邏輯字型說明」。將關鍵字 EXTRAHDNGFONT 與以逗號做分隔的字型名稱清單隔開的記號為 ",而不是空白或頁標。在列印標題時,這些字型的優先順序將高於內建的字型。通常,EXTRABODYFONT 是用來指定配置在 /usr/openwin/server/etc/XpConfig/C/print/models/<model name>/fonts 目錄中的印表機內建字型。

fonts.dir檔案包含印表機內建字型的 XLFD。

通常字型被指定為

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

.xpr檔案中。"%d",若是出現的話,將由mp(1) 取代為.xpr檔案中目前的標題字型點大小。 x 解析度和 y 解析度是由 * 所指定,若可能的話,平均寬度欄也將設為 0 以指定可縮放字型的選項。您也可以指定更多特定字型名稱。

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

EXTRAHDNGFONT 相同,除非這些字型是用來列印頁面內文 。

XDISPLACEMENT signed/unsigned int

針對頁面內容在 x 軸方向的移位,指定 x 軸座標位移以套用至頁面此位移可以是 +ve 或 -ve 值。

YDISPLACEMENT signed/unsigned int

與 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 軸皆為表示 arc 原點的無符號整數。寬度與高度為表示 arc 寬度與高度的無符號整數。

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 區段中所給定的裝飾都不會列印。不過,所有包含在 STARTFORCEDCOLUMN/ENDFORCEDCOLUMN 區段中的裝飾都會列印,即使已給定 -n 選項也一樣。

建立新的.xpr檔案

如果以下的這些值不是在 .xpr 檔案中為 STARTCOMMON/ENDCOMMON 區段所指定的話, 則這些值將是不同關鍵字的 mp(1) 程式預設值。

STARTPAGE/ENDPAGE 以及STARTCOLUMN/ENDCOLUMN做邊界的其他兩個區段不需要預設值。

當建立新的.xpr prolog檔案時,您只能指定不同於預設值的值。

若要建立不含裝飾的頁面,請以直向格式在每個實體頁面上使用四個邏輯頁面。

在此情況下,您不需要其他兩個區段:

如果您並未在列印頁面上放置裝飾,則不需要這些參數。所有座標的預設值都是 300 dpi ,除非您並未指定 PROLOGDPI 關鍵字。 若是目標印表機解析度不同,.xpr檔案將藉由程式按比例縮放以符合該解析度。

當建立.xpr檔案時,您必須知道事先知道紙張的大小。針對 U.S. 紙張,8.5x11 英吋,針對解析度 300 dpi 的印表機,2550X3300 為整體大小。大多數的印表機無法從紙張的最左上角開始列[印。而是會在實體紙張周圍放置一些邊界。這意味著即使您試著從 0,0 開始列印,實際的列印動作並不會從頁面的最左上角開始。當建立新的.xpr檔案時需要考量此限制。