PostScript prolog檔案(.ps)
X 列印伺服器用戶端prolog檔案 (.xpr)。
該 PostScript 檔案分屬於下列種類:
共用prolog檔案
列印版面配置prolog檔案
prolog.ps檔案的目的為設定非一般的字型。應用程式使用這些預先定義的 PostScript 字型名稱來列印。針對「桌面集日曆」管理者以及 mp,該prolog檔案必須最少定義下列字型名稱。
LC_Times-Roman
LC_Times-Bold
LC_Helvetica
LC_Helvetica-Bold
LC_Courier
LC_Helvetica-BoldOblique
LC_Times-Italic
以下範例將使用這些字型來列印指定的特定本土字元集:
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以及 makeEUCfont。Makecodeset12設定本土字型編碼資訊。此常式可能因語言環境而異。MakeEUCfont合併基本字型與語言環境字型以形成複合字型。prolog檔案的建立者應該擁有良好的 PostScript 知識以便寫入 makecodeset12以及makeEUCfont.
prolog.ps檔案支援只保持回溯相容性。不要為語言環境的列印需求建立新的prolog.ps檔案。使用mp.conf做為替代。
prolog.ps的路徑為
/usr/openwin/lib/locale/$LANG/print/prolog.ps
共用的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檔案,mp.*.ps 檔案,包含控制列印頁面版面配置的常式。除了以使用者名稱、列印日期,和頁碼來給定列印頁面的標頭和頁腳之外,這些 prolog 檔案還能提供其他的資訊。例如,prolog檔案可給定有效的列印區域大小,以及列印的橫向和直向模式。
列印版面配置prolog檔案為:
mp.pro.ps
mp.pro.alt.ps
mp.pro.fp.ps
mp.pro.ps
mp.pro.ts.ps
mp.pro.altl.ps
mp.pro.ff.ps
mp.pro.l.ps
mp.pro.ll.ps
mp.pro.tm.ps
需要在每一個 prolog檔案中定義標準功能集。當起始新的列印頁面、列印頁面結束或新的一行結束時,即呼叫這些功能。這些功能的執行定義了列印輸出的列印屬性。
藉由 mp(1) 二進制在執行時期定義下列的 PostScript 變數。所有的列印版面配置檔皆可以使用這些變數來列印動態資訊,像是user name、 subject,和 print time。從變數取得的這項資訊通常會出現在列印頁面的標頭或頁腳。
執行mp的使用者名稱,從系統passwd檔案處獲得。
“清單針對”-當輸入為文字檔案時
“郵件針對”-當輸入為郵件檔案時
“文章起始”-當輸入為來自新聞群組的文章時
從郵件與新聞標頭處取得的主題。您可以使用- s選項以強制加入主題至郵件或新聞檔案中,也可以加入至平常的文字檔案。
出現在標頭或頁腳中的列印時間。此資訊是從localtime()功能處取得。
在列印版面配置 prolog檔案中執行下列的功能。這些功能皆可以使用子功能。
用法:page_number endpage
當到達列印頁面的底部時即呼叫。此功能復原頁面的圖形上下文並發佈“showpage.” 在某些 prolog檔案中,只有在以頁面為單位的模式中才會顯示標頭與頁腳資訊,而在以行為單位的模式中則不會。您可以執行此功能來呼叫可顯示標頭和頁腳灰階菱形的子功能。
用法 :page_number newpage
當新頁面開始時會執行常式或指令。常式所具備的功能包括設定橫向列印模式、儲存列印圖形內容,以及翻譯頁面座標。
用法 :page_number col_number endcol
用來顯示標頭與頁腳資訊。移至新的列印位置,並依此向前。
針對增加新的列印版面配置prolog檔案,需要在列印版面配置prolog檔案中明確定義下列變數。
列印頁面的欄數。預設值為 2。
以英吋計算的列印區域寬度。預設值為 6。
列印區域的高度 (英吋)。預設值為 9。
這些檔案的預設放置地點為/usr/lib/lp/locale/C/mp/ 。.xpr檔案相對應至每一個 PostScript prolog版面配置檔,除了mp.common.ps. 以外您可以定義替代的prolog目錄藉由定義MP_PROLOGUE環境變數。
這些檔案以關鍵字/值對的方式作業。以 #起始的行將視為註釋。除非明確敘述否則以空白隔開不同的記號。每個.xpr檔案的三個主要區段是藉由下列關鍵字對當做界限:
STARTCOMMON/ENDCOMMON
STARTPAGE/ENDPAGE
STARTCOLUMN/ENDCOLUMN
STARTFORCEDPAGE/ENDFORCEDPAGE
STARTFORCEDCOLUMN/ENDFORCEDCOLUMN
所有出現在STARTCOMMON 關鍵字之後並在ENDCOMMON關鍵字之前的關鍵字/值對定義了列印頁面的一般屬性。不同的關鍵字有效值是藉由使用 "/" 來做分隔。
"0" 表示列印以直印方式發生以及 "1" 表示以橫印發生。
表示每一個邏輯頁面行數的值。
表示每行單一欄位字元數的值。
每一實體頁面的邏輯頁面數。
以十分之一點計算的標題字型點大小。
內文字型點的大小 (十分之一點)。
目前的.xpr檔案建立時所使用的每英吋點數標度。
此 y 座標可建立頁面或邏輯頁面 (欄位) 中的文字列印邊界。此邊界是用來當做額外的檢查,以便檢視文字列印是否發生在預期的區域內。當您從相對應的字型中取得字元高度資訊時可能會出現錯誤,因此在進行「複雜文字配置」和 EUC 列印時將會需要此邊界。
當真實文字從實體頁面中的第一頁邏輯頁面開始列印時, x/y 點為十分之一點。
1 表示需要將 "Page" 字串附加在標題中的頁面編號之前。
0 表示只顯示頁面編號。
該 '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 以指定可縮放字型的選項。您也可以指定更多特定字型名稱。
與 EXTRAHDNGFONT 相同,除非這些字型是用來列印頁面內文 。
針對頁面內容在 x 軸方向的移位,指定 x 軸座標位移以套用至頁面此位移可以是 +ve 或 -ve 值。
與 x 置換相同,除非 y 軸中發生移位。
當您發現一些印表機的頁邊寬度並不符合標準,且您需要移動頁面中的列印內容時,這兩個關鍵字將非常有用。
此區段中的關鍵字值對是以STARTPAGE 以及ENDPAGE關鍵字當做邊界。此區段包含欲套用至實體頁面的繪圖與標題資訊。一張實體頁面可包含許多的邏輯頁面,但包含在這些關鍵字中的所有繪圖常式只能套用至實體頁面一次。
有效的繪圖實體為LINE以及 ARC。XDrawLine()以及XDrawArc()功能將以這些關鍵字的值執行。
此區段中的維度是以 PROLOGDPI 單元做對映。角是以度計算。
x/y 無符號座標可定義一對用來連接到線上的點。
x 軸與 y 軸皆為表示 arc 原點的無符號整數。寬度與高度為表示 arc 寬度與高度的無符號整數。
無符號座標表示使用者資訊列印在標題的位置。
無符號座標表示列印次數在標題的位置。
無符號座標表示列印每個列印頁面的頁面字串位置。
無符號座標表示頁面中列印主題的位置。
當指定-n選項予mp時,所有STARTPAGE/ENDPAGE區段中指定的裝飾皆不列印。然而,就算是指定-n選項時,所有包括在STARTFORCEDPAGE/ENDFORCEDPAGE 區段中的東西皆列印。
所有關鍵字皆與STARTPAGE/ENDPAGE中說明的相同,除了此區段中的項目是套用NUMCOLS次數至實體頁面上。
如果 NUMCOLS 為 3,則實體頁面的可列印區域會分割成三部份,和線、弧,或每個頁面出現三次的標題裝飾。
當 -n 選項給定為 mp 時,所有在 STARTCOLUMN/ENDCOLUMN 區段中所給定的裝飾都不會列印。不過,所有包含在 STARTFORCEDCOLUMN/ENDFORCEDCOLUMN 區段中的裝飾都會列印,即使已給定 -n 選項也一樣。
如果以下的這些值不是在 .xpr 檔案中為 STARTCOMMON/ENDCOMMON 區段所指定的話, 則這些值將是不同關鍵字的 mp(1) 程式預設值。
以STARTPAGE/ENDPAGE 以及STARTCOLUMN/ENDCOLUMN做邊界的其他兩個區段不需要預設值。
當建立新的.xpr prolog檔案時,您只能指定不同於預設值的值。
若要建立不含裝飾的頁面,請以直向格式在每個實體頁面上使用四個邏輯頁面。
STARTCOMMON
NUMCOLS 04
LINELENGTH 20
ENDCOMMON
在此情況下,您不需要其他兩個區段:
STARTPAGE/ENDPAGE
STARTCOLUMN/ENDCOLUMN
如果您並未在列印頁面上放置裝飾,則不需要這些參數。所有座標的預設值都是 300 dpi ,除非您並未指定 PROLOGDPI 關鍵字。 若是目標印表機解析度不同,.xpr檔案將藉由程式按比例縮放以符合該解析度。
當建立.xpr檔案時,您必須知道事先知道紙張的大小。針對 U.S. 紙張,8.5x11 英吋,針對解析度 300 dpi 的印表機,2550X3300 為整體大小。大多數的印表機無法從紙張的最左上角開始列[印。而是會在實體紙張周圍放置一些邊界。這意味著即使您試著從 0,0 開始列印,實際的列印動作並不會從頁面的最左上角開始。當建立新的.xpr檔案時需要考量此限制。