國際語言環境指南

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

本章說明 mp 公用程式的列印增強功能。本章將討論下列主題:

UTF-8 的列印

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

這個公用程式的輸出是標準的 PostScriptTM,並且可以發送到任一部 PostScript 印表機。當設定為 X 列印伺服器用戶端,且列印伺服器可支援 mp 時,mp 公用程式也可以輸出任何頁面描述語言。

若要使用該公用程式,請鍵入下列指令:

system% mp filename | lp

由於 mp 接受下列的 stdin 串流,因此也可以將公用程式當作過濾器來使用:

system% cat filename | mp | lp

您可以將公用程式設定為行列式印表機的列印過濾器。例如,下列的指令序列會告知印表機服務 LPlp1 印表機只接受 mp 格式的檔案。這個指令也會將 lp1 印表機安裝在 /dev/ttya 通訊埠上。如需詳細資訊,請參閱「lpadmin(1M) 線上說明手冊」。

system# lpadmin -p lp1 -v /dev/ttya -I MPsystem# 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 列印過濾器增強概述

目前 Solaris 發行版本中的 mp 列印過濾器已經過增強。為了在語言環境中產生可列印國際性文字的輸出檔,最新的 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 字型來配置。

藉由語言環境特定的 PostScript Prologue 檔案來使用 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 列印服務所支援之網路連線印表機的輸出。做為 Xprt 用戶端,mp 支援 PostScript 和多種版本的 PCL。

Xprt 用戶端依據下列規則來試圖連線到 Xprt 伺服器:

使用 mp.conf 配置檔進行本土化

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

系統預設的配置檔是 /usr/lib/lp/locale/$LANG/mp/mp.conf,其中 $LANG 是執行列印之語言環境中的語言環境變數。您可以使用 -u config.file path 選項來指定個人使用的配置檔。

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

中間字碼點可以是寬字元或是「可攜式版面配置服務 (PLS)」層的輸出。若要進行「複合文字版面配置」列印,則中間字碼點必須是 PLS 輸出。由 mp 產生的預設中間字碼是 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、Adobe Type1 的字型類型值是 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

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

range_end

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

群組

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

關聯區段

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

關鍵字

CnvCode2Font

font alias name

為字型所定義的別名。

mapping function

可依序透過中間字碼格式取得該對映功能,並以字型編碼回傳,以取得文字影像索引,並繪製文字影像。

file path having mapping function

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


注意 –

目前 mp (1) 所使用的 TrueType 引擎,只能使用格式 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

由於此字型是以 ISO 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 也會產生寬字元字碼做為替代。

如果語言環境支援 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 中字元的 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-2jisx0201 的實例。

      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 字型名稱來列印。針對「桌面設定行事曆」管理員和 mpprolog 檔案至少必須定義下列字型名稱:

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

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。新增或變更字型並不需要深入瞭解 PostScript 程式設計的知識。

研讀範例版本是建立 prolog.ps 檔案的最佳方法。在 prolog.ps 範例中,必須寫入兩個常式:makecodeset12makeEUCfontmakecodeset12 常式會設定本機字型編碼方式的資訊。此常式可能因語言環境而異。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 編碼。可呼叫列印版面配置 prolog 檔案中的 .reencodeISO 常式來變更字型的編碼。通常此 prolog 檔案不需要任何自訂。若是您建立屬於自己的 prolog 檔案,請將環境變數 MP_PROLOGUE 設定為指向包含修改後 prolog 檔案的目錄。

列印版面配置 prolog 檔案

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

列印版面配置 prolog 檔案是:

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

下列 PostScript 變數是由 mp 二進位檔在執行時間定義的。所有的列印版面配置檔案皆可以使用這些變數來列印動態資訊,像是 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. 以外。您可以藉由定義 MP_PROLOGUE 環境變數,來定義替代的 prolog 目錄。

這些檔案以關鍵字/值對的方式作業。以 # 起始的行將視為註釋。除非明確敘述否則以空白隔開不同的記號。每個 .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-integerunsigned-integer

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

PAGESTRING 0/1

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

0 表示只顯示頁面編號。

EXTRAHDNGFONT font string 1, font 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 1, font string 2, ... font string n

除了這些字型是用來列印頁面內文之外,其餘與 EXTRAHDNGFONT 相同。

XDISPLACEMENT signed/unsigned int

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

YDISPLACEMENT signed/unsigned int

除了 y 軸中發生移位之外,其餘與 x 置換相同。

當您處理一些頁邊寬度並不符合標準的印表機,而需要移動頁面中的列印內容時,這兩個關鍵字將非常有用。

STARTPAGE/ENDPAGE 關鍵字

此區段中的關鍵字值對是以 STARTPAGE 以及 ENDPAGE 關鍵字當做邊界。此區段包含欲套用至實體頁面的繪圖與標題資訊。一張實體頁面可包含許多的邏輯頁面,但包含在這些關鍵字中的所有繪圖常式只能套用至實體頁面一次。

有效的繪圖實體為 LINEARCXDrawLine()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 區段中所給定的裝飾都不會列印。然而,即使指定了 -n 選項,也會列印所有包含在 STARTFORCEDCOLUMN/ENDFORCEDCOLUMN 區段中的內容。

建立新的 .xpr 檔案

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

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

表 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 檔案之前,您必須知道紙張的大小。針對 U.S. 紙張,8.5x11 英吋,針對解析度 300 dpi 的印表機,2550X3300 為整體大小。大多數的印表機無法從紙張的最左上角開始列印。相反的,部分邊界空格是圍繞著實體頁面而指定的。即使您嘗試從 0,0 開始列印,實際的列印動作並不會從頁面的最左上角開始。當您建立新的 .xpr 檔案時,請考慮此限制。