KR910005778B1 - 인자방향지정을 위한 프린터의 제어방법 - Google Patents

인자방향지정을 위한 프린터의 제어방법 Download PDF

Info

Publication number
KR910005778B1
KR910005778B1 KR1019850004134A KR850004134A KR910005778B1 KR 910005778 B1 KR910005778 B1 KR 910005778B1 KR 1019850004134 A KR1019850004134 A KR 1019850004134A KR 850004134 A KR850004134 A KR 850004134A KR 910005778 B1 KR910005778 B1 KR 910005778B1
Authority
KR
South Korea
Prior art keywords
dot
character
printing
register
pattern
Prior art date
Application number
KR1019850004134A
Other languages
English (en)
Other versions
KR860002054A (ko
Inventor
히로유끼 아오끼
Original Assignee
가부시끼가이샤 도오시바
사바 쇼오이찌
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시끼가이샤 도오시바, 사바 쇼오이찌 filed Critical 가부시끼가이샤 도오시바
Publication of KR860002054A publication Critical patent/KR860002054A/ko
Application granted granted Critical
Publication of KR910005778B1 publication Critical patent/KR910005778B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J3/00Typewriters or selective printing or marking mechanisms characterised by the purpose for which they are constructed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/10Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers by matrix printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/16Means for paper feeding or form feeding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0062Handling the output data combining generic and host data, e.g. filling a raster
    • G06K2215/0065Page or partial page composition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0062Handling the output data combining generic and host data, e.g. filling a raster
    • G06K2215/0071Post-treatment of the composed image, e.g. compression, rotation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0062Handling the output data combining generic and host data, e.g. filling a raster
    • G06K2215/0071Post-treatment of the composed image, e.g. compression, rotation
    • G06K2215/0074Depleting the image

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Dot-Matrix Printers And Others (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

내용 없음.

Description

인자방향지정을 위한 프린터의 제어방법
제1도는 본 발명이 적용된 프린터제어장치의 구성도.
제2도 내지 제16도는 각각 상기 실시예에서의 확대문자패턴 또는 변형문자패턴을 얻기 위한 도트보간처리수단을 설명하기 위한 것으로, 제2a도 내지 제2f도는 각각 도트보간처리에 의해 생성되는 새로운 도트를 에워싸는 1격자 4점의 도트정보(도트패턴)와 보간테이블 ROM에 설정된 보간값의 레벨구분 및 테이블형태와의 관계를 나타낸 도면.
제3도는 테이블형태의 선택절환동작을 설명하기 위한 도면.
제4a도 내지 제4d도는 패턴 변환례를 나타낸 도면.
제5a도 및 제5b도는 CRT에 표시할 경우 주·부주사방향과 프린터출력시의 주·부주사방향을 대비하여 나타낸 도면.
제6도는 각종 설정데이터의 관계를 나타낸 예시도.
제7도는 도트보간처리에 의해 패턴이 변환된 문자와 그 문자에 외접하는 직사각형과의 관계를 나타낸 도면.
제8도는 각종 변형문자에 대한 문자피치 및 행피치의 설정례를 나타낸 예시도.
제9도는 각종 변형문자에 대한 밑줄의 전개예를 나타낸 예시도.
제10도는 존을 지정하는 동작을 설명하기 위한 도면.
제11도는 상기 실시예에서의 문자정보기억버퍼내에 있는 1정보블럭의 구성을 나타낸 예시도.
제12도 내지 제16도는 상기 실시예의 동작을 설명하기 위한 것으로, 제12도 및 제13도는 각각 실시예의 인자제어동작을 설명하기 위한 설명도.
제14도 내지 제16도는 각각 상기 실시예의 동작처리흐름을 나타낸 플로우챠트.
제17도는 본 발명의 다른 실시예에 따른 동작처리흐름을 나타낸 플로우챠트.
제18도 내지 제22도는 각 레지스터에 세트되는 도트인각폭 및 이니셜어드레스의 설정치를 구하기 위해 사용되는 도면.
* 도면의 주요부분에 대한 부호의 설명
10 : CPU 11 : 주기억장치(MM)
12 : CPU버스 13 : 라인버퍼(이미지라인버퍼)
14 : 직렬도트프린터 21 : 레지스터
22 : 레지스터 23 : 밑줄/옆줄제어부
24 : 삼각함수테이블 25 : 존지정용 레지스터
26, 27 : 레지스터 28 : 오프세트레지스터
29 : 오프세트데이터생성부 31∼36 : 레지스터
37∼40 : 가산회로 41, 43 : 데이터셀렉터
42, 44 : 레지스터 45, 47 : 데이터셀렉터
46, 48 : 레지스터 49 : 선택제어회로
50 : 레지스터 51 : 한자패턴메모리
52 : 1문자버퍼 53 : 비트선택회로
54 : 레지스터 55 : 판단제어회로
56 : 레지스터 57 : 도트판단회로
58 : 보간테이블 ROM 59 : 비교기
60 : 시프트레지스터 70 : 문자정보기억버퍼
701 : 정보블럭 90 : 인쇄방향제어플래그
80 : 제어플래그부 81 : 문자코드부
82 : 존지정부 83 : 상대거리기억부
84 : 포인터부 85, 86 : 인각폭기억부
87 : 속성정보기억부 91, 92 : 레지스터
[산업상의 이용분야]
본 발명은 확대 또는 변형처리된 도트매트릭스 구조의 한자를 포함하는 문자(폰트; font)정보를 표준규격문자와 혼합하여 인자출력할 수 있도록 된 직렬프린터에 이용되는 인자방향지정을 위한 프린터의 제어방법에 관한 것이다.
[종래의 기술 및 그 문제점]
종래의 직렬프린터에 있어서는 표준규격문자와 확대문자를 혼합하여 인자제어할 경우, 줄을 바꿀 때 속도에 어느 정도의 제한이 따르게 되는 바, 예컨데, 세로폭이 48도트인 확대문자를 인자하고자 할 경우에는 반드시 도중에 용지이송동작을 필요로 하게 된다. 즉, 확대문자중 상반부의 24도트를 인자한 다음 24도트분의 용지이송동작을 실행하고, 그 후 상기 확대문자중 하반부의 24도트를 인자함으로써 상기 확대문자의 인자를 종료하게 된다.
이와 같은 소정의 문자도트매트릭스패턴을 확대 또는 변형처리해서 그 세로방향의 도트수가 이미지라인버퍼의 세로방향폭보다도 커졌을 경우에는 해당 문자패턴의 인자출력을 완료시키 위해 여러번의 인자헤드이동동작과 적어도 한번 정도의 세로방향의 인자폭에 상당하는 용지이송동작이 수반되게 된다.
그러나, 이때 상기 복수의 존(ZONE)으로 구성되는 확대 또는 변형문자패턴에 대해 인자헤드를 1회 왕복운동(순방향이송 및 역방향이송)시킴으로써 2행분의 인자를 행하는 소위 양방향인자모우드로 인자를 행하게 되면, 프린터메카니즘의 정밀도에 다른 오차 때문에 존으로 분할된 부분에서 인자도트의 어긋남이 생겨 인자품질이 저하되는 단점이 있었다.
이러한 단점을 제거하기 위해서는 인자헤드가 단일방향(예컨데, 좌우에서 우)으로 이동할때에만 인자를 가능케하는 소위 단일방향인자모우드로서 인자처리를 하면 된다. 그러나, 일반적으로 인자출력되는 문서에는 표준규격문자와 확대문자가 섞여있게 되는데, 이때 표준규격문자는 1회의 인자헤드이동동작(단일방향이동동작)으로 인자가 완료되기 때문에 양방향인자모우드에 의해 고속으로 인자를 실행하여도 실용상 지장이 없고, 또 확대문자를 인자하는 경우에도, 실험적인 인자등, 인자품질을 고려할 필요가 없는 경우에도, 실험적인 인자등, 인자품질을 고려할 필요가 없는 경우에는 양방향인자모우드에 의한 인자로 인자소요시간을 단축할 수 있게 된다.
즉, 인자출력되는 문자패턴이 복수의 존으로 구성된 경우에는 인자품질이란 점에서 볼 때, 단일방향인자모우드에 따른 인자수단이 바람직하고, 인자출력되는 문자패턴이 단일 존으로 이루어진 경우에는 인자속도면에서 볼 때 양방향인자모우드에 따른 인자수단이 바람직하게 된다.
그러나, 종래에는 상기한 바와 같은 표준규격문자와 복수의 존으로 분할된 확대문자 또는 변형문자가 혼합하여 존재하는 경우, 이에 대한 양방향/단일방향의 인자제어가 충분히 고려되지 못하여 인자문자패턴에 따라 양방향/단일방향의 인자모우드를 선택할 수 있도록 된 기능이 포함되지 않았다.
[발명의 목적]
본 발명은 상기한 점을 감안하여 발명된 것으로, 표준규격문자와 확대 내지 변형문자가 혼합되어 있을 때의 인자제어에 있어서, 1회의 인자헤드이동동작으로 인자완료되는 문자패턴에 대해 양방향인자처리에 의해 고속인자처리를 실행하고, 복수의 존으로 분할된 확대 내지는 변형문자에 대해서는 사용자의 지시에 따른 인자지시처리, 즉 인자품질을 중시하지 않으면서 고속인쇄를 하고 싶은 경우에는 인쇄방향제어플래그를 세트시킴으로써 양방향인자처리에 따른 고속인자를 실행하며, 존간의 패턴이 어긋남에 따른 인자품질의 저하를 제거하면서 고인자품질의 확대 내지는 변형문자패턴을 얻고 싶을때의 인쇄방향제어플래그를 리세트시켜 단일방향인자모우드를 지정하여 존간의 패턴이 어긋남이 발생되지 않는 고인품질의 인자를 실행함으로써, 인자시간의 단축을 도모함과 더불어 존으로 분할된 확대 내지는 변형문자에 대해 인자품질의 저하를 초래하지 않고 인자제어를 실행할 수 있도록 된 인자방향지정을 위한 프린터의 제어방법을 제공함에 그 목적이 있다.
[발명의 구성]
상기 목적을 달성하기 위한 본 발명은, 소정의 도트메트릭스 구조로 이루어진 문자패턴을 확대 내지는 변형처리하는 패턴처리단계와, 이 패턴처리단계에 의해 얻어진 패턴의 세로방향도트수가 이미지라인버퍼의 세로방향폭보다 분할하여 이미지전개시키는 단계를 구비하여 이루어진 프린터의 제어방법에 있어서, 인자출력 되는 문자패턴이 존으로 분할되어 있는가의 제어방법에 있어서, 인자출력되는 문자패턴이 존으로 분할되어 있는가의 여부를 판단하는 판단단계와, 이 판단단계에서의 판단결과를 기초로 존으로 분할되어 있지않은 문자패턴을 인자출력하는 경우에는 양방향인자모우드를 지정하고, 존으로 분할된 문자패턴을 인자출력하는 경우에는 단일방향인자모드로 지정하는 인자모드지정 단계를 구비하여, 인자출력되는 문자패턴이 복수의 존으로 구성된 경우에는 단일방향인자에 의한 인자처리를 실행하고, 인자출력되는 문자패턴이 단일 존으로 구성된 경우에는 양방향인자에 의한 인자처리를 실행하고, 인자출력되는 문자패턴이 단일 존으로 구성된 경우에는 양방향인자에 의한 인자처리를 실행하도록 된 것을 특징으로 한다.
[작용]
상기와 같이 이루어진 본 발명에 의하면, 인자시간을 단축시켜 고속인자처리가 가능해지도록 함과 더불어, 존 분할된 확대 내지는 변형문자에 대해 인자품질의 저하를 초래하지 않고 인자제어를 실행할 수 있게 된다.
[실시예]
이하, 예시도면을 참조해서 본 발명에 따른 1실시예를 상세히 설명한다.
제1도는 본 발명이 적용된 프린터제어장치의 구성을 도시해 놓은 블록도로서, 도면중 참조부호 10은 시스템 전체를 제어하는 CPU, 11은 주기억장치, 12는 CPU 버스, 13은 이미지라인버퍼(이하, 라인버퍼로 칭함), 14는 직렬도트프린터를 나타낸다.
또 참조부호 21은 패턴변환시 변환 후의 부주사방향의 폭(주주사의 간격×회수)에 상당하는 크기(Vsize)를 표시하는 레지스터, 22는 동일 주주사방향의 폭에 상당하는 크기(Hsize)를 표시하는 레지스터, 23은 상기 레지스터(21)의 내용에 대응하는 길이를 갖춘 밑줄과 옆줄의 도트패턴을 발생시켜 라인버퍼(13)에 기록하는 밑줄/옆줄제어부, 24는 문자의 경사 또는 회전시에 있어서 지정각도에 따른 각도정보(삼각함수데이터)가 저장되어 있는 삼각함수테이블, 25는 패턴변환처리 후 문자패턴이 라인버퍼(13)의 세로방향폭, 즉 기준문자높이를 초과할 경우 그 문자패턴을 상기 기준높이의 단위로 존(ZONE)을 나누기 위한 존지정용 레지스터, 26,27은 문자의 확대·축소배율에 따른 도트인각폭(dx,dy)이 저장된 레지스터, 28은 패텬변화된 문자에 대해 0∼7도트의 범위에서 선택적으로 오프세트를 인가하기 위한 오프세트레지스터, 29는 오프세트레지스터(28)의 오프세트 값에 따른 도트수를 갖춘 오프세트데이터(비표시 非表示)를 표시하는 "0"을 생성하는 오프세트데이터생성부를 나타낸다.
또, 참조부호 31 내지 49는 각각 도트보간어드레스를 생성하기 위한 구성요소들로서, 31은 X성분을 포함한 부주사방향의 도트인각폭(DX1)을 저장하는 레지스터, 32는 X성분을 포함하는 주주사방향의 도트인각폭(DX2)을 저장하는 레지스터, 33은 X성분을 포함한 주주사방향의 초기치(초기어드레스 : X1 init)를 저장하는 레지스터, 34는 Y성분을 포함한 부주사방향의 도트인각폭(DY1)을 저장하는 레지스터, 35는 Y성분을 포함하는 주주사방향의 도트인각폭(DY2)을 저장하는 레지스터, 36은 Y성분을 포함하는 부주사방향의 초기치(초기어들스; Y1 init)를 저장하는 레지스터이다. 여기서 상기 각 레지스터(31∼36)에 저장된 도트보간어드레스는 각각 정수부데이터와 소수부데이터로 이루어져 있다.
또, 참조부호 37은 상기 레지스터(31)의 내용과 X성분을 포함한 부주사방향의 도트위치를 표시하는 레지스터(42)의 내용을 가산하는 가산회로(ADD-A), 38은 상기 레지스터(32)의 내용과 X성분을 포함한 주주사방향의 도트위치를 표시하는 레지스터(44)의 내용을 가산하는 가산회로(ADD-B), 39는 상기 레지스터(34)의 내용과 Y성분을 포함한 부주사방향의 도트위치를 표시하는 레지스터(46)의 내용을 가산하는 가산회로(ADD-C), 40은 상기 레지스터(35)의 내용과 Y성분을 포함한 주주사방향의 도트위치를 표시하는 레지스터(48)의 내용을 가산하는 가산회로(ADD-D)이다.
또, 참조부호 41은 1문자분의 도트보간처리를 시작할 경우, 상기 레지스터(33)의 내용을 선택한 다음 1회의 주주사가 수행될 때마다 가산회로(37)의 출력을 선택하는 데이터셀렉터, 42는 도트보간시 데이터셀렉터(41)에서 선택된 X성분을 포함한 정수부와 소수부로 표시되는 새로운 어드레스를 저장하는 레지스터, 43은 주주사를 시작할 경우 상기 레지스터(42)의 내용을 선택한 다음 1도트분을 보간처리할 때마다 가산회로(38)의 출력을 선택하는 데이터셀렉터, 44는 도트보간시 데이터셀렉터(43)에서 선택된 X성분을 포함하는 새로운 도트어드레서를 저장해 두는 레지스터, 45는 1문자분의 도트보간처리를 시작할 경우 상기 레지스터(36)의 내용을 선택한 다음 1회의 주주사가 실행될 때마다 가산회로(39)의 출력을 선택하는 데이터셀렉터, 46은 도트보간시 데이터셀렉터(45)에서 선택된 Y성분을 포함한 정수부와 소수부로 표시되는 새로운 도트어드레스를 저장해두는 레지스터, 47은 주주사를 시작할 경우 상기 레지스터(46)의 내용을 선택한 다음 1도트분을 보간처리할 때마다 상기 레지스터(46)의 내용을 선택하는 데이터셀렉터, 48은 도트보간시 데이터셀렉터(47)에서 선택된 Y성분을 포함한 새로운 도트어드레스를 저장하는 레지스터, 49는 상기한 각각의 데이터셀렉터(41)(43)(45)(47)를 제어하는 선택제어회로(SC), 50은 후술하는 보간값과 비교하기 위한 비교값 즉, 임계치(th)를 저장하는 레지스터이다.
또, 참조부호 51은 한자를 포함한 소정 도트매트릭스 단위(예컨데, 24×24도트)의 문자패턴데이터가 격납된 한자패턴데이터(KPM), 52는 한자패턴메모리(51)에서 독출된 1문자분의 도트패턴을 저장할 수 있도록 고속 RAM으로 구성된 1문자버퍼로서, 여기서는 1문자분의 도트패턴 주위를 오프세트 "O"인 비트패턴으로 채운 상태에서 기억하게 된다. 또, 참조부호 53은 1문자버퍼(52)에 저장된 문자패턴데이터중 레지스터(44)(48)의 정수부의 값에 따라 새로운 도트를 둘러싸는 1격자 4점의 도트정보를 선택적으로 출력하는 비트선택회로이고, 54는 비트선택회로(53)에서 출력되는 4비트의 정보를 저장하는 레지스터이다.
또, 참조부호 55 내지 57은 비트선택회로(53)에서 출력되는 도트정보의 패턴을 인식하여 4점의 도트로 둘러싸인 도트보간 값을 선택적으로 절환제어하는 도트패턴인식부(DSP)의 구성요소들인 바, 여기서 55는 레지스터(54)의 비트 내용으로부터 4점의 도트패턴 상태를 인색해서 후술하는 특정도트패턴 상태인 경우 다시 그 주위의 특정한 2격자분의 도트정보를 순차적으로 선택하게 되는 비트선택회로(53)를 제어하는 판단제어회로, 56은 상기 판단제어회로(55)의 제어에 의해 상기 비트선택회로(53)로부터 독출된 4비트 정보를 저장하는 레지스터, 57은 판단제어회로(55)의 제어에 의해 독출된 2격자분의 도트정보와 레지스터(54)의 도트정보의 도트패턴 상태에 따른 1비트 보간값 절환선택신호를 출력하는 도트판단회로이다.
또, 참조부호 58은 레지스터(44)에 저장된 소수부의 값(5비트의 X성분을 포함하는 주주사방향 오프셋트값)과 레지스터(54)에 저장된 4점의 도트정보 및 도트판단회로(57)에서 출력되는 1비트의 보간값 절환선택신호를 입력정보로 이용해서 상기 4점의 도트정보로 둘러싸인 영역내에서 새로운 도트보간값(Qxy)을 출력하는 보간테이블 ROM으로, 여기서는 여기서는 256K 비트(32K×8비트)의 마스크 ROM을 이용해서 상기한 15비트의 독출어드레스에 따라 8비트(0∼255레벨)의 보간값을 출력시키는 것이고, 59는 고간테이블 ROM(58)에서 출력되는 보간값과 레지스터(50)에 저장된 임계값을 비교하는 비교기로서, 보간값이 비교값 즉, 임계값(th)을 넘었을 때 온도트(On Dot; 휘점)를 나타내는 "1"레벨의 신호를 출력하는 것이며, 60은 상기 비교기(59)에서 출력되는 도트정보를 순차적으로 저장하여 메모리의 기록비트단위(여기서는 2비트)로 전개되는 도트정보 즉, 문자패턴을 CPU버스(12)상에 출력하는 시프트레지스터이다.
또, 참조부호 70은 인자할 문자코드 및 문자속성정보를 기억하는 문자정보기억버퍼로서, n개 문자분의 정보클럭(701…)으로 이루어지는데, 상기 문자정보기억버퍼(70)에 대한 정보클럭(701…)의 상세한 설명은 제11도를 참조하여 다음에 설명한다.
또, 참조부호 90은 인쇄방향(양방향/단일방향)을 지정하기 위한 인쇄방향제어플래그(DIRF)로서, 인자헤드를 한번 왕복운동시킴으로써 2행분을 인자하게 되는, 소위 양방향인자모우드를 지정할 경우에만 세트(DIRF="1" )되게 된다.
그리고, 참조부호 91, 92는 인자할 문자의 확대배율이 미리 설정된 기준 확대배율을 초과하게 되어 인자헤드수가 극단적으로 증가하게 됨으로써 인자처리시 소비전력이 규정치를 넘게 되는 결점을 배제하기 위해 설치한 것으로, 도트전개한 패턴의 인자듀티를 조정처리하기 위한 X방향과 Y방향의 조정배율에 대응하는 도트의 인각폭(dx1,dy1)을 저장하는 한쌍의 레지스터이다.
제2도 내지 제10도는 각각 본 발명에 따른 표준규격문자와 함께 인자출력되는 확대문자 또는 변형문자를 구현하기 위한 도트보간처리동작을 설명하기 위한 도면으로, 제2도(a) 내지 제2도(f)는 보간처리에 의해 생성되는 새로운 도트를 둘러싸는 1격자 4점의 도트정보(도트패턴) 및 보간테이블 ROM(58)에 설정된 보간값의 레벨구분과, 테이블형태의 관계를 나타낸 도면으로, 여기서 보간값을 0∼255단계의 휘도(명암레벨)로 표시하고, 구분된 보간값의 일부영역을 등고선으로 표시하였다.
제3도는 상기 1격자 4점의 도트패턴중 1도트만 온 또는 오프 즉, "1" 또는 "0"인 경우 테이블형태의 선택절환에 대한 일례를 설명하기 위한 것으로, 도트패턴인식부(DSP)는 예컨데 주위에 있는 4점의 도트(D0,D1,D2,D3)중 1점만이 오프, 즉 "0"(도면에서 흰색으로 표시한 D0)인 경우, 다시 그 주위 격자의 특정도트(Da,Db)의 오, 오프상태를 인식해서(Da,Db="1"이면 제2도(d)에서 나타낸 바와 같은 코너형태의 테이블(T1)을 선택하게 되고, 또 Da,Db중 적어도 어느 한쪽이 "0"이면 제2도(f)에 나타낸 바와 같은 경사형의 테이블(T0)을 선택하게 된다. 이와같이 4점의 도트영역내에 위치하는 새로운 도트의 보간값은 그 4점의 도트가 상기한 바와 같은 특정한 패턴을 이룰 경우 그 주변의 도트상태에 의해 결정되게 한다.
제4도(a) 내지 제4도(d)는 각종패턴의 변환례를 나타낸 것으로, 도면중 Sm은 주주사방향, Ss는 부주사방향을 각각 나타내는 바, 제4도중 (a)는 표준모양(또는 긴모양, 편평한 모양), (b)는 경사체, (c)는 아래쪽으로 가지런한 경사체, (d)는 회전체를 각각 나타낸 것이다.
제5도는 (a)와 제5도(b)는 도트보간처리의 출력대상, 즉 이미지출력대상과 그때의 도트보간시 주주사방향(Sm) 및 부주사방향(Ss)의 관계를 설명하기 위한 도면으로, 제5도(a)는 CRT에 표시할 경우 도트보간시에 대한 주주사 및 부주사의 방향을 나타낸 것이고, 제5도(b)는 프린트아웃할 경우 도트보간시에 대한 주주사 및 부주사방향을 각각 나타낸 것이다.
이와같이 CRT에 표시해서 출력할 경우의 도트보간처리와, 프린트아웃할 경우의 도트보간처리는 주주사방향과 부주사방향이 서로 바뀐 상태로 된다.
제6도는 각종 설정데이터의 대응관계를 나타낸 도면이고, 제7도는 도트보간처리에 의해 패턴변환된 문자와 외접하는 직사각형(정사각형을 포함)의 관계를 나타낸 도면, 제8도는 각종 변형문자에 대한 문자피치(CP) 및 행피치(LP)의 설정예를 나타낸 도면, 제9도는 각종 변형문자에 대한 밑줄의 전개예를 나타낸 도면, 제10도는 존(ZONE)지정동작을 설명하기 위한 도면이다. 그리고 제11도는 상기 제1도에 나타낸 문자정보기억버퍼(70)의 정보출력(701…)을 상세히 나타낸 것으로, 도면중 80은 정보클럭(701) 자체의 상태를 나타내는 플래그(CNTFi)을 저장하는 플래그부, 81은 인자문자코드(CODEi)를 저장하는 코드부, 82는 다음에 전개될 존의 값(ZONEi)을 저장하는 존지정부, 83은 인자헤드의 상단과 인자한 문자도트의 하단의 상대거리(dHi)를 나타내는 상대거리기억부, 84는 라인버퍼(13)의 기록개시어드레스(dPi)를 나타내는 포인터부, 85,86은 문자의 확대 및 축소배율에 따른 도트인각폭(dXi,dYi)을 저장하는 인각폭기억부, 87은 예컨데 회전문자를 얻을 경우 회전각도정보등 문자변형의 속성정보(ATRi)를 저장하는 속성정보기억부이다.
제12도 및 제13도는 각각 본 발명의 1실시예에 따른 표준규격문자와 상기 도트보간처리에 의해 얻어진 확대 또는 변형문자를 혼합시켜 인자하는 동작을 설명하기 위한 것으로, 제12도는 직렬프린터(14)에 대한 인자헤드와 전개된 문자도트 하단의 상대거리(dH)를 설명하기 위한 것으로, 도면중 참조부호 le는 용지송출량이고, 도면중 ①에 나타낸 상대거리(dH)는 확대문자의 최초의 존을 인자한 직후의 사태로서 dh=1h이며, ②에 표시한 상대거리(dH)는 상기 ① 다음에 일정한 용지송출폭(le)만큼 용지송출을 실행한 상태로서 dH=lh-le(단, le≤lh일때)로 된다.
제13도는 표준규격문자와 확대 또는 변형된 문자가 혼합하여 존재할 경우의 인자예를 나타낸 것으로, 여기서 표준규격문자(100…)와, 이와같은 표준규격문자를 세로로 2배, 가로로 2배의 크기로 확대한 확대문자(200…)를 중간에 섞어서 인자한 경우의 인자예를 나타낸 것이다.
제14도는 상기한 실시예에서의 LF(용지송출의 실행)처리를 나타낸 플로우챠트이고, 제15도는 CR(인자개시)의 처리를 나타낸 플로우챠트이다.
제16도는 문자를 이미지전개하는 처리과정을 상세하게 나타낸 플로우챠트로서, 상기한 제14도에서의 ※1 및 제15도에서의 ※2의 처리부분에 해당한다.
이하, 본 발명의 1실시예에 대한 동작을 상세히 설명한다.
먼저, 확대 또는 변형문자와 표준규격문자가 섞인 문자에 대한 인자제어의 동작설명에 있어서, 제1도 내지 제10도를 참조해서 상기한 확대 또는 변형문자와 표준규격문자가 섞인 문자의 위치대상으로 되는 확대 또는 변형문자패턴을 얻기 위한 도트보간처리 동작에 대해 설명한다.
먼저, 인자해야 할 문자코드열이 이들 각 코드에 부수되는 속성정보와 함께 외부에서 입력됨으로써 이들 각 정보가 CPU(10)의 제어하에 1문자단위로 문자정보기억버퍼(70)내의 정보블럭(701…)에 세트된다. 즉, 정보블럭(701…)중 문자코드부(81)에 인자해야 할 문자코드(CODE)가 세트되고, 속성정보기억부(87)에 속성정보(ATR)가 세트됨과 더불어 제어플래그부(80)가 세트되어 데이터세트 상대를 표시하게 된다. 또, 상기한 문자코드열 및 그 코드에 따른 속성정보를 제외한 임계값(th; 보간테이블 ROM(58)에서 생성되는 보간값과 비교하기 위한 비교값), 또는 상기 각 문자코드에 대한 문자패턴의 확대·축소배율등의 각종 도트보간지정 정보는 주기억장치(11)의 미리 정해진 작업영역에 저장된다. 또, 도트보간에 있어서, CPU(10)의 외부로부터 입력된 도트보간지정정보에 따라 문자정보기억버퍼(70)내의 제어플래그부(80)에 세트되어 있는 각 정보블럭(701…)의 제어데이터를 작성하고, 정보블럭(701…)의 내용을 기초로 전개할 1문자를 단위로 하는 도트보간을 위한 가공 레지스터의 초기설정을 수행하게 된다.
즉, CPU(10)는 보간테이블 ROM(58)에서 생성되는 보간값을 비교하기 위한 비교값, 즉 임계값(th)을 레지스터(50)에 세트시킨 후, 지정된 확대·축소배율에 따라 기준이 되는 도트인각폭(dx,dy; 확대·축소 배율의 역수값)을 산출하고, 이것을 문자정보기억버퍼(70)내의 대응하는 정보블럭(701…)의 인각폭기억부(85)(86)에 세트시키며, 또 CPU(10)는 문자정보기억버퍼(70)에서 최초로 전개해야 할 1문자분의 정보블럭(701…)을 취출해서 그 속성정보기억부(87)의 속성정보가 회전체 또는 경사체와 같은 문자변형을 나타내고 있을 경우, 그 지정각도에 따른 삼각함수데이터(sin,cos,tan)를 삼각함수테이블(24)에 세트시킨다.
그 후, 레지스터(26)(27) 및 삼각함수테이블(24)에 설정되어 있는 데이터(sin,cos,tan)를 기초로 도트보간어드레스를 생성하기 위한 초기치(이니셜어드레스 Xl init, Yl init) 및, 도트인각폭(DX1,DY1,DX2,DY2)을 산출해서 이들 데이터를 레지스터(31∼36)에 세트시킴과 동시에 확대, 회전등의 패턴변환에 의해 발생되는 문자높이, 문자폭의 변동에 따른 종폭과 횡폭의 각 데이터(Vsize,Hsize)를 산출하여 이들을 레지스터(21)(22)에 세트시키고, 또 존분할이 발생될 경우 그 존의 수를 산출하여 그 데이터를 레지스터(25)에 세트시킨다. 또한, 도트보간된 문자의 출력시 1∼7도트의 범위에서 이동시킬 경우(예컨데, 도트보간된 최소(ruby)문자, 표준규격문자의 절반크기문자등을 프린트아웃시킬 때 1∼7도트의 범위내에서 상하로 이동시킬 경우등), 또는 패턴변환된 문자의 주주사방향도트수가 그 출력대상으로 되는 이미지메모리의 기록폭(8도트)의 배수로 되지 않고 이미지메모리측의 바이트경계(기록폭)와 일치시킬 필요가 발생될 경우등에 있어서는 오프세트용의 레지스터(28)에 1∼7도트의 범위내에서 오프세트 값이 세트된다.
또, 상기 도트보간처리를 위한 각종 데이터의 설정 이외의 인쇄처리를 위한 제어데이터로서 인쇄방향제어플래그(90)에는 양방향/단일방향의 인자모우드를 지정하기 위한 정보(DIRF)가 설정됨과 더불어, 레지스터(91)(92)에는 도트전개된 패턴의 인자듀티의 조정처리 대상으로 되는 기분배율에 대응되는 도트인각폭(dxL,dyL)이 설정된다.
여기서 인자헤드가 1회 왕복운동으로 2행분의 인자를 수행하는 소위, 양방향인자모우를 지정할 경우에만 인쇄방향제어플래그(90)에 DIRF가 "1"로 세트되고, 또 레지스터(91)(92)에는 확대문자의 인자도트수가 너무 많아지게 되어 인자처리시의 소비전력이 규정치를 넘는 일이 없도록 인자도트수를 조정(즉, 인자도트수를 줄임)하기 위해 미리 설정된 인자듀티조정처리를 수행하는 기준조정배율에 대응하는 도토인각폭(dxL, dyL)이 세트된다.
상기한 바와 같은 각 레지스터의 초기설정을 종료한 후, CPU(10)는 다음과 같은 도트보간어드레스 생성처리를 개시한다.
여기서는, 먼저 도트보간이 제4도(a)에 나타낸 바와 같은 표준모양(또는 긴모양, 편평한 모양을 출력대상으로 수행하는 경우(일례로 단순한 확대, 축소)를 예를들어 전체의 동작을 설명한다.
이러한 도트보간시에는 레지스터(31)에「O」, 레지스터(32)에 도트인각폭「dx」, 레지스터(33)에 주주사방향(Sm)의 초기치「Sx」, 레지스터(34)에 도트인각폭「dy」, 레지스터(35)에 「O」, 레지스터(36)에 부주사방향(Ss)의 초기치「Sy」가 각각 세트된다.
여기서 상기 레지스터(33)(34)에 세트된 도트인각폭(dx,dy)은 확대, 축소배율의 역수값으로 인가되고, 또 레지스터(33)에는 [lx=(dx-1)/2]인 lx가 초기치(Sx)로서 인가되고, 레지스터(36)에는 [ly=(dy-1)/2]인 ly가 초기치(Sy)로서 인가되는 바, 여기서 dx 또는 dy가 「1」이하인 경우(즉, 확대시)에는 lx 또는 ly가 부(負)로 되어 1문자버퍼(52)의 원문자패턴격납영역(原文子 pattern 格納領域)외의 어드레스를 나타내고, dx 또는 dy가 1이상인 경우(즉, 축소시)에는 lx 또는 ly가 정(正)으로 되어 1문자버퍼(52)의 원문자패턴격납영역내의 어드레스를 나타낸다. 또 레지스터(50)에서는 보간테이블 ROM(58)으로부터 출력되는 보간값과 비교해서 새로운 도트중 어느 레벨 이상의 도트를 의미가 있는 도트로 할 것인가를 결정하기 위한 임의 레벨의 비교값, 즉 임계값(th)이 세트된다.
또, CPU(10)는 상기 문자정보기억버퍼(70)에서 취출된 최초 1문자분에 대한 정보블럭(701)중 문자코드부(81)의 문자코드(CODE1)에 따라 한자패턴메모리(51)로부터 도트보간 대상으로 되는 1문자분의 도트패턴데이터를 독출하고, 이 문자패턴데이터를 1문자버퍼(52)에다 기록한다. 이때, 1문자버퍼(52)에는 상기한 바와 같이 도트보간 대상으로 되는 1문자분의 도트패턴데이터가 그 주위를 의미가 없는 "0"의 도트로 둘러싼 상태로 기억된다.
상기 레지스터(31∼36)에 대한 데이터세트 및 1문자버퍼(52)에 대한 보간대상문자패턴의 취출이 종료된 후, 선택제어회로부(49)의 제어하에 레지스터(33)(36)에 저장된 이니셜도트어드레스데이터(Sx,Sy)가 데이터셀렉터(41)(45)에 의해 선택되어 각각 대응하는 레지스터(42)(46)에 저장되고, 또 주주사의 개시에 있어서 상기 레지스터(42)(46)에 저장된 데이터(Sx,Sy)가 데이터셀렉터(43)(47)에 의해 선택되어 각각 대응하는 레지스터(44)(48)에 저장되며, 이 레지스터(44)(48)에 저장된 데이터(Sx,Sy)는 그 정수부의 값이 비트선택회로(53)에 공급되면서 소수부의 값이 보간테이블 ROM(58)에 공급되게 된다.
상기 비트선택회로(53)는 상기 입력된 정수부의 값을 기초로 1문자버퍼(52)로부터 1격자 4점의 도트정보를 선택해서 보간테이블 ROM(58)에 공급하는 바, 이때 확대시(dx,dy〈1)에는 비트선택회로(53)에 1문자버퍼(52)의 원문자패턴격납영역외의 어드레스를 나타내는 부(負)의 값이 공급되므로 원문자패턴격납영역외의 도트를 포함하는 1격자 1점의 도트정보로부터 도트선택을 개시한다. 또, 축소시(dx,dy〈1)에는 비트선택회로(53)에 1문자버퍼(52)의 원문자패턴격납영역내의 어드레스를 나타내는 정(正)의 값이 공급되므로 원문자패턴격납영역내의 1격자 4점의 도트정보로부터 도트선택을 시작한다.
한편, 보간테이블 ROM(58)은 상기 레지스터(44)(48)로부터의 각 오프세트값(합계 10비트)과 비트선택회로(53)에서의 주변 4점에 대한 도트정보 및 도트패턴인식부(DSP)에서의 1비트의 보간값 절환선택신호를 입력정보로 사용하여 그 내용에 따라 8비트의 보간값(Qxy)을 출력시키게 되는데, 이때 비트선택회로(53)에서 출력된 1격자 4점의 도트패턴이 도트패턴인식부(DSP)에 의해 인식되어, 제3도에 나타낸 바와 같이 특정 도트패턴일 경우 다시 그 주위 격자에 대한 특정도트의 온·오프상태를 인식해서 그 도트상태에 따른 1비트의 보간값 절환선택신호를 출력시킨다. 즉, 예컨대 제3도에 나타낸 바와 같이 주변 4점의 도트(D0,D1,D2,D3)중 1점만이 오프, 즉"0"(도면에 흰색으로 표시한 D0)일때는 다시 그 주변의 격자에 대한 특정도트(Da,Db)의 온·오프상태를 인식해서
Da, Db="1"이면 제2도(d)에 나타낸 바와 같은 코너형(corner type)테이블(T1)을 선택하고, 또 Da,Db중 적어도 어느 한쪽이 "0"이면 제2도(f)에 나타낸 바와 같은 경사형 테이블(T0)을 선택하게 되는 보간값 절환선택신호를 출력시킨다.
또, 주변 4점의 도트(D0,D1,D2,D3)중 1점만이 온, 즉"1"(도면에서 흑색표시의 D0)일 경우 다시 그 주변격자의 특정도트(Da,Db)에 대한 온·오프상태를 인식해서 Da,Db="0"이면, 제2도(a)에 나타낸 바와 같은 코너형 테이블(T1)을 선택하고, 또, Da,Db중 적어도 어느 한쪽이 "1"이면 제2도(e)에 나타낸 바와 같이 경사형 테이블(T0)을 선택하게 되는 보간값 절환선택신호를 출력시킨다. 이와 같이 4점의 도트영역내에 위치하는 새로운 도트에 대한 보간값은 그 4점의 도트가 상기한 바와 같은 특정패턴으로 될 경우 그 주위의 도트상태에 의해 결정된다. 그리고 상기 보간테이블 ROM(58)으로부터 출력되는 8비트(0∼255레벨)의 보간값은 비교기(59)에 입력되어 레지스터(50)에 저장된 비교값, 즉 임계값(th)과 비교되는데, 비교기(59)는 보간값이 임계값(th)을 넘으면 의미있는 도트를 나타내"1"레벨을 출력하고, 보간값이 임계값(th)을 넘지 않았으면 의미없는 도트를 나타내는"0"레벨을 출력하게 된다.
한편, 보간테이블 ROM(58)으로부터 1도트의 보간값이 출력된후, 레지스터(44)의 내용과 레지스터(32)의 내용이 가산회로(38)에 의해 가산됨과 더불어 레지스터(48)의 내용과 레지스터(35)의 내용이 가산회로(40)에 의해 가산되고, 그 가산결과에 따른 데이터가 선택제어회로(49)의 제어를 기초로 각각 대응되는 데이터셀렉터(43)(47)에 의해 선택되어 레지스터(44)(48)에 저장된다. 이때 주주사방향의 도트인각폭을 나타내는 레지스터(32)(35)중 레지스터(32)에는 지정된 확대·축소배율에 따라 도트인각폭(dx)이 설정되고, 레지스터(35)에는 표준모양(또는 긴모양, 편평한 모양)의 도트보간이란 점에서 상기한 바와 같이 「0」이 설정되어 있게 됨에 따라, 레지스터(44)에의 내용(도트어드레스)은 1도트보간처리때마다 지정된 확대·축소배율에 따른 도트인 각폭으로 차례로 갱신되지만, 레지스터(48)의 내용은 결과적으로 갱신되지 않고 초기설정시의 데이터가 그대로 유지된다. 또, 1회의 주주사종료시마다 레지스터(42)의 내용과 레지스터(31)의 내용이 가산회로(37)에 의해 가산됨과 더불어 레지스터(46)의 내용과 레지스터(34)의 내용이 가산회로(39)에 의해 가산되며, 그 가산결과에 따른 데이터가 선택제어회로(49)의 제어에 따라 각각 대응되는 데이터셀렉터(41)(45)에 의해 선택되어 레지스터(42)(46)에 저장된다. 이때, 부주사방향의 도트인각폭을 나타내는 레지스터(31)(34)중 레지스터(34)에는 지정된 확대·축소배율에 따른 도트인각폭(dy)이 설정되어 있지만, 레지스터(31)에는 표준모양(또는 긴모양,편평한 모양)에 대한 도트보간이기 때문에 상기한 바와 같이「0」이 설정되어 있게 됨에 따라 레지스터(46)의 내용(도트어드레스)은 1회의 주주사가 실행될 때마다 지정된 확대·축소배율에 따른 도트인각폭(dy)을 갖추고서 갱신되지만, 레지스터(42)의 내용은 결과적으로 갱신되지 않고 초기설정시의 데이터가 그대로 유지된다.
이와 같이 하여, 차례로 보간테이블 ROM(58)에서 새로운 도트어드레스에 대한 보간값이 순차적으로 출력되고, 이 보간값이 비교기(59)에 의해 레지스터(50)의 임계값(th)과 비교되어 새로운 도트정보가 생성된다.
그리고, 상기 비교기(59)에서 출력된 보간처리후의 새로운 도트정보는 순차적으로 시프트레지스트(60)에 저장되었다가 1바이트단위로 CPU버스(12)상으로 송출되는데, 이때 CPU버스(12)상으로 송출되는 도트보간 처리된 문자패턴데이터가 프린트아웃용으로 라인버퍼(13)에 기록되는 경우이면서 오프세트레지스터(28)에 1∼7도트범위내의 오프세트값이 세트되어 있는 경우[예컨대, 도트보간된 취소(ruby)문자의 프린트아웃시에 i(i=1,2,…7)도트 아래쪽으로 이동시키는 경우]와, 또는 패턴변환된 문자의 주주사방향의 도트수가 그 출력대상으로 되는 이미지메모리의 기록폭(8비트)의 배수로 되지 않고, 이미지메모리측의 바이트경계(기록폭)와 일치시킬 필요가 발생되며, 오프세트레지스터(28)에 그 오프셋트값(i)이 설정되어 있는 경우등에 있어서는 그 오프세트레지스터(28)의 오프셋값(i)에 따라 오프세트데이터생성부(29)로부터 오프세트데이터(i개의 "0")가 생성되어 해당 데이터가 주주사를 시작하기전에 시프트레지스터(60)에 세트되고, 그 후 계속해서 도트보간된 데이터, 즉 변환처리된 문자패턴도트가 기록된다.
상기한 동작은 표준모양(또는 긴모양, 편평한 모양)을 출력대상으로 샐행한 경우이지만, 예컨대 회전체를 출력대상으로 한 경우의 도트보간어드레스의 생성처리시에 있어서는, 레지스터(31∼36)전체에 지정회전각에 따른 삼각함수테이블(24)내의 삼각함수데이터가 하나의 요소로서 포함되는 데이터가 세트되게 된다.
즉, 지정된 회전각율 「θ0」, 원래 폰트의 X방향도트수를 [a+1], 원래 폰트의 Y방향도트수를 [b+1]로 하고, 제18도 및 제19도를 참조하여 각 레지스터(31,32,34,35)에 세트되는 도트인각폭을 구하면 다음과 같이 된다.
(단, θ=θ°+90°, Sx=dx=1/Ax, Sy=dy=1/Ay)
먼저, 제18도에서 각 직선에 대한 식은,
ㄱ; y=(Ax/Ay)(tanθ)·x …(1)
ㄴ; y=(-Ax/Ay)(1/tanθ)(x-a) …(2)
ㄷ: y=(Ax/Ay)(tanθ)x+b …(3)
ㄹ; y=(-Ax/Ay)(1/tanθ)x+b …(4)
로 된다.
여기서 P11, P14, P12의 교점의 좌표를 구하면,
P11(x,y) x=acos2θ …(5)
y=(Sy/Sx)a·sinθ·cosθ …(6)
P14(x,y) x=(Sx/Sy)b·sinθ·cosθ …(7)
y=bsin2θ …(8)
P12(x,y) x=a-(Sx/Sy)bsinθ·cosθ …(9)
y=bcos2θ …(10)
로 된다.
그리고, 제19도에서 회전된 패턴에 외접하는 직사각형의 세로변과 가로변의 길이는 다음과 같이 된다.
즉, 가로변=aAxcosθ0+bAysinθ0
=aAxsinθ-bAycosθ
세로변=aAxsinθ0+bAycosθ0
=-aAxcosθ+bAysinθ
여기서 각 레지스터에 세트되는 도트인각폭를 구하면, 다음과 같이 된다.
먼저,
DX2=L1x/외접하는 직사각형의 세로변
=P14(x)-P11(x)/(-aAxcosθ+bAysinθ)
={(Ay/Ax)·bsinθ·cosθ-acos2θ}/(-aAxcosθ+bAysinθ)
=(1/Ax)cosθ
=(1/Ax)cos(θ0+90°)
=-(1/Ax)sinθ0
=-Sx·sinθ0
=-dx·sinθ0…(11)
마찬가지로,
DY2=L1y/외접하는 직사각형의 세로변
=(1/Ay)sinθ
=(1/Ay)cosθ0
=Sy·cosθ0
=dy·cosθ0…(12)
DX1=k1x/외접하는 직사각형의 가로변
=(1/Ax)sinθ
=(1/Ax)cosθ0
=Sx·sinθ0
=dx·sinθ0…(13)
DY1=k1y/외접하는 직사각형의 가로변
=-(1/Ay)cosθ
=(1/Ay)sinθ0
=Sy·sinθ0
=dy·sinθ0…(14)
따라서,
레지스터(31)에는 DX1=dx·cosθ0
레지스터(32)에는 DX2=-dx·sinθ0
레지스터(34)에는 DY1=dy·sinθ0
레지스터(35)에는 DY2=dy·cosθ0
로 되는 도트인각폭이 각각 세트된다.
한편, 제20도를 참조하여 각 회전상태에 따른 각 레지스터(33,36)의 이니셜어드레스의 설정치를 구하면 다음과 같이 된다.
먼저, 제20도에 있어서 각 직선은,
L11; y=(Ax/Ay)(tanθ)(x+Bx)-By
L12; y=(-Ax/Ay)(1/tanθ)(x-a-Bx)-By
L13; y=(Ax/Ay)tanθ(x-Da,DbBx)+{b-(Ax/Ay)atanθ+By}
L14; y=(-Ax/Ay)(1/tanθ)(x+Bx)+b+By
로 되고, (1) 0℃≤θ0≤90°인 경우, 각 레지스터(33,36)의 설정값은 직선L11,L12의 교점으로서 구해지게 된다.
L11; y=(Ax/Ay)(tanθ)(x+Bx)-By …(15)
L12; Y=(-Ax/Ay)(1/tanθ)(x-a-Bx)-By …(16)
(단, Bx=(1/2))1-Sx), By=(1/2)(1-Sy), Ax=1/Sx=1/dx, Ay=1/Sy=1/dy이다)이므로, 여기서, 식(15)와 식(16)의 교점을 구하면,
(tanθ)(x+Bx)=(1-tanθ)(x-a-Bx)
(tan2θ)(x+Bx)=-(x-a-Bx)
x=(1/1+tan2θ)(a+Bx-Bxtan2θ)
=(a+Bx)cos2-Bxsin2θ
=(a+2Bx)cos2θ-Bx
=(1/2)(a+2Bx)(1+cos2θ)-Bx
=(1/2)a+(1/2)(a+1-Sx)cos2θ
=(1/2)a-(1/2)(a+1-Sx)cos2θ0
=(1/2)a-(1/2)(a+1-dx)cos2θ0…(17)
식(17)을 식(15)에 대입하면,
y=(Ax/Ay)(tanθ)(a+2Bx)cos2-By
=(1/2)(Ax/Ay)(a+2Bx)sin2θ-By
=(-1/2)(1-Sy)+(1/2)(Sy/Sx)(a+1-Sx)sin2θ
=(-1/2)(1-Sy)-(1/2)(Sy/Sx)(a+1-Sx)sin2θ0
=(-1/2)(1-dy)-(1/2)(a+1-dx)(dy/dx)·sin2θ0…(18)
로 된다.
따라서, 0°≤90°인 경우, 각 레지스터(33,36)의 이니셜어드레스의 설정치로서,
XLinit=(1/2)a-(1/2)(a+1-dx)cos2θ0
YLinit=(-1/2)(1-dy)-(1/2)(a+1-dx)(dy/dx)·sin2θ0
가 세트된다.
마찬가지로, (2) 90°≤θ0≤180°인 경우
L21; y=(Ax/Ay)(tanθ)(x-a-Bx)-By …(19)
L22; y=(-Ax/Ay)(1/tanθ)(x-Bx)+{b+(Ax/Ay)·a/tanθ+By) …(20)
로 되고, 여기서 식(19)와 식(20)의 교점을 구하면,
x=(a+1-Sx)+(1/2)(Sx/Sy)(b+1-Sy)sin2θ
=(a+1-Sx)-(1/2)(Sx/Sy)(b+1-Sy)sin2θ0
=(a+1-dx)-(1/2)(b+1-dy)(dx/dy)sin2θ0…(21)
y=(1/2)b-(1/2)(b+1-Sy)cos2θ
=(1/2)b+(1/2)(b+1-Sy)cos2θ0
=(1/2)b+(1/2)(b+1-dy)cos2θ0…(22)
로 된다.
따라서, 90°≤θ0≤180°인 경우, 각 레지스터(33,36)의 이니셜어드레스의 설정치로서,
XLinit=(a+1-dx)-(1/2)(b+1-dy)(dx/dy)sin2θ0
YLinit=(1/2)b+(1/2)(b+1-dy)cos2θ0
가 세트된다.
또, (3) 180°≤θ0≤270인 경우,
L31; y=(Ax/Ax)(tanθ)(x-Bx)+{b-(Ax/Ay)atanθ+By} …(23)
L32; y=(-Ax/Ay)(1/tanθ)(x+Bx)+(bBy) …(24)
로 되고, 여기서 식(23)과 식(24)의 교점을 구하면,
x=(1/2)a-(1/2)(a+1-Sx)cos2θ
=(1/2)a+(1/2)(a+1-Sx)cos2θ0
=(1/2)a+(1/2)(a+1-dx)cos2θ0…(25)
y=b+(1/2)(1-Sy)-(1/2)(Sy/Sx)(a+1-Sx)sin2θ
=b+(1/2)(1-Sy)+(1/2)(Sy/Sx)(a+1-Sx)sin2θ0
=b+(1/2)(1-dy)+(1/2)(a+1-dx)(dy/dx)sin2θ0…(26)
로 된다.
따라서, 180°≤θ0≤270°인 경우, 각 레지스터(33,36)의 이니셜어드레스의 설정치로서
XLinit=(1/2)a+(1/2)(a+1-dx)cos2θ0
YLinit=b+(1/2)(1-dy)+(1/2)(a+1-dx)(dx/dy)sin2θ0
가 세트된다.
또, (4) 270°≤θ0≤370°인 경우,
L41; y=(Ax/Ay)(tanθ)(x+Bx)+(b+By) …(27)
L41; y=(-Ax/Ay)(1/tanθ)(x+Bx)-By …(28)
로 되고, 여기서 식(27)과 식(28)의 교점을 구하면,
x=(-1/2)(1-Sx)-(1/2)(b+1-Sy)(Sx/Sy)sin2θ
=(-1/2)(1-Sx)+(1/2)(b+1-Sy)(Sx/Sy)sin2θ0
=(-1/2)(1-dx)+(1/2)(b+1-dy)(dx/dy)sin2θ0…(29)
y=(1/2)b+(1/2)(b+1-Sy)cos2θ
=(1/2)b-(1/2)(b+1-Sy)cos2θ0
=(1/2)b-(1/2)(b+1-dy)cos2θ0…(30)
로 된다.
따라서 270°≤θ0≤360°인 경우, 각 레지스터(33,36)의 이니셜어드레스의 설정치로서
XLinit=(-1/2)(1-dx)+(1/2)(b+1-dy)(dx/dy)sin2θ0
YLinit=(1/2)b-(1/2)(b+1-dy)cos2θ0
가 세트된다.
상기한 바와 같이 하여 회전각도(θ0)에 따른 삼각함수데이터를 포함한 도트인각폭과 이니셜어드레스등의 각 설정치(DX1,DX2,DY1,DY12,XLinit,YLinit)를 산출하여 각각 대응하는 레지스터(31∼36)에 세트시킨 후, 상기한 바와 같이 주주사방향 및 부주사방향에 개한 도트보간어드레스생성처리를 순차적으로 실행함에 따라 지정된 회전각도θ0)에 따른 회전문자패턴도트가 얻어지게 된다.
또, 경사형 문자를 출력대상으로 했을 경우, 도트보간어드레스를 생성처리할 때는 레지스터(31∼36)중 특정레지스터에 지정경사각에 따른 삼각함수테이블(24)내의 소정 삼각함수데이터를 하나의 요소로서 포함한 데이터가 세트된다.
즉, 지정된 경사각을 「θ0」, 원래 폰트의 X방향도트수를 [a+1], 원래 폰트의 Y방향도트수를 [b+1]로 하고, 제21도 및 제22도를 참조하여 경사상태에 따른 각 레지스터(33,36)의 이니셜어드레스의 설정치(XLinit,YLinit) 및 각 레지스터(31,32,34,35)의 도트인각폭(DX1,DX2,DY1,DY2)을 산출하면 다음과 같이 된다.
먼저, 제21도에 있어서, 각 직선은,
ㅁ; y=-By …(31)
ㅂ; y=(Ax/Ay)(tanθ)(x+Bx)+(b+By) …(32)
로 되고, 각 직선(ㅁ,ㅂ)의 교점 P1(x,y)은
x=(-1/2)(1-Sx)-(b+1-Sy)(Sx/Sy)(1/tanθ) …(33)
y=(-1/2)(1-Sy) …(34)
로 된다. 여기서, θ를 θ0로 변환하면,
x=(-1/2)(1-Sx)-(b+1-Sy)(Sx/Sy)tanθ0
=(-1/2)(1-dx)-(b+1-dy)(dx/dy)tanθ0…(35)
y=(-1/2)(1-Sy)
=(-1/2)(1-dy) …(36)
로 된다. 따라서, 레지스터(33)에는
XLinit=(-1/2)(1-dx)-(b+1-dy)(dx/dy)tanθ0
가 세트되고, 레지스터(36)에는
YLinit=(-1/2)(1-dy)가 세트된다.
한편, 각 레지스트(31,32,34,35)에 세트되는 도트인각폭(DX1,DX2,DY1,DY2)은 다음과 같이 된다.
제22도에 있어서, 주주사방향에 대한 도트인각폭은,
DX2=Jx/외접하는 직사각형의 세로변
=Jx/Ayb
={b·(Sx/Sy)·tanθ0}/Ayb
=Sx·tanθ0
=dx·tanθ0…(37)
DY2=Sy
=dy …(38)
로 된다. 한편, 부주사방향은 X축에 평행하므로,
DY=Sx=dx …(39)
DY=0 …(40)
로 된다. 따라서, 0°≤θ0≤90°의 범위에서
레지스터(31)에는 DX1=dx
레지스터(32)에는 DX2=dx·tanθ0
레지스터(34)에는 DY1=0
레지스터(35)에는 DY2=dy
가 각각 세트된다.
상기한 바와 같이 하여 경사각도(θ0)에 따른 삼각함수데이터를 포함하는 도트인각폭과 이니셜어드레스등의 각 설정치(DX1,DX2,DY1,DY2,XLinit,YLinit)를 산출하여, 각각 대응되는 레지스터(31∼36)에 세트시킨후, 상기한 바와 같이 주주사방향 및 부주사방향에 대한 도트보간어드레스생성처리를 순차적으로 실행함으로써 지정된 경사각도(θ0)에 따른 경사형태화된 경사문자패턴도트가 얻어지게 된다.
상기한 바와 같이, 지정각도(θ0)에 따른 삼각함수데이터를 포함한 도트인각폭과 이니셜어드레스등의 각설정치(DX1,DX2,DY1,DY2,XLinit,YLinit)를 기초로 상기한 주주사방향 및 부주사방향에 대한 도트보간어드레스생성처리를 순차적으로 실행하여 그 생성된 도트보간어드레스를 기초로 새로운 도트정보를 얻게 된다.
이 새로운 도트정보는 상기와 마찬가지로 순차적으로 시프트레지스터(60)에 저장되고, 바이트(8비트)단위로 CPU버스(12)를 경유하여 출력대상으로 되는데, 예컨데 인자제어부(17)의 라인버퍼(13)에 기록되게 된다.
이때, 라인버퍼(13)는 통상의 인자문자크기의 도트구성에 대응하는 비트폭(일례로 8×3=24도트)으로 구성됨에 따라 상기한 바와 같은 회전체문자, 경사체문자등의 변형문자에 대해서는 축소패턴인 경우를 제외하고 24도트의 크기로는 받아 들여지지 않게 된다.
따라서 이와 같은 경우에 상기한 레지스터 초기치 설정시에 새롭게 생성된 문자패턴을 복수의 존으로 나누어야 하는 바, CPU(10)가 지정된 변환문자체 및 각도, 확대·축소배율등을 기초로 변환된 문자에 대해 존수(ZONE數)를 산출하고, 이 존수를 나타내는 데이터를 존지정용 레지스터(25)에 세트시키며, 존단위의 패턴을 기록할 때마다 상기 레지스터(25)의 내용을 감소(-1)시켜 그 니용이 「0」이 될 때까지 각 존의 패턴데이터를 동일문자페턴으로 취급한다. 즉, 존지정용 레지스터(25)에 의해 지정된 존에 대해서는 그 각 패턴간에 공백영역(즉, 행간격)을 두지 않고 연속된 도트인자지정을 수행한다. 이때, 존분할의 일례를 제10도에 나타냈다.
상기 존수의 산출수단은 제6도 및 제7도에 나타낸 바와 같이 지정된 회전각도/경사각도/확대·축소배율등으로 변화(변형)된 문자에 대해 외접하는 X,Y방향의 직사각형(정사각형포함)의 크기를 구하고, 그 사각형의 상호 접하는 2변의 각 도트수(X,Y도트수)를 구하여 이것을 상기한 레지스터 초기설정시에 세로폭(Vsize), 가로폭(Hsize)의 데이터로 레지스터(21)(22)에 세트시킴으로써 용이하게 인식할 수 있게 된다. 즉, 소정각도를 갖추고서 변환된 문자에 대해서는 그 문자의 기록(취급)이 해당문자에 외접하는 수평, 수직선상의 직사각형의 영역을 기초로 실행되는 바, 예컨대 프린트아웃시의 도트보간처리를 할 때에는 레지스터(22)에 저장된 가로폭(Hsize)의 데이터를 라이버퍼(13)의 비트폭「24」로 나눔으로써 상기 존수를 용이하게 구할 수 있으며, 또 표시출력시 도트보간처리를 할 때에는 레지스터(21)에 저장된 세로폭(Vsize)의 데이터를 1표시행의 비트폭「24」로 나눔으로써 존수를 용이하게 구할 수 있게 된다. 또, 상기 존지정용 레지스터(25)에 임의의 존지정데이터를 고정적으로 부여함에 따라 지정된 동일 존의 이미지를 연속적으로 반복하여 이미지전개할 수 있게 된다.
이에 따라 상기 도트보간처리에 의해 변형된 문자패턴을 다시 그 일부 또는 전부를 용장화(冗長化), 즉 변형된 도트데이터를 다시 다른 원하는 문자패턴으로 변형시켜 새로운 도트데이터로 이루어진 추가된 변형문자패턴으로 인자출력할 수도 있게 된다.
또, 상기한 세로폭과 가로폭의 데이터는 문자피치의 설정시와 밑줄/옆줄처리시등에 있어서도 참조로 된다.
즉, 상기한 바와 같이 주사방향에 임의의 경사각도를 갖춘 도트보간에 의해 얻어지는 경사형상, 회전등의 문자는 그 문자전체의 높이(문자높이) 및 폭(문자폭)이 경사각도와 그에 부가된 확대·축소배율등에 의해 여러 가지로 변화되게 된다. 따라서 상기한 바와 같은 변형문자를 통상의 행과 자리수방향(X,Y방향)으로 이미지출력한 경우, 문자피치 또는 밑줄/옆줄등을 기존의 고정적인 파라메터지정수단으로 결정할 수 있게 된다. 그리고, 여기에서는 문자피치 또는 밑줄/옆줄등의 각 처리에 대해서도 상기한 바와 같은 외접하는 직사각형을 문자의 보디페이스(body face)로서 취급하게 되는데, 이하, 이들의 처리수단에 대해 상세히 설명한다.
먼저, 문자피치의 처리동작을 설명하면, 상기한 바와 같이 1문자분의 도트보간처리가 실행되고, 그 새롭게 생성된 1문자분의 도트이미지가 출력대상으로 되는, 예컨대 인자제어부(17)내의 라인버퍼(13)에 전개될(기록될)때마다 CPU(10)는 레지스터(21)의 내용(Vsize)이 생성되었는가를 판단하게 된다. 그리고, 상기 레지스터(21)의 내용이 갱신되어 있지 않으면, 레지스터(21)에 저장된 데이터(Vsize)에 다시 그의 1/2의 값을 더한 데이터를 문자의 피치를 표시하는 제어데이터로서 인자제어부(17)에 공급하여 라인버퍼(13)상에 전개되는 문자의 피치를 제어한다. 또, 상기 레지스터(21)의 내용이 갱신될 때는 그 갱신전의 데이터를 특정 레이스터영역에 보관해 두고, 그 갱신시에 있어서 특정 레지스터영역에 보관된 갱신전의 데이터와 갱신된 데이터와의 합의 1/4의 값을 다시 상기 레지스터(21)에 저장된 갱신후의 데이터에 더하며, 이것을 문자피치를 나타내는 데이터로서 인자제어부(17)에 공급하여 라인버퍼(13)상에 전개되는 문자의 피치를 제어하게 된다.
상기한 바와 같이 소정 각도를 갖추고서 변환된 문자에 대해서는 상기 문자의 기록이 해당문자에 외접하는 수평·수직선상의 직사각형의 영역을 기초로 실행되기 때문에 상기 직사각형의 가로폭(프린트아웃의 경우는 Vsize, 표시출력인 경우는 Hsize)을 기초로 인접하는 문자와의 사이의 피치가 정해지고, 행피치에 대해서도 상기와 같은 피치제어가 실행된다. 이때의 각종 변형문자에 대한 피치(CP) 및 행피치(LP)의 설정예를 제8도에 나타낸다.
더욱이, 상기한 피치제어는 항상 인접하는 문자가 점유하는 영역(외접하는 직사각형)을 고려하면서 피치를 정하였으나, 처리를 간소화하기 위해서는 단순히 그때마다의 레지스터[21; 또는 레지스터(22)]값을 기초로 정하는 제어수단을 취해도 된다.
다음에 상기한 외접하는 직사각형을 기초로 밑줄/옆줄을 인자출력할 때의 동작을 설명한다. 이때에는 레지스터(21)에 저장된 데이터(Vsize)가 참조로 된다. 여기서 상기 밑줄/옆줄제어부(23)는 CPU버스(12)를 매개로 입력되는 인자제어정보에 포함하는 밑줄/옆줄의 처리에 대한 지시에 따라 라인버퍼(13)상에 밑줄 또는 옆줄의 도트를 전개하게 되지만, 상기한 바와 같은 회전체, 경사체등의 변형문자에 대해서는 통상의 문자폭에 의한 라인전개로는 대응되지 않게 된다. 그리고, 레지스터(21)의 내용(Vsize)을 항시 입력하면서 밑줄/옆줄의 처리에 대한 지시가 있으면, 그때의 레지스터(21)의 갱신데이터내용에 따른 라인길이를 갖추고서 밑줄/옆줄의 도트패턴을 생성시켜 라인버퍼(13)상에 해당문자에 대응시켜 패턴전개한다. 이때 각종 변형문자에 대한 밑줄의 전개예를 제9도에 나타낸다.
한편, 상기와 같이 얻어진 확대 내지는 변형문자와 그 외의 도트구성을 이루는 문자, 예컨대 표준문자와 혼합인자출력하는 경우의 인자제어동작을 제1도와 제11도 내지 제16도를 참조하여 설명한다.
먼저, 제13도에서 나타낸 바와 같이 상기한 도트보간처리에 의해 세로로 2배, 가로로 2배 확대된 확대문자와 표준문자를 중간이 서로 일치되는 상태로 인자출력하는 경우를 예를들어 설명하면, 제13도와 같이 세로로 2배, 가로로 2배가 확대된 확대문자와 표준문자를 중간이 서로 일치되는 상태로 혼합인자할 경우 외부로부터 다음과 같은 인쇄지시가 인가된다.
(1) 확대비율(여기서는 세로로 1배, 가로로 2배)을 세트한다.
(2) 문자코드"A""B""C"와 CR(인자개시)코드를 송출한다.
(3) 용지이용량 L1(여기서는 L1=Lh/2)을 송출한다.
(4) 확대비율을 기준배율, 즉 표준문자를 저정하는 세로로 1배, 가로로 1배의 배율로 되돌린다.
(5) 문자코드"가""나""다""라""마"와 CR코드를 송출한다.
(6) 용지이송량 L2을 송출한다.
(7) 문자코드"바""사""아""자""차"와 CR코드를 송출한다.
여기서 문자정보기억버퍼(70)는 주기억장치(11)와 독립해서 설치된 구성으로 되어 있는데, 문자정보기억버퍼(70)가 주기억장치(11)내에 설치된 경우에는 상기 각 문자코드가 주기억장치(11)내의 버퍼영역내의 각 정보블럭에 기록된다.
한편, 이에 대해 프린트제어장치내부에서는 다음과 같은 인자제어를 실행하게 된다.
a) 상기 제2항에서 설명된 CR코드의 수신에 의해 상기 도트보간처리에 따라 확대(세로로 2배, 가로로 2배)된 문자(A,B,C)의 제10존(상반분)의 이미지를 순차적으로 라인버퍼(13)에 전개해서 인자출력한다. 다음에 확대문자(A,B,C)의 제1존의 인자에 대비하여 문자정보기억버퍼(70)내에 해당하는 정보블록(701)의 내용을 갱신한다.
여기서는 존지정부(82)에 ZONE=1, 상대거리기억부(83)에 dh=Lh가 각각 등록되는 바, 이때의 CR처리의 상세한 설명은 제15도의 플로우챠트에 나타나있다.
b) 상기 제3항에 대해 L1의 용지이송을 실행한다.
c) 상기 L1의 용지이송을 실행한 후, 상기 정보블럭(701)내의 상대거리기억부(83)의 값(dH)에서 상기 용지이송량 L1을 감한다. 이때의 LF(용지이송의 실행)처리의 상세한 설명은 제14도의 플로우챠트에 나타나있다.
d) 상기 제5항에 설명된 CR코드의 수신에 의해 표준규격문자 "가""나""다""라""마"를 1문자단위로 순차적으로 라인버퍼(13)에 이미지 전개시키고, 그 전개한 이미지를 인쇄출력한다(제15도의 플로우챠트 참조).
e) 상기 제6항에서 설명된 용지이송량(L2)에 대해 이송량(L2)이 상기 확대문자(A,B,C)의 제1존의 인자범위를 넘고 있기 때문에,
1) 먼저 dH의 값만큼 용지이송을 실행한다.
2) 확대문자"A""B""C"의 제1존을 인자한다.
3) 이것으로 확대문자(A,B,C)의 인자가 완료되었으므로 문자정보기억버퍼(70)내에 기록되어 있는 상기 확대문자(A,B,C)의 각 블력정보를 제거한다.
4) 나머지의 용지이송(L2-dH)을 실행한다.
이때 LF(용지이송실행)처리의 상세한 설명은 제14도의 플로우챠트에 나타나 있다.
f) 상기 제7항에서 설명된 CR코드수신에 의해 표준규격문자"바""사""아""자""차"를 1문자단위로 순차적으로 라인버퍼(13)에 이미지 전개하여 인자출력한다(제15도의 플로우챠트참조).
이와 같이 하여, 제13도에 나타낸 바와 같은 표준규격문자와 확대문자(또는 변형문자)가 혼합하여 중간이 서로 일치된 문자인자처리가 순차적으로 실행된다.
여기에서 제14도 내지 제16도를 참조하여 상기한 LF(용지이송실행)처리 및 CR(인자개시)처리에서의 인자모드처리동작 및 확대패턴의 도트수 조정처리동작을 설명한다.
제14도에 표시된 LF처리에 있어서, 문자정보기억버퍼(70)내의 정보블럭(701…)의 상대거리기억부(83)에 저장된 상대거리(dH)로부터 그 최소치(Lmin)를 검색하고(S14a), 또 그 상대거리(dH; Lmin)가 용지이송량(L)을 초과하지 않는가를 판단하여(S14b), 초과하지 않을 때 최소치(Lmin)만큼 용지이송이 실행된 후(S14c), 상기 상대거리(dH)로부터 Lmin을 뺀다(S14d), 여기까지의 동작인 이미 설명한 바와 같다.
상기한 바와 같이 용지이송이 실행되어 상대거리(dH)의 갱신처리가 이루어진 후, 인쇄방향제어플래그(90)가 점검된다(S14e). 여기서 상기 인쇄방향제어플래그(90)가 세트, 즉 플래그가 세트되어 있으면, 양방향 인자(인쇄헤드의 순방향이동과 역방향이동의 쌍방에 의한 양방향인자)모우드가 지정되어 있는 것으로 판단하여, 직렬도트프린터(14)의 프린트장치를 양방향인자모우드로 설정해서(S14g)인자해야 할 문자의 이미지전개처리를 개시한다(S14h), 또, 상기 인쇄방향제어플래그(90)가 세트되어 있지 않으면, 단일방향인자모우드가 지정되어 있는 것으로 판단하여, 직렬도트프린터(14)의 프린트장치를 단일방향인자모우드로 설정해서 (S14f)인자해야 할 문자의 이미지전개처리를 시작한다(S14h).
이때 라인버퍼(13)에 대한 이미지전개처리의 상세한 처리과정은 제16도에 나타나 있다.
먼저, 문자패턴을 라인버퍼(13)에 전개시킨 후(S16a), 레지스터(91)(92)에 세트된 인쇄폭(dxL,dyL)을 기초로 전개된 확대배율이 허용인자도트수(인자소비전력)에 의해 정해진 기준확대배율을 초과하는가의 여부를 판단한다(S16b,S16c). 즉, 여기서는 라인버퍼(13)에 전개된 문자패턴의 X방향인각폭(dxi)과 레지스터(90)에 저장된 X방향인각폭(dxL), 마찬가지로 인자패턴의 Y방향인가폭(dyi)과 레지스터(92)에 저장된 Y방향인각폭(dyL)이 각각 비교되어 적어도 dxi가 dxL이하, 또는 dyi가 dyL이하로 되면, 전개된 패턴의 확대비율이 기준확대배율을 초과하고 있다고 판단하여 라인버퍼(13)의 전개문자패턴에 지그재그형태의 마스크를 만들어 인자도트를 빼낸다(솎아냄)(S16d).
따라서 인자도트수가 극단적으로 증가하여 인자소비전력이 규정치를 넘어 직렬도트프린터(14)의 전원이 감소되는 결점을 피할 수 있게됨과 동시에 확대패턴부분이 극단적으로 고농도로 되어버린(연속되는 도트인자에 의해 지면이 새까맣게 되어버림)다는 결점을 피할 수 있게 된다.
또, 제15도에 나타낸 CR처리에 있어서는, 인자처리되는 문자열이 1회의 인자헤드이동동작으로 인쇄완료되는 문자패턴(존 분할되어 있지 않은 단일 존의 문자패턴)인가의 여부를 판단해서(S15a), 1회의 인자헤드이동동작으로 인자완료되는 경우에 인쇄방향제어플래그(90)의 지시내용에 관계없이 프린터장치에 대해 양방향인자모우드를 세트한다(S15d). 따라서 1회의 인자헤드이동동작으로 인자완료되는 문자패턴에 대해서 양방향인자처리에 의해 고속인자처리를 실행할 수 있고, 또 복수의 존으로 분할된 확대 내지는 변형문자에 대해서는 사용자의 지시에 따른 인자지시처리, 즉 인자품질을 중시하지 않으면서 고속인쇄를 하고 싶은 경우에는 인쇄방향제어플래그를 세트시킴으로써 양방향인자처리에 따른 고속인자가 실행되며(S15b,S15d,S15e), 또 존간의 패턴이 어긋남에 따른 인자품질의 저하를 제거하면서 고인자품질의 확대 내지는 변형문자패턴을 얻고 싶을 때에는 인쇄방향제어플래그(90)를 리세트시켜 단일방향인자모우드를 지정함으로써 존간의 패턴이 어긋남이 발생되지 않는 고이자품질의 확대 내지는 변형문자패턴을 얻을 수 있게 된다 (S15b,S15c,S15e).
또, 상기 제14도 및 제15도에 있어서, 이미지전개의 종료확인은 상기한 Hsize의 값고 다음에 전개할 존의 값에 의해 판단하는 것으로, 하나의 존폭을 예컨대 24도트로 하면, 24×(존의 값)〉Hsize로 되면 이미지 전개종료로 판단한다(S15f,S15g).
상기 실시예에서는 도트보간처리된 문자패턴의 확대배율이 미리 설정된 기준확대배율을 넘어 인자도트수가 극단적으로 증가하여, 인자처리시의 소비전력이 규정치를 초월하여 프린터의 전력감소를 초래하는 결점을 회피하기 위해 지그재그형태의 패턴에 의해 인자도트를 빼내는 구성으로 했지만, 예컨대 제17도에 나타낸 바와 같이 인자를 2회로 나누어 실행하도록 해도 된다. 이 경우 제17도의 예에서는 제1회째 인자시, 라인버퍼(13)에 전개된 이미지에"A,A"("1010,1010")를 바이트단위로 논리적연산(論理績演算)하고(S17h), 상기 이미지를 라인버퍼(13)에 전개하여 인자한 후(S17i), 전번과 같은 패턴을 다시 라인버퍼(13)에 전개하고(S17a), 다음에 상기 전개된 이미지에"5,5"("0101,0101")를 비트단위로 논리적연산하며(S17k) 그 이미지를 라인버퍼(13)에 전개하여 인자하고 있다(S17L).
이와 같은 인자처리수단에 의해서도 상기한 1실시예와 마찬가지로 인자처리시의 소비전력이 규정치를 넘어 프린터의 전원감소를 초래한다는 결점을 회피할 수 있게 된다. 또 상기 인자처리수단에 있어서는 인자결과로서 인자도트를 빼낸 패턴이 아니라 상기한 도트보간처리에 의해 생성된 도트패턴이 충실하게 인자출력된다.
[발명의 효과]
이상 설명한 바와 같이 본 발명에 따른 프린터의 제어발법 의하면, 소정의 도트매트릭구조로 이루어진 문자패턴을 확대내지는 변형처리하는 패턴처리단계와, 이 패턴처리단계에 의해 얻어진 패턴의 세로방향 도트수가 이미지라인버퍼의 세로방향폭보다 클 경우 상기 패턴처리된 문자패턴을 소정의 도트폭단위의 존으로 분할해서 이미지전개시키는 단계를 구비하여 이루어진 프린터의 제어방법에 있어서, 인자출력되는 문자패턴이 존으로 분할되어 있는가의 여부를 판단하는 판단단계와, 이 판단단계에서의 판단결과를 기초로 존으로 분할되어 있지 않는 문자패턴을 인자출력하는 경우에는 양방향인자모우드를 지정하고, 존으로 분할된 문자패턴을 인자출력하는 경우에는 단일방향인자모우드를 지정하는 인자모우드지정단계를 구비하여, 인자출력되는 문자패턴이 복수의 존으로 구성된 경우에는 단일방향인자에 의한 인자처리를 실행하고, 인자출력되는 문자패턴이 단일 존으로 구성된 경우에는 양방향인자에 의한 인자처리를 실행하도록 함으로써, 인자시간을 단축시켜 고속인자처리를 가능하게 함과 더불어, 존분할된 확대 내지는 변형문자에 대하여 인자품질의 저하를 초래하지 않고 인자제어를 실행할 수 있게 된다.

Claims (2)

  1. 소정의 도트매트릭스구조로 이루어진 문자패턴을 확대 내지는 변형처리하는 패턴처리단계와, 이 패턴처리단계에 의해 얻어진 패턴의 세로방향도트수가 이미지라인버퍼(13)의 세로방향폭보다 클 경우 상기 패턴처리된 문자패턴을 소정의 도트폭단위의 존으로 분할해서 이미지전개시키는 단계를 구비하여 이루어진 프린터의 제어방법에 있어서, 인자출력되는 문자패턴이 존으로 분할되어 있는가의 여부를 판단하는 판단단계(S15a)와, 이 판단단계(S15a)에서의 판단결과를 기초로 존으로 분할되어 있지 않은 문자패턴을 인자출력하는 경우에는 양방향인자모우드를 지정하고, 존으로 분할된 문자패턴을 인자출력하는 경우에는 단일방향인자모우드를 지정하는 인자모우드지정단계(S15b,S15c,S15d)를 구비하여, 인자출력되는 문자패턴이 복수의 존으로 구성된 경우에는 단일방향인자에 의한 인자처리를 실행하고, 인자출력되는 문자패턴이 단일 존으로 구성된 경우에는 양방향인자에 의한 인자처리를 실행하도록 된 것을 특징으로 하는 인자방향지정을 위한 프린터의 제어방법.
  2. 제1항에 있어서, 상기 양방향인자모우드/단일방향인자모우드가 임의로 지정되도록 되어 있고, 이 인자모우드의 설정상태가 양방향인자모우드일 때에만 상기 존의 수에 관계없이 양방향인자에 의한 인자처리를 실행하도록 된 것을 특징으로 하는 인자방향지정을 위한 프린터의 제어방법.
KR1019850004134A 1984-08-29 1985-06-12 인자방향지정을 위한 프린터의 제어방법 KR910005778B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP59-179647 1984-08-29
JP59179647A JPS6157348A (ja) 1984-08-29 1984-08-29 プリンタ制御装置

Publications (2)

Publication Number Publication Date
KR860002054A KR860002054A (ko) 1986-03-26
KR910005778B1 true KR910005778B1 (ko) 1991-08-03

Family

ID=16069423

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019850004134A KR910005778B1 (ko) 1984-08-29 1985-06-12 인자방향지정을 위한 프린터의 제어방법

Country Status (2)

Country Link
JP (1) JPS6157348A (ko)
KR (1) KR910005778B1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5774171A (en) * 1980-10-29 1982-05-10 Hitachi Ltd Printing machine
JPS5811638A (ja) * 1981-07-08 1983-01-22 大和製衡株式会社 印字装置におけるラベル印字方法
JPS5862066A (ja) * 1981-10-09 1983-04-13 Fujitsu Ltd 印字ヘツド移動制御方式

Also Published As

Publication number Publication date
KR860002054A (ko) 1986-03-26
JPH049153B2 (ko) 1992-02-19
JPS6157348A (ja) 1986-03-24

Similar Documents

Publication Publication Date Title
US4655622A (en) Printer control apparatus
US4887228A (en) Method for filling surface parts of an image with a surface pattern
US6195473B1 (en) Non-integer scaling of raster images with image quality enhancement
KR970004237B1 (ko) 문자 생성 방법 및 그 장치
KR940010875B1 (ko) 문자패턴 형성장치
KR910005780B1 (ko) 중간맞춤인자를 위한 프린터의 제어방법
KR910005779B1 (ko) 인자도트수를 감소시키기 위한 프린터의 제어방법
KR910005778B1 (ko) 인자방향지정을 위한 프린터의 제어방법
EP0425218A2 (en) Output apparatus
JPH046554B2 (ko)
KR900004892B1 (ko) 도트 보간장치
KR900004950B1 (ko) 문자보간 제어방법
KR900007681B1 (ko) 도트보간 제어방식
KR900004949B1 (ko) 보간 도트패턴의 출력제어장치
KR900004948B1 (ko) 하선ㆍ방선 생성장치
JP2956705B2 (ja) データ変換装置
JPH0392897A (ja) パターン発生装置
JPS6189861A (ja) 印字制御装置
KR940006537B1 (ko) 도트프린터의 인자방법
JP2881924B2 (ja) データ記憶装置
JP3347756B2 (ja) 文字生成方法及びその装置
JPH0784739A (ja) データ変換装置
JPH0262259A (ja) プリンタ装置
JPH08254974A (ja) 印字フォント作成装置および印字フォント作成方法
JPH07261735A (ja) 文字パターンデータの変換装置および変換方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 19960802

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee