국제 언어 환경 설명서

7장 mp를 사용한 인쇄 필터 강화

이 장은 mp를 사용한 인쇄 강화에 대해 설명합니다. 다음 항목을 다룹니다.

UTF-8에 대한 인쇄

Solaris 9 운영 환경에서, UTF-8으로 작성된 텍스트 파일을 포함한 다양한 입력 형식의 파일을 인쇄할 수 있게 해주는 mp(1) 인쇄 필터가 더욱 개선되었습니다. 이 필터는 Solaris 운영 체제에서 사용할 수 있는 트루타입과 유형 1 조정 가능 글꼴 및 X11 비트맵 글꼴을 사용합니다. 또한 프린터 상주 글꼴을 사용할 수도 있고 X 인쇄 서버 클라이언트 역할을 할 수 있습니다.

유틸리티를 사용하여 표준 포스트스크립트로 출력한 뒤 포스트스크립트 프린터로 전송할 수 있습니다. mp(1)은 X 인쇄 서버 클라이언트로 작동할 때 모든 페이지 설명 언어를 출력할 수도 있고 mp 는 인쇄 서버의 지원을 받습니다.

유틸리티를 사용하려면 다음을 입력하십시오.

system% mp filename | lp

또한 이 유틸리티는 stdin 스트림을 받아들이기 때문에 필터로 사용할 수도 있습니다.

system% cat filename | mp | lp 
:

이 유틸리티를 라인 프린터용 인쇄 필터로 설정할 수 있습니다. 예를 들어, 다음 명령 시퀀스는 프린터 서비스 LP에 프린터 lp1mp 형식의 파일만을 받아들인다고 알려줍니다. 이 명령은 또한 프린터 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 

이 명령은 필터 설명 파일인 pathname을 통해 변환기(이 경우에는 mp)를 사용할 수 있음을 LP에 알려줍니다. pathname은 다음을 포함합니다.

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

필터는 /usr/bin/mp를 사용하여 기본 유형 파일 입력을 포스트스크립트 출력으로 변환합니다.

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에도 없다면 로켈 특정 글꼴 구성 파일인 mp.conf를 기본적으로 사용합니다. prolog.ps 파일은 파일의 포스트스크립트 내장 글꼴을 사용하여 mp를 인쇄하게 합니다. prolog.ps 가 로켈이 존재하더라도 -M 옵션을 사용하면 prolog.ps 파일이 무시되고 대신 mp.conf 파일이 사용됩니다.

이 방법은 /usr/lib/lp/locale/$LANG/mp/mp.conf 글꼴 구성 파일을 사용합니다. 대체 글꼴을 사용해야 하는 경우를 제외하고 이 파일을 변경하지 않아도 됩니다. 이 파일은 트루타입, 유형 1 또는pcf 글꼴로 구성될 수 있습니다. /usr/lib/lp/locale/C/는 다음 메소드는 물론 이 인쇄 방법에 공통적인 .ps 인쇄 페이지 레이아웃 파일을 포함합니다. 파일을 사용자 정의하는 방법에 대한 설명은 기존 프롤로그 파일 사용자 정의 및 새 프롤로그 파일 추가하기에서 제공됩니다.

로켈 특정 포스트스크립트 프롤로그 파일과 함께 mp 사용하기

만약 -D 또는 -P가 명령줄에서 주어지지 않았고, /usr/openwin/lib/locale/$LANG/print/prolog.ps가 존재하면 prolog.ps 파일이 출력을 위해 미리 결정됩니다. .ps 프롤로그 페이지의 인쇄 스타일에 따라 레이아웃 파일도 출력을 위해 미리 결정됩니다.

이 인쇄 방법은 포스트스크립트 글꼴 파일만 사용합니다. prolog.ps 파일의 사용자 정의는 Xprt(X 인쇄 서버) 클라이언트로 mp 사용하기에서 설명됩니다.

Xprt(X 인쇄 서버) 클라이언트로 mp 사용하기

이 지원은 mp가 X 인쇄 서버가 지원하는 네트워크에 연결된 모든 프린터에 대한 출력을 인쇄할 수 있도록 합니다. 포스트스크립트와 많은 PLC 버전도 이 명령으로 지원됩니다.

-D 또는 -P 명령 옵션이 사용되고 XPDISPLAY 변수가 환경에 설정되어 있지 않으면 인쇄 서버 시작 스크립트가 클라이언트가 실행 중인 컴퓨터에서 포트 2100로 Xprt 서버를 시작합니다. 이 스크립트는 또한 mp가 완료된 후 인쇄 서버를 종료합니다. XPDISPLAY가 설정되면 mp 클라이언트는 XPDISPLAY에서 실행되는 인쇄 서버에 접속하려 합니다. 이 경우 서버가 실행 중이 아니면 서버를 시작하려는 시도가 이루어지지 않습니다.

/usr/lib/lp/locale/C/mp 디렉토리는 Xprt 클라이언트로 작동하는 mp에 대한 .xpr 인쇄 페이지 레이아웃 파일을 포함합니다. 이들은 300dpi 프린터를 위해 작성된 예제 파일입니다. 대상 프린터가 다른 dpi 값을 가지면 dpi 값은 자동으로 대상 프린터의 해상도로 변환됩니다.

구성 파일의 지역화

구성 파일은 글꼴 항목 또는 글꼴 그룹 항목을 추가 또는 변경하는 유연성을 제공합니다.

시스템 기본 구성 파일 /usr/lib/lp/locale/$LANG/mp/mp.conf , 여기서 $LANG은 인쇄가 이루어지는 로켈의 로켈 환경 변수입니다. 사용자는 -u config.file path 옵션으로 개인 구성 파일을 지정하여 사용할 수 있습니다.

호환용 문자로 인코딩된 슬러 또는 변수 그림 문자를 표현 형식이라고 합니다. mp.conf 파일은 로켈의 코드 포인트를 그 코드 포인트를 인쇄하는데 사용되는 글꼴의 인코딩된 표현 형식으로 매핑하는데 주로 사용됩니다.

중간 코드 포인트는 넓은 문자이거나 이식 가능 레이아웃 서비스(PLS) 레이어의 출력일 수 있습니다. 복잡한 텍스트 레이아웃 인쇄를 위해서는 중간 코드 포인트가 PLS 출력이어야 합니다. mp(1)이 생성한 기본 중간 코드는 PLS 출력입니다.

현재 지원되는 글꼴 형식은 PCF(Portable Compiled Format), TrueType 및 Type1 형식입니다. 시스템 상주 및 프린터 상주 Type1 글꼴이 모두 지원됩니다. mp.conf 구성 파일의 형식과 내용에 대하여 다음을 기억하십시오.

mp.conf 파일의 다른 부분은 다음을 포함합니다.

글꼴 별명 짓기

mp.conf 파일의 글꼴 별명 짓기 부분은 인쇄에 사용되는 각 글꼴의 별명을 정의하는데 사용됩니다. 이 절의 각 행은 다음과 같은 형식입니다.

FontNameAlias 글꼴-별명-이름 글꼴-유형 글꼴-경로 			
글꼴-별명-이름

글꼴 이름 별명 짓기의 일반적인 규약은 글꼴의 인코딩/스크립트 Roman, Bold, Italic 또는 BoldItalic (R, B, I 또는 BI)인지를 나타내는 문자가 뒤에 오도록 지정하는 것입니다.

예를 들어, /usr/openwin/lib/X11/fonts/75dpi/courR18.pcf.Z, 이것은 iso88591 로마 글꼴이기 때문에 별명 iso88591R이 주어질 수 있습니다.

글꼴-유형

.pcf 글꼴에 대하여 PCF, Adobe Type1 글꼴에 대하여 Type1, TrueType 글꼴에 대하여 TrueType을 지정합니다. 이러한 세 가지 글꼴 종류만 이 mp.config 파일에서 구성될 수 있습니다.

글꼴-경로

글꼴 파일에 절대 경로 이름을 부여합니다. Type1 프린터 상주 글꼴에 대해서는 Helvetica와 같은 글꼴 이름을 지정합니다.

예를 들어,

FontNameAlias   prnHelveticaR   Type1   Helvetica

글꼴 그룹 정의

동일한 유형의 글꼴을 조합하여 글꼴 그룹을 형성할 수 있습니다. 글꼴 그룹의 형식은 다음과 같습니다.

키워드

FontGroup

fontgroupname

글꼴의 그룹 이름

GroupType

글꼴 유형동일한 유형의 글꼴(PCF, Type1, TrueType)에 대해서만 글꼴 그룹을 만드십시오.

Roman

글꼴 그룹의 로마 글꼴 이름

Bold

글꼴 그룹의 굵은체 글꼴 이름

Italic

글꼴 그룹의 기울임꼴 글꼴 이름

BoldItalic

글꼴 그룹의 굵은 기울임 글꼴 이름.

그룹을 만들려면 로마 글꼴 항목만 필요합니다. Bold, Italic 및 BoldItalic 글꼴은 선택적입니다. 다른 유형의 글꼴은 예를 들어, 우편/뉴스 기사의 헤더 행을 표시하는데 사용됩니다. 로마 글꼴만 정의되면 다른 글꼴 대신 사용됩니다.

매핑 부분

mp.conf 파일의 매핑 부분은 로켈에서 중간 코드 범위를 글꼴 그룹에 매핑합니다. 이 부분의 각 행은 다음과 같은 형식입니다.

키워드

MapCode2글꼴.

range_start

0x로 시작되는 4바이트 16진수 값. 하나 이상의 글꼴 그룹에 매핑되는 코드 범위의 시작을 나타냅니다.

range_end

매핑될 코드 범위의 끝을 나타냅니다. 단일 중간 코드 포인트가 대상 글꼴에 매핑될 때는 '-' 값만 가능합니다.

그룹

표현 형식이 인쇄될 Type1, PCF 또는 TrueType 글꼴 그룹.

연관 부분

mp.conf 파일의 연관 부분은 각 글꼴을 글꼴 인코딩의 표현 형식에 중간 코드 포인트를 매핑하는 공유 객체와 연관시킵니다. 이 부분의 각 행은 다음과 같은 형식입니다.

키워드

CnvCode2Font.

글꼴 별명

글꼴에 정의된 별명

매핑 함수

중간 코드를 받아들이고 글꼴 인코딩의 표현 형식을 반환하면 이것은 그림 문자 색인을 얻고 그림 문자를 그리는 데 사용됩니다.

파일 경로 매핑 함수

매핑 기능을 포함하는 .so 파일 이름 dumpcs를 사용하여 EUC 로켈의 중간 코드 세트를 찾을 수 있습니다.


주 –

mp(1)이 사용하는 현재 트루타입 엔진은 형식 4와 PlatformID 3 cmap만 다룰 수 있습니다. 즉, Microsoft .ttf 파일만 구성할 수 있습니다. 추가로, 문자 맵 인코딩인 트루타입 글꼴 엔진이 제대로 작동하기 위해 유니코드 또는 기호여야 합니다. Solaris 환경의 .ttf 글꼴 대부분은 이러한 제약을 준수하기 때문에 mp.conf 파일 내에서 Solaris 소프트웨어의 모든 트루타입 글꼴을 매핑할 수 있습니다.


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 코드 포인트 사이를 매핑해야 합니다.

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

이전 트루타입 글꼴의 cmap 인코딩이 유니코드로 되어 있기 때문에 중간 코드와 유니코드 사이를 매핑해야 합니다. 트루타입 글꼴의 예제에서 헤브루 문자(PLS 레이어가 만듬)에 해당하는 en_US.UTF-8 로켈 예제 중간 코드가 0xe50000e9라고 가정합니다. 글꼴이 유니코드로 인코딩되기 때문에 0xe50000e9를 전달할 때 출력이 유니코드의 표현 형식에 해당하는 방식으로 해당 .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_LTR/

ORIENTATION_RTL/

ORIENTATION_CONTEXTUAL

ORIENTATION_LTR

숫자

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 글꼴 대신 트루타입 글꼴로 바꿉니다.

새 글꼴을 추가하기 전에 다음과 같이 현재 구성된 글꼴에 해당하는 구성 파일에서 다양한 구성 요소를 찾으십시오.

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

en_US.UTF-8 로켈에서 매핑을 수행하기 위한 후보로 /usr/openwin/lib/locale/ja/X11/fonts/TT/HG-MinchoL.ttf를 선택했다고 가정합니다. 이것은 .so 모듈 내의 매핑 함수에서 유니코드 문자 매핑된 트루타입 글꼴 파일이기 때문에 받는 ucs-2 코드 포인트를 직접 반환하는 함수만 가지면 됩니다.

unsigned short _ttfjis0201(unsigned short ucs2) {
                 return(ucs2);
         }

이것을 ttfjis0201.c 파일에 저장하십시오. 다음과 같이 공유 객체를 만드십시오.

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

/usr/openwin/lib/locale/ja/X11/fonts/75dpi/gotmrk20.pcf.Z 와 같은 PCF 파일을 매핑하고 있다면 /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 모듈을 만드는 매핑 테이블을 얻어야 합니다(이미 준비되지 않은 경우). 유니코드 로켈의 경우 ftp.unicode.org/pub/MAPPINGS/ 하에서 많은 문자 세트와 유니코드의 매핑을 찾으십시오. xu2jis0201.c 파일을 작성하기 위해 다음 매핑(1)(1)을 따르십시오.

 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의 해당 부분에 추가하여 이 글꼴을 추가합니다. 다음 예제는 트루타입 글꼴을 추가하는 방법을 보여줍니다. PCF 글꼴은 트루타입 대신 PCF에 대한 키워드를 변경하는 것을 제외하고 동일한 패턴을 따릅니다.

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은 로켈 구성 요소 중 하나입니다. 그러한 상황에서 구성 파일 체계는 사용되지 않습니다

예제 mp.conf 파일인 /usr/lib/lp/locale/en_US.UTF-8/mp/mp.conf를 참조하십시오.

기존 프롤로그 파일 사용자 정의 및 새 프롤로그 파일 추가하기

프롤로그 파일은 다음 두 가지 범주로 나눌 수 있습니다.

포스트스크립트 파일 사용자 정의

포스트스크립트 파일은 다음 범주 중 하나입니다.

로켈 종속 프롤로그 파일

prolog.ps 파일은 흔히 사용되지 않는 글꼴을 설정하기 위해 사용됩니다. 응용프로그램은 인쇄를 위해 미리 정의된 포스트스크립트 글꼴 이름을 사용합니다. 프롤로그 파일은 데스크 세트 캘린더 관리자 및 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는 Foo-Fine의 조합 글꼴이며 Base-Font라는 기반 글꼴입니다. Foo-Fine은 로컬 문자 세트를 포함하는 글꼴입니다. 글꼴을 추가 또는 변경하기 위해서는 심층적인 포스트스크립트 지식이 필요 없습니다.

prolog.ps 파일을 작성하는 최선의 방법은 예제 버전을 연구하는 것입니다. prolog.ps 예제에서 두 개의 루틴 makecodeset12 makeEUCfont을 작성해야 합니다. makecodeset12는 로컬 글꼴 인코딩 정보를 설정합니다. 이 루틴은 로컬에 따라 다릅니다. makeEUCfont는 기반 글꼴과 로컬 글꼴을 조합하여 복합 글꼴을 형성합니다. 프롤로그 파일의 작성자는 makecodeset12makeEUCfont를 작성하기 위해 포스트스크립트를 잘 알고 있어야 합니다.

prolog.ps 파일 지원은 역방향 호환성을 위해서만 유지됩니다. 로켈의 인쇄 필요를 위해 새 prolog.ps 파일을 작성하지 마십시오. 대신 mp.conf를 사용하십시오.

prolog.ps의 경로는 다음과 같습니다.

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

공통 포스트스크립트 프롤로그 파일

공통 프롤로그 파일은 mp.common.ps 입니다.

모든 다른 페이지 레이아웃 프롤로그 파일은 이 파일을 포함해야 합니다.

mp.common.ps 파일은 /usr/lib/lp/locale/C/mp/ 디렉토리에 상주하고 포스트스크립트 루틴을 포함하여 표준 인코딩의 글꼴을 ISO 8859–1 인코딩으로 재인코딩합니다. .reencodeISO 루틴은 인쇄 레이아웃 프롤로그 파일에서 호출되어 글꼴 인코딩을 변경합니다. 보통 이 프롤로그 파일은 사용자 정의가 필요하지 않습니다. 사용자가 자신의 프롤로그 파일을 작성 중이면 환경 변수 PROLOGUE가 수정된 프롤로그 파일을 포함하는 디렉토리를 가리키도록 설정합니다.

인쇄 레이아웃 프롤로그 파일

인쇄 레이아웃 프롤로그 파일, mp.*.ps 파일은 인쇄용 페이지 레이아웃을 제어하는 루틴을 포함합니다. 사용자 이름, 인쇄 날짜, 페이지 번호가 있는 인쇄 페이지의 헤더 및 푸터 외에 프롤로그 파일은 다른 정보를 제공할 수 있습니다. 예를 들어, 프롤로그 파일은 유효 인쇄 영역 크기와 가로 및 세로 인쇄 모드를 제공할 수 있습니다.

인쇄 레이아웃 프롤로그 파일은 다음과 같습니다.

표준 기능 세트가 모든 프롤로그 파일에서 정의되어야 합니다. 함수는 새 인쇄 페이지가 시작, 인쇄 페이지가 종료 또는 새 열이 종료될 때 호출됩니다. 이러한 함수의 구현은 인쇄 출력의 인쇄 속성을 정의합니다.

다음 포스트스크립트 변수는 mp(1) 이진에 의해 런타임시 정의됩니다. 모든 인쇄 레이아웃 파일은 사용자 이름, 주제, 인쇄 시간과 같은 동적 정보를 인쇄하기 위해 이러한 변수를 사용할 수 있습니다. 변수에서 취해진 정보는 일반적으로 인쇄 페이지의 헤더 또는 푸터에 나타납니다.

User

시스템 passwd 파일에서 얻은 mp를 실행하는 사용자의 이름

MailFor

인쇄할 항목의 유형 이름을 보유하는데 사용되는 변수. 이 변수의 가능한 값은 다음과 같습니다.

  • “Listing for” - 입력이 텍스트 파일일 때

  • “Mail for” - 입력이 우편 파일일 때

  • “Article from” - 입력이 새 그룹의 항목일 때

Subject

우편 및 뉴스 헤더에서 취해진 주제 - s 옵션을 사용하여 일반 텍스트 파일은 물론 우편 및 뉴스 파일에 주제를 강제할 수 있습니다.

Timenow

헤더와 푸터에 나타나는 인쇄 시간 이 정보는 localtime() 함수에서 취해집니다.

다음 함수는 프롤로그 파일의 인쇄 레이아웃에서 구현됩니다. 이러한 모든 함수는 부속 함수를 사용할 수 있습니다.

endpage

사용 : page_number endpage

인쇄된 페이지의 맨아래에 도달하면 호출됩니다. 이 함수는 페이지의 그래픽 컨텍스트를 복원하고 “showpage.”를 발행합니다. 일부 프롤로그 파일에서 헤더 및 푸터 정보는 컬럼별 모드보다 페이지별 모드에서만 표시됩니다. 이 함수를 구현하여 헤더 및 푸터 회색조 마름모꼴을 표시하는 부속 함수를 호출할 수 있습니다.

newpage

사용 : page_number newpage

새 페이지가 시작할 때 실행될 루틴 또는 명령 수직 인쇄 모드 설정, 인쇄 그래픽 컨텍스트 저장 및 페이지 좌표 변환은 루틴 기능의 일부입니다.

endcol

사용 : page_number col_number endcol

헤더 및 푸터 표시에 사용됩니다. 새 인쇄 위치로의 이동 등입니다.

새 인쇄 레이아웃 프롤로그 파일 추가를 위해 인쇄 레이아웃 프롤로그 파일 내부에서 다음 변수를 정의해야 합니다.

NumCols

인쇄 페이지의 열 수 기본값은 2입니다.

PrintWidth

인치 단위 인쇄 영역 너비 기본값은 6입니다.

PrintHeight

인치 단위 인쇄 영역 높이 기본값은 9입니다.

.xpr File Customization

파일은 기본적으로 /usr/lib/lp/locale/C/mp/ 에 위치합니다. .xpr 파일은 mp.common.ps를 제외하고 각 포스트스크립트 프롤로그 레이아웃 파일에 해당합니다. MP_PROLOGUE 환경 변수를 정의하여 대체 프롤로그 디렉토리를 정의할 수 있습니다.

파일은 키워드/값 쌍으로 작동합니다. #로 시작하는 행은 주석으로 간주됩니다. 공백은 명시적으로 진술된 경우를 제외하고 다른 토큰을 분리합니다. 각 .xpr 파일의 세 개의 주 부분은 다음 키워드 쌍으로 묶입니다.

특정 키워드/값 쌍은 세 영역에서 사용됩니다. 각 영역은 다음에 설명됩니다.

STARTCOMMON/ENDCOMMON 키워드

STARTCOMMON 키워드 뒤, ENDCOMMON 키워드 앞에 나타나는 모든 키워드/값 쌍은 인쇄 페이지의 일반 등록 정보를 정의합니다. 키워드의 다른 유효한 값은 "/"를 사용하여 구분됩니다.

ORIENTATION 0/1

"0"은 수직으로 인쇄가 이루어짐을 뜻하고 "1"은 수평으로 이루어짐을 뜻합니다.

PAGELENGTH 부호없는 정수

논리적 페이지당 행 수를 나타내는 값

LINELENGTH 부호없는 정수

행당 단일 열 문자 수를 나타내는 값

NUMCOLS 부호없는 정수

물리적 페이지당 논리적 페이지 수

HDNGFONTSIZE 부호없는 정수

10포인트 단위의 머리글 글꼴 포인트 크기

BODYFONTSIZE 부호없는 정수

10포인트 단위의 본문 글꼴 포인트

PROLOGDPI 부호없는 정수

현재 .xpr 파일이 작성된 인치당 도트 눈금

YTEXTBOUNDARY 부호없는 정수

y 좌표는 페이지 또는 논리적 페이지(열)의 텍스트 인쇄 경계를 설정합니다. 경계는 텍스트 인쇄가 예상 영역 내에 있는지 확인하는 추가 검사로 사용됩니다. 경계는 해당 글꼴에서 얻은 문자 높이 정보가 잘못되어있기 때문에 복잡한 텍스트 레이아웃 및 EUC 인쇄에 필요합니다.

STARTTEXT 부호없는 정수 부호없는 정수

물리적 페이지의 첫번째 논리적 페이지에서 실제 텍스트 인쇄가 시작되는 10포인트 x/y 포인트

PAGESTRING 0/1

1은 "페이지" 문자열이 머리글의 페이지 수 전에 추가되어야 함을 나타냅니다.

0은 페이지 수만 표시됨을 나타냅니다.

EXTRAHDNGFONT 글꼴 문자열 1, 글꼴 문자열 2, ... 글꼴 문자열 n

'글꼴 문자열 n'에 대한 '글꼴 문자열 1'은 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 글꼴 문자열 1, 글꼴 문자열 2, ... 글꼴 문자열 n

글꼴이 페이지 본문 인쇄에 사용된다는 것을 제외하고 EXTRAHDNGFONT와 동일합니다.

XDISPLACEMENT 부호있는/부호없는 정수

x 방향으로 페이지 내용을 이동하기 위해 페이지에 적용될 x 좌표 변위를 부여합니다. 이 변위는 +ve 또는 -ve 값일 수 있습니다.

YDISPLACEMENT 부호있는/부호없는 정수

이동이 y 방향으로 일어난다는 것을 제외하고 x 변위와 동일합니다.

두 키워드는 일부 프린터에 비표준 여백 너비를 찾고 페이지에서 인쇄된 내용을 이동해야 할 때 유용합니다.

STARTPAGE/ENDPAGE

이 부분의 키워드 값 쌍은 STARTPAGE ENDPAGE 키워드로 묶입니다. 이 부분은 물리적 페이지에 적용될 그리기 및 머리글 정보를 포함합니다. 물리적 페이지는 많은 논리적 페이지를 포함할 수 있지만 키워드 사이에 포함되는 모든 그리기 루틴은 물리적 페이지에 한 번만 적용됩니다.

유효한 그리기 엔티티는 LINE ARC입니다. XDrawLine()XDrawArc() 함수는 키워드 값에서 실행됩니다.

이 부분 내의 크기는 PROLOGDPI 단위로 매핑됩니다. 각도는 도 단위입니다.

LINE x1 y1 x2 y2

x/y 부호없는 좌표는 선 연결을 위한 포인트 쌍을 정의합니다.

ARC x y 너비 높이 각도1 각도2

x 및 y는 모두 원호 원점을 표현하는 부호없는 정수입니다.너비 및 높이는 원호의 너비와 높이를 표현하는 부호없는 정수입니다.

USERSTRINGPOS x y

부호없는 좌표는 사용자 정보가 머리글에 인쇄되는 위치를 표시합니다.

TIMESTRINGPOS x y

부호없는 좌표는 인쇄 시간이 머리글에 인쇄되는 위치를 표시합니다.

PAGESTRINGPOS x y

부호없는 좌표는 각 인쇄된 페이지에 대한 페이지 문자열을 인쇄하는 위치를 표시합니다.

SUBJECTSTRINGPOS x y

부호없는 좌표는 페이지의 주제를 인쇄하는 위치를 표시합니다.

STARTFORCEDPAGE/ENDFORCEDPAGE

-n 옵션이 mp에 주어지면 STARTPAGE/ENDPAGE 부분 내에서 모든 장식이 주어집니다. 그러나 -n 옵션이 주어져도 STARTFORCEDPAGE/ENDFORCEDPAGE 부분 내에 포함된 모든 것이 인쇄됩니다.

STARTCOLUMN/ENDCOLUMN

모든 키워드는 이 부분의 항목이 물리적 페이지에 대한 NUMCOLS 횟수에 적용된다는 것을 제외하고 STARTPAGE/ENDPAGE의 설명과 동일합니다.

NUMCOLS이 3이면 물리적 페이지의 인쇄 가능 영역이 셋으로 분할되고 선, 원호 또는 머리글 장식이 페이지당 세 번 나타납니다.

STARTFORCEDCOLUMN/ENDFORCEDCOLUMN

-n 옵션이 mp에 주어지면 STARTCOLUMN/ENDCOLUMN 부분 내에서 주어진 모든 장식이 인쇄되지 않습니다. 그러나 -n 옵션이 주어지지더라도 STARTFORCEDCOLUMN/ENDFORCEDCOLUMN 부분 내에 포함된 모든 것이 인쇄됩니다.

.xpr 파일 작성하기

다음 값은 이러한 값이 STARTCOMMON/ENDCOMMON 부분에 대한 .xpr 파일에 지정되지 않더라도 다른 키워드에 대한 mp(1) 프로그램 기본값입니다.

STARTPAGE/ENDPAGE STARTCOLUMN/ENDCOLUMN에 묶이는 다른 두 부분을 위해 기본값이 필요하지 않습니다.

.xpr 프롤로그 파일을 작성할 때 기본값과 다른 값만 지정해야 합니다.

장식이 없는 페이지를 작성하려면 세로 형식으로 물리적 페이지당 네 개의 논리적 페이지를 사용합니다.

이 상황에서 다른 두 부분이 필요하지 않습니다.

매개 변수는 인쇄된 페이지에 장식을 두지 않을 때 필요합니다. 모든 좌표는 PROLOGDPI 키워드를 지정하지 않는 한 300dpi 기본값 범위입니다. 대상 프린터 해상도가 다르면 .xpr 파일은 프로그램에 의해 해당 해상도에 맞도록 조정됩니다.

.xpr 파일을 작성할 때 먼저 용지 크기를 알아야 합니다. 미국 용지의 경우 해상도 300dpi 프린터에 대하여 8.5x11인치, 2550X3300이 전체 크기입니다. 대부분의 프린터는 용지의 맨위 왼쪽 모서리부터 인쇄되지 않습니다. 대신, 물리적 용지 주위에 여백을 둡니다. 이것은 0,0에서 인쇄를 하려해도 인쇄는 페이지의 맨위 왼쪽 모서리에서 이루어지지 않음을 뜻합니다. 새 .xpr 파일을 작성할 때 이 제한을 고려해야 합니다.