mp 인쇄 필터는 현재 Solaris 릴리스에서 향상되었습니다. 최신 mp 는 로켈의 출력 파일을 만드는 세 개의 다른 모드에서 내부적으로 작동하여 국제 텍스트를 인쇄합니다. 사용 가능한 모드는 다음과 같습니다.
로켈 특정 글꼴 구성 파일 mp.conf와 작동
로켈 특정 포스트스크립트 프롤로그 파일 prolog.ps와 작동
Xprt (X 인쇄 서버) 클라이언트로 작동
다음 절은 특정 인쇄 방법을 사용하는 시기와 이러한 인쇄 방법에 대하여 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 인쇄 페이지 레이아웃 파일을 포함합니다. 파일을 사용자 정의하는 방법에 대한 설명은 프롤로그 파일 추가 및 사용자 정의에서 제공됩니다.
만약 -D 또는 -P가 명령줄에서 주어지지 않았고, /usr/openwin/lib/locale/$LANG/print/prolog.ps가 존재하면 prolog.ps 파일이 출력을 위해 미리 결정됩니다. .ps 프롤로그 페이지의 인쇄 스타일에 따라 레이아웃 파일도 출력을 위해 미리 결정됩니다.
이 인쇄 방법은 포스트스크립트 글꼴 파일만 사용합니다. prolog.ps 파일의 사용자 정의는 프롤로그 파일 추가 및 사용자 정의에서 설명됩니다.
mp를 Xprt 클라이언트로 사용하면 mp는 Xprt 인쇄 서비스가 지원하는 네트워크에 연결된 모든 프린터의 출력을 인쇄할 수 있습니다. Xprt 클라이언트로서 mp는 포스트스크립트 및 PCL의 여러 버전을 지원합니다.
Xprt 클라이언트는 다음 규척을 바탕으로 Xprt 서버에 대하여 연결을 시도합니다
-D printer_name@machine[:dispNum] 또는 -P printer_name@machine[:dispNum] 옵션이 mp 명령과 함께 사용되면 mp는 machine[:dispNum] with printer_name의 Xprt 인쇄 서비스에 연결하려 합니다.
machine[:dispNum]에 대하여 위에서 시도한 연결이 실패하거나 -D 또는 -P에 주어진 인자가 printer_name이면 mp 명령은 printer_name 인자를 지원하는 Xprt 서버에 대하여 XPSERVERLIST를 검사합니다. 예를 들면 다음과 같습니다.
system% setenv XPSERVERLIST "machine1[:dispNum1] machine2[:dispNum2] ..." |
위 규칙을 사용하여 서버를 발견하지 못하면 mp는 machine[:dispNum]로 설정된 XPDISPLAY 환경 변수에 대하여 검사합니다. 예를 들면 다음과 같습니다.
system% setenv XPDISPLAY "machine[:dispNum]" |
XPDISPLAY 변수가 설정되지 않거나 변수가 유효하지 않으면 mp가 기본 표시 2100에 연결하려 합니다.기본 표시 값도 유효하지 않으면 mp는 오류 메시지와 함께 종료됩니다.
/usr/lib/lp/locale/C/mp 디렉토리에는 Xprt 클라이언트에 대한 .xpr 인쇄 페이지 예제 레이아웃 파일이 있습니다. 이들은 300dpi 프린터를 위한 예제 파일입니다. 대상 프린터에 dpi 값이 다르면 예제 파일의 dpi 값은 자동으로 대상 프린터의 해상도로 변환됩니다.
구성 파일은 글꼴 항목 또는 글꼴 그룹 항목을 추가 또는 변경하는 유연성을 제공합니다.
시스템 기본 구성 파일은 /usr/lib/lp/locale/$LANG/mp/mp.conf이며 여기서 $LANG은 인쇄가 이루어지는 로켈의 로켈 환경 변수입니다. -u config.file path 옵션과 함께 개인 구성 파일을 지정할 수 있습니다.
호환용 문자로 코드화된 슬러 또는 변수 그림 문자를 표현 형식이라고 합니다. mp.conf 파일은 로켈의 코드 포인트를 그 코드 포인트를 인쇄하는데 사용되는 글꼴의 코드화된 표현 형식으로 매핑하는데 주로 사용됩니다.
중간 코드 포인트는 넓은 문자이거나 이식 가능 레이아웃 서비스(PLS) 레이어의 출력일 수 있습니다. 복잡한 텍스트 레이아웃 인쇄를 위해서는 중간 코드 포인트가 PLS 출력이어야 합니다. mp가 생성한 기본 중간 코드는 PLS 출력입니다.
현재 지원되는 글꼴 형식은 PCF(Portable Compiled Format), TrueType 및 Type1 형식입니다. 시스템 상주 및 프린터 상주 Type1 글꼴이 모두 지원됩니다. mp.conf 구성 파일의 형식과 내용에 대하여 다음 정보를 기억하십시오.
행은 유효한 키보드(지시어)로 시작해야 합니다.
키보드에 대한 인자는 키워드와 동일한 행에 나타나야 합니다.
# 문자로 시작되는 행은 행 끝까지 주석으로 취급됩니다.
0x로 시작되는 숫자 인자는 16진수 숫자로 해석됩니다.
mp.conf 파일의 다른 부분은 다음을 포함합니다.
mp.conf 파일의 글꼴 별명 짓기 부분은 인쇄에 사용되는 각 글꼴의 별명을 정의하는데 사용됩니다. 이 절의 각 행은 다음과 같은 형식입니다.
FontNameAlias font-alias-name font-type font-path
글꼴 이름 별명 짓기의 일반적인 규약은 글꼴의 코드화/스크립트 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 파일에서 구성될 수 있습니다.
글꼴 파일에 절대 경로 이름을 부여합니다. 유형1 프린터 상주 글꼴에 대해서는 Helvetica와 같은 글꼴 이름을 지정합니다.
FontNameAlias prnHelveticaR Type1 Helvetica입니다.
동일한 유형의 글꼴을 조합하여 글꼴 그룹을 형성할 수 있습니다. 글꼴 그룹의 형식은 다음과 같습니다.
FontGroup.
글꼴의 그룹 이름
글꼴 유형동일한 유형의 글꼴(PCF, Type1, TrueType)에 대해서만 글꼴 그룹을 만드십시오.
글꼴 그룹의 로마 글꼴 이름
글꼴 그룹의 굵은체 글꼴 이름
글꼴 그룹의 기울임꼴 글꼴 이름
글꼴 그룹의 굵은 기울임 글꼴 이름.
그룹을 만들려면 로마 글꼴 항목만 필요합니다. 굵은체, 기울임꼴 및 굵은 기울임 글꼴은 선택적입니다. 다른 유형의 글꼴은 예를 들어, 우편/뉴스 기사의 헤더 행을 표시하는데 사용됩니다. 로마 글꼴만 정의되면 다른 글꼴 대신 사용됩니다.
mp.conf 파일의 매핑 부분은 로켈에서 중간 코드 범위를 글꼴 그룹에 매핑합니다. 이 절의 각 행에 대한 형식은 다음과 같습니다.
MapCode2글꼴.
0x로 시작되는 4바이트 16진수 값. 하나 이상의 글꼴 그룹에 매핑되는 코드 범위의 시작을 나타냅니다.
매핑될 코드 범위의 끝을 나타냅니다. 단일 중간 코드 포인트가 대상 글꼴에 매핑될 때는 '-' 값만 가능합니다.
표현 형식이 인쇄될 Type1, PCF 또는 TrueType 글꼴 그룹.
mp.conf 파일의 연관 부분은 각 글꼴을 글꼴 코드화의 표현 형식에 중간 코드 포인트를 매핑하는 공유 객체와 연관시킵니다. 이 절의 각 행에 대한 형식은 다음과 같습니다.
CnvCode2Font.
글꼴에 정의된 별명
중간 코드를 받아들이고 글꼴 코드화의 표현 형식을 반환하면 이것은 그림 문자 색인을 얻고 그림 문자를 그리는 데 사용됩니다.
매핑 기능을 포함하는 .so 파일 이름dumpcs를 사용하여 EUC 로켈의 중간 코드 세트를 찾을 수 있습니다.
mp(1)이 사용하는 현재 트루타입 엔진은 형식 4와 PlatformID 3 cmap만 다룰 수 있습니다. Microsoft .ttf 파일만 구성할 수 있습니다. 추가로, 문자 맵 코드화인 트루타입 글꼴 엔진이 제대로 작동하기 위해 유니코드 또는 기호여야 합니다. Solaris 환경의 .ttf 글꼴 대부분은 이러한 제약을 준수하기 때문에 mp.conf 파일 내에서 Solaris 소프트웨어의 모든 트루타입 글꼴을 매핑할 수 있습니다.
PCF 유형1 X Logical Fonts Description (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가 있는 트루타입 글꼴의 경우
-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, 트루타입 또는 유형1 프린터 상주 글꼴을 구성 파일에 추가하는 방법을 보여줍니다.
이 절차를 완료하여 현재 구성된 글꼴을 대체합니다. 첫번째 두 단계에서 범위 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
예를 들어, /usr/openwin/lib/locale/ja/X11/fonts/TT/HG-MinchoL.ttf 글꼴을 en_US.UTF-8 로켈에 매핑할 수 있습니다. HG-MinchoL.ttf은 유니코드 트루타입 글꼴 파일이기 때문에 .so 모듈 매핑 기능을 사용하여 직접 받는 ucs-2 코드 포인트로 돌아갑니다.
unsigned short _ttfjis0201(unsigned short ucs2) { return(ucs2); }
/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 파일을 작성하십시오.
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); }
매핑 파일을 작성할 때 모든 usc—2를 jisx0201 케이스에 포함시키십시오.
cc -G -o xu2jis0201.so xu2jis0201.c
다음 절차의 예제는 공유 객체 파일을 작성하는 방법을 보여줍니다.
글꼴을 추가하려면 mp.conf 파일의 섹션에 해당하는 다음 예제의 행을 편집하십시오.
다음 예제는 트루타입 글꼴을 추가하는 방법을 보여줍니다. .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 글꼴을 추가하려면 키워드를 트루타입에서 PCF로 변경하십시오.
변경된 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 파일을 찾을 수 있습니다.