KR101600248B1 - Epos 프린팅 - Google Patents

Epos 프린팅 Download PDF

Info

Publication number
KR101600248B1
KR101600248B1 KR1020157006540A KR20157006540A KR101600248B1 KR 101600248 B1 KR101600248 B1 KR 101600248B1 KR 1020157006540 A KR1020157006540 A KR 1020157006540A KR 20157006540 A KR20157006540 A KR 20157006540A KR 101600248 B1 KR101600248 B1 KR 101600248B1
Authority
KR
South Korea
Prior art keywords
printer
print
shows
document
status
Prior art date
Application number
KR1020157006540A
Other languages
English (en)
Other versions
KR20150043466A (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 KR20150043466A publication Critical patent/KR20150043466A/ko
Application granted granted Critical
Publication of KR101600248B1 publication Critical patent/KR101600248B1/ko

Links

Images

Classifications

    • 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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1207Improving or facilitating administration, e.g. print management resulting in the user being informed about print result after a job submission
    • 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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1228Printing driverless or using generic drivers
    • 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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • 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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/1231Device related settings, e.g. IP address, Name, Identification
    • 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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • 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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1246Job translation or job parsing, e.g. page banding by handling markup languages, e.g. XSL, XML, HTML
    • 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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
    • 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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1289Remote printer device, e.g. being remote from client or server in server-client-printer device configuration, e.g. the server does not see the printer
    • 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
    • G06F3/1293Printer information exchange with computer
    • G06F3/1295Buffering means
    • 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
    • G06F3/1297Printer code translation, conversion, emulation, compression; Configuration of printer parameters
    • G06F3/1298Printer language recognition, e.g. programme control language, page description language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • 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/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1803Receiving particular commands
    • G06K15/1805Receiving printer configuration commands
    • 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/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1803Receiving particular commands
    • G06K15/1806Receiving job control commands
    • G06K15/1807Receiving job control commands relating to the print image preparation
    • 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/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1835Transforming generic data
    • G06K15/1836Rasterization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00095Systems or arrangements for the transmission of the picture signal
    • H04N1/001Systems or arrangements for the transmission of the picture signal specially adapted for transmission via digital wireline networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00095Systems or arrangements for the transmission of the picture signal
    • H04N1/00103Systems or arrangements for the transmission of the picture signal specially adapted for radio transmission, e.g. via satellites
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/00464Display of information to the user, e.g. menus using browsers, i.e. interfaces based on mark-up languages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/405Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Astronomy & Astrophysics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

HTML과 호환 가능한 스크립트 언어는 웹 브라우저의 프린트 선택 옵션을 거치지 않고 프린팅 동작에 대한 지능 모듈과 직접 통신할 수 있는 방법 또는 객체를 정의하도록 사용된다. 프린트 API 라이브러리는 웹 페이지에 내장하기 위해 필요한 방법/객체를 제공한다. 지능 모듈은 스탠드 얼론(stand-alone) 전자 디바이스일 수 있거나, 또는 프린터에 포함된 지능 디바이스일 수 있다. 지능 모듈은 다수의 프린터를 직접 또는 네트워크를 통해 관리할 수 있고, 웹 페이지상의 프린트 API와 타겟 프린터 사이의 통신을 변환/전달하는 통신 브리지를 제공하도록 기능한다. 프린트 API는 지능 모듈의 고정된 IP 어드레스를 인지하고, 프린트 문서 또는 프린트 커맨드를 정의하고 알려진 IP 어드레스에 의해 지능 모듈에 직접 전송한다.

Description

EPOS 프린팅{EPOS PRINTING}
본 발명은 TCP/IP 네트워크상에서의 프린팅에 관한 것이다. 보다 구체적으로 POS(point-of-sale) 네트워크에서의 프린팅에 관한 것이다.
네트워크 프린팅은 컴퓨터 네트워크상에서의 프린팅 리소스의 공유를 지칭한다. 네트워크 프린팅의 초기 애플리케이션은 도 1에 도시된 바와 같이, 프린트 서버, 또는 프린터 서버이다. 프린터 서버(11)는 공통 컴퓨터 네트워크(17)상에서 클라이언트 컴퓨터(13a)를 프린터(15a)와 접속하는 디바이스이다. 즉, 클라이언트 컴퓨터(13a)는 프린트 작업을 프린터 서버(11)에 전송하고, 프린터 서버(11)는 프린트 작업을 수신하여 유지하고(즉, 스풀링(spool)하고), 프린터(15a)가 이용 가능하게 되는 경우, 프린터 서버(11)는 유지된 프린트 작업을 프린팅을 위한 프린터(15a)에 전송한다. 프린터 서버(11)는 다수의 프린터(15a 내지 15i) 중에서 다수의 클라이언트 컴퓨터(13a 내지 13n)로부터의 다수의 프린트 작업을 관리하고, 컴퓨터 네트워크는 유선 및 무선 통신 링크를 모두 포함할 수 있음이 이해될 것이다. 개별적인 프린터(15a 내지 15i)는 로컬 프린터 및/또는 네트워크 프린터일 수 있고, (병렬 케이블, USB 케이블, 전용 케이블 등과 같은) 다이렉트 케이블 접속을 통해 또는 (표준화된 네트워크 카테고리 케이블(즉, CAT 5, 5e, 6) 상에서의 (IEEE 802.11 등) 유선 네트워크 접속)에 의해 또는 무선 네트워크 접속(IEEE 802.11 a/b/g/n 등)에 의해 또는 다른 알려진 무선 통신 링크(블루투스, HomeRF, HyperLan 등)에 의해 프린터 서버(11)에 직접 접속될 수 있다.
프린터 서버(11)는 타겟 프린터가 이용 가능하게 되는 것을 대기하는 동안 프린트 작업을 큐잉(queuing)하는(즉, 스풀링하는) 것을 담당한다. 이것은 (프린트된 페이지의 번호, 프린팅의 시간 등과 같은) 프린터 동작을 추적하면서, 프린트 작업을 작업 순서에서 재배열하고 삭제하는 것을 또한 담당할 수 있다. 따라서, 프린터 서버(11)는 통상적으로 다수의 산업 표준 및/또는 전용 프린팅 프로토콜을 지원하고, 이에 따라 각각의 프린터를 관리하는 프린터 드라이버를 또한 포함할 수 있다. 프린터 서버가 개인 네트워크에 매우 적합하더라도, 공용 및 개인 네트워크 모두에 대해 풍부한 인터넷 프로토콜 TCP/IP를 이용하는 쪽으로 산업이 이동함에 따라, 인터넷 인터페이스를 통해 공용 네트워크에서 프린팅 능력을 포함하는 것이 바람직하게 되었다.
"웹 브라우저"는 대중적인 인터넷 인터페이스(Worldwide Web, 즉, WWW 또는 인터넷에서 통상 사용됨)이며, 이는 HTML(HyperText Markup Language)에 근거한 "웹 페이지"를 디스플레이한다. 마크업 언어는 인간이 읽을 수 있는 원문(textual) 포맷으로 머신 실행가능한 인스트럭션을 제공하는 "태그"를 사용하는 텍스트 기반 언어 시스템이다. 예를 들어, 태그는 웹 페이지상에서 디스플레이할 정보를 어떻게 포맷할지(즉, 디스플레이 스크린상에서 웹 페이지 정보를 어떻게 디스플레이할지), 또는 원하는 실행가능한 기능을 어떻게 특정할 지에 관해 웹 브라우저에게 지시할 수 있다.
인터넷이 성장함에 따라, HTML의 초기 버전에서 이용가능한 것보다 많은 기능을 제공하는 것이 바람직하게 되었다. 이러한 요구를 충족하기 위해, 자바(Java) 언어는 HTML 웹 페이지 내에 내장될 수 있는 완전히 포함되는 머신 코드를 제공하도록 변형되었다. 이들 소형의 애플리케이션은 애플릿(applet)으로서 알려졌다. 자바는 소형의 디바이스 및 기기에 대한 제어 애플리케이션에서와 같이, 다수의 애플리케이션에서 사용되는 전체 특징의(full-feature)의 객체 지향 프로그래밍(object oriented programming)(즉, OOP) 언어이다.
디바이스를 제어하도록 자바 애플리케이션을 만들었던 회사는 그 디바이스의 제어 프로그램에 관해 전용의 정보를 공개하지 않고 제3자 제조에 의한 디바이스에 용이하게 채택되는 것을 원했다. 이것은 그 제어 애플리케이션에 대해 단순화된 인터페이스를 제공하여, 제3자 제조자에 의한 그 제어 프로그램의 채택을 간단하게 하는 애플리케이션 프로그램 인터페이스(application program interface : API) 라이브러리의 사용에 의해 이루어졌다. 기본적으로, API는 OOP 언어에서 객체 또는 클래스에서 발견되는 바와 같이, 코딩된 애플리케이션에 대해 인터페이스를 제공하는 특정된 입력 및 출력 요건을 갖는 일련의 공통 코드 부분이다. 이러한 방식으로, 사용자는 특정의 소프트웨어 툴을 재코딩(re-code)할 필요가 없으며 또는 심지어 그 소프트웨어가 또한 어떻게 코딩되는지에 대해 알 필요가 없다. 사용자는 소프트웨어 툴을 호출하고(invoke), 이를 임의의 특정된 파라미터로 전달하고, 원하는 기능을 실행하도록 하고, 임의의 특정된 출력을 수신하는지에 대해서만 단지 알 필요가 있을 뿐이다. 자바는 웹 페이지를 보다 동적으로 되게 하지만, 자바 애플리케이션(및 애플릿)은 스크립트가 아닌 머신 코드로 제공되는 컴파일된 프로그램이며, 따라서, 인간 사용자가 용이하게 읽을 수 없다. 따라서, 애플릿의 사용은 HTML 코드의 판독 가능성을 감소시킨다.
자바의 동적 능력의 몇몇을 스크립트 언어 형태로 제공하는 자바스크립트(JavaScript)가 이러한 문제를 해결한다. 자바스크립트는 스크립트 언어이므로, HTML은 자바스크립트를 사전 프로세싱(즉, 컴파일링)하지 않고 자바스크립트 코드를 실행할 수 있고, 따라서 스크립트(즉, 텍스트) 형태로 이를 유지한다. 자바 애플릿과 같이, 자바스크립트는 HTML 웹 페이지내에 내장될 수 있고, HTML 웹 페이지가 다운로드될 때에 또는 이벤트가 트리거되는 것에 응답하여 웹 브라우저가 이를 실행할 것이다. 자바스크립트는 웹 페이지가 그 콘텐츠를 동적으로 변경하거나 또는 콘텐츠를 현재의 웹 페이지에 부가하거나 또는 해당 웹 페이지로부터 콘텐츠를 전송하도록 한다. 자바스크립트 및 다른 스크립트 언어는, 웹 브라우저와, 그 웹 브라우저가 실행되고 있는 오퍼레이팅 시스템 사이에 브리지를 제공함으로써 웹 페이지가 보다 대화형으로 될 수 있도록 한다. 이것은 웹 브라우저 및/또는 오퍼레이팅 시스템이 웹 페이지를 제공하기에 안전한 것으로 여겨지는, 디바이스의 위치 및 다른 사용자 정보와 같은 사용자의 로컬 디바이스 환경으로부터의 정보를 웹 페이지가 포함할 수 있도록 한다.
자바스크립트를 채용함으로써, 소프트웨어 개발자는 특정의 태스크를 실행하도록 설계된 완전한 스크립트 애플리케이션을 제공하기 시작했다. 이들 스크립트 애플리케이션은 웹 페이지로의 삽입을 위한 유닛으로서 패키지화되는 경우, 이들은 때때로 위젯(widgets)"이라 불리운다. 각각의 위젯은 완전한 스크립트 코드이므로, 입력 및 출력이 자바 애플릿에서 사용되는 것과 유사한 방식으로, 예상되는 입력 세트 및 가능한 출력 리스트를 가질 수 있다. 따라서, API는 스크립트 코드에 대해 또한 개발되어 왔다. 예를 들어, 회사는 특정의 디바이스에서 동작하는 스크립트 코드의 라이브러리를 생성하고 제3자 개발자의 코드내에 그 스크립트 코드의 삽입을 용이하게 하는 API의 리스트를 제공할 수 있다. 따라서, 제3자 개발자는 회사의 디바이스가 어떻게 작동하는지를 이해하거나 또는 이를 어떻게 프로그램하는지를 알 필요가 없고, 제3자 개발자는 제공되는 그 API 및/또는 위젯(즉, 스크립트 코드)을 이용함으로써 회사의 디바이스의 제어를 신속하게 삽입할 수 있다.
이것은 웹 브라우저로부터의 프린팅, 즉, HTML 프린팅의 토픽을 도출한다. 대부분의 웹 브라우저는 그 툴바(즉, 상이한 태스크를 호출하는 선택가능한 "소프트웨어 버튼"의 시각적인 리스트)상에서 프린트 기능을 제공하고, 사용자가 그 프린트 기능을 선택하는 경우, 웹 브라우저는 로컬 디바이스의 오퍼레이팅 시스템의 프린트 API를 통해 로컬 디바이스의 프린터를 액세스한다. 즉, 웹 브라우저는 실행되고 있는 디바이스에 대해 어떤 타입의 프린팅 능력이 이용가능한지를 알 필요가 없고, 필요하다면, 오퍼레이팅 시스템은 보안상의 이유로 인해 웹 브라우저와 이 정보를 공유하지 않는다. 따라서, 웹 브라우저가 프린트하기 위해, 기능 요청을 오퍼레이팅 시스템에 전달해야 하며, 이는 오퍼레이팅 시스템의 프린트 인터페이스를 호출함으로써 행할 수 있다.
따라서, 웹 페이지로부터의 프린팅은 도 2에 도시된 바와 같이, 프린터 다이얼로그 박스를 거치는 것을 필요로 한다. 프린터 다이얼로그 박스(19)는 프린터 정보를 제공하고 사용자가 프린트된 문서의 포맷을 선택하기 위한 옵션을 제공한다. 이들 옵션은 프린터 드라이버에 의해 계속해서 제공되는 프린터의 능력으로부터 결정된다. 예를 들어, 프린터 다이얼로그 박스(19)는 다수의 이용가능한 프린터 중에서 선택하기 위한 프린터 선택 옵션(21)을 제공할 수 있다. 박스(21a 내지 21c)는 그 스테이터스, 타입 및 위치와 같은 선택된 프린터에 관한 정보를 각각 제공할 수 있다. 다른 옵션은 선택 버튼(23)에 의해 표시된 바와 같이, 흑백 또는 컬러로 프린트하는 선택을 포함할 수 있다. 사용자는 선택 버튼(25 및 27)에 의해 표시된 바와 같이, 프린트될 페이지의 범위를 또한 입력하고, 및/또한 용지 타입 또는 용지 방향을 선택할 수 있다.
몇몇 웹 브라우저는 신속한 프린트 옵션을 제공할 수 있으며, 디폴트 프린터로 프린팅 요구를 전송하고 모든 프린터의 디폴트 설정을 채택함으로써 프린터 다이얼로그 박스를 사용하지 않고 프린팅을 위해 현재 디스플레이된 웹 페이지가 전송된다. 이 요청은 오퍼레이팅 시스템의 프린트 API에 전송되고 신속한 프린팅을 지원하고 디폴트 프린트 및 할당된 그 디폴트 설정을 가지면, 프린팅을 위한 웹 페이지를 수락할 것이다. 불행하게도, 프린팅을 위해 전체 웹 페이지가 전송된다. 따라서, 웹 페이지 개발자는, 어떻게 웹 페이지가 프린트되는지, 또는 웹 페이지의 어떤 부분이 프린트되는지, 또는 일반적으로, 어떤 내용이 프린트되는지에 대한 제어를 갖지 않는다. 웹 페이지 개발자는 어떤 프린터가 이용가능한지, 또는 그 프린트 능력을 알지 못할 뿐만 아니라 웹 페이지 개발자는 개별적인 프린터의 디폴트 설정이 어떤지를 알지 못한다. 요약하면, 웹 페이지는 로컬 디바이스의 오퍼레이팅 시스템(OS)을 통해서, 로컬 OS상에서 적절한 프린터 디바이스를 액세스하는 것으로 가정한다.
XML 프린터는 프린터 드라이버에 대한 의존성을 감소시키고, 프린트된 문서의 포매팅에 대해 나은 제어를 갖도록 설계되었다. XML 프린터는 웹 페이지로 제한되지 않으며, 로컬 가상 프린터로서 동작할 수 있다. 즉, 마치 물리적 프린터인 것처럼 프린트 요청에 응답하지만, 물리적 프린트 문서를 생성하는 대신에, 프린트된 문서가 어떻게 보이는지에 대한 스크립트 언어 설명을 생성한다. 이것은 디스플레이 스크린상에서 웹 페이지의 모습 및 포맷을 정의하는데 HTML 스크립트 언어가 사용되는 방법과 유사하다. 이 스크립트 언어 설명은 XML 프린팅을 지원하는 물리적 프린터에 전송되어 물리적 프린트 아웃을 생성할 수 있다. XML 프린터는 통상적으로 상이한 플랫폼 및 문서 포맷상에서의 프린팅의 일관성을 유지하는데 사용된다. 예를 들어, XML 프린트 문서 파일은 Microsoft WordTM에서 준비되는 문서가 Adobe AcrobatTM에서 준비되는 같은 문서와 동일한 것을 프린트할 것을 보장한다.
따라서, XML 프린트 문서 파일, 및 XML 프린트 문서 파일을 판독할 수 있는 프린터(또는 프린터 드라이버)를 가지면, 프린터 드라이버 요건에 대한 필요 없이 XML 프린트 문서 파일을 프린터에 전송할 수 있다. 프린터(또는 그 프린터 드라이버)는 문서가 어떻게 보일지에 대해 기술된 설명을 판독하고, 프린팅을 위해 그 자신의 프린트 이미지를 생성한다. XML 프린터가 프린터 드라이버에 대한 의존도를 저감하고, 그에 따라 네트워크상에서 프린팅을 용이하게 한다 하더라도, 웹 페이지 개발자에 대한 임의의 추가적인 프린팅 제어를 제공하지 않는다. 즉, 웹 페이지 개발자는 스크립트 애플리케이션 또는 위젯 내에서 프린팅을 제어할 수 없고, 그 대신에 프린트 인터페이스로서 웹 브라우저에 의존한다.
자바스크립트는 이 문제에서 어떠한 지원도 제공하지 않는다. 웹 브라우저가 로컬 프린터의 API를 액세스하기 위해 로컬 오퍼레이팅 시스템과 인터페이스하거나 또는 XML 프린트 문서를 생성하기 위해 XML 프린터를 호출할 수 있다 하더라도, 보안상의 이유로 인해 웹 브라우저는 그 자바스크립트와 이 정보를 공유하지 않는다. 즉, 자바스크립트의 작업은 통상적으로 웹 페이지상에서의 정보를 정의하고 동적 기능을 제공하기 위한 것이며, 문서를 프린트하는 것은 자바스크립트의 작업이 아니다. 프린트 기능을 제어하는 것은 웹 브라우저의 작업이므로, 내부 스크립트 애플리케이션과 이 제어를 공유하지 않는다. 따라서, 지금까지는 자바스크립트 애플리케이션은 프린터를 직접 제어할 수 없다. 웹 브라우저는 프린트 요청을 생성하고, 요청을 로컬 OS에 더 중계하고, 그 다음에, 로컬/네트워크 프린터(실제 또는 가상)를 셋업하기 위해 프린트 다이얼로그 박스를 호출할 것을 요구해야 한다.
이러한 어려움에도 불구하고, 웹 프린팅, 즉, 인터넷을 통한 프린팅을 향해 진전이 이루어져 왔다. 예를 들어, 인터넷 프린팅 프로토콜(Internet Printing Protocol : IPP)은 인터넷상에서 원격 프린팅을 위한 표준 네트워크 프로토콜을 제공하며, 이는 각각의 사용자의 머신상에서 개별적인 프린트 드라이버에 대한 필요성을 없앤다. IPP는 프린트 작업, 매체 크기, 해상도 등과 같은 각종 프린팅 요구에 대한 제어를 제공하며, 마치 프린터가 로컬인 것처럼 유사한 방법 및 동작을 사용자에게 제공하도록 의도된다. 기본적으로, IPP는 네트워크 프린팅 프로토콜을 정의하는 개방형 표준의 집합이며, 프린터 판매자가 이 표준을 채택하면, IPP는 프린터의 능력에 관해 파악하고, 프린트 작업의 스테이터스에 관해 질의하거나 또는 제출된 프린트 작업을 취소하기 위해 사용자가 해당 판매자의 프린터와 실시간으로 상호 작용할 수 있게 한다. 로컬 프린터의 경우에서와 같이, 이 다이얼로그는 프린터 다이얼로그 박스를 통한다.
인터넷 프린팅을 제공하기 위한 다른 접근법은 Google Cloud PrintingTM, 또는 GCP로서 알려져 있다. 이것은 GoogleTM사에 의해 제공된 서비스이고, 기본적으로는 프린트 요청을 Google사에 전송하고, Google사가 (PDF 프린트 작업으로 제한되는) 프린트 작업을 준비하게 하고, 사용자의 사전 등록된 프린터에 이들을 포워딩함으로써 개발자가 그 웹 페이지 및 서비스에 프린팅 능력을 포함하게 한다. GoogleTM사는 개발자가 요구된 코드를 신속히 삽입하기 위해 API를 제공하고, PDF 프린트 작업을 생성하고 제출하기 위해 표준 프린팅 다이얼로그 박스를 사용한다. 이해되는 바와 같이, 이것은 구글사가 프린트될 모든 문서에 대해 액세스하며, 이는 사용자에 대한 보안성 및 사생활에 대해 의문을 제기한다는 것을 의미한다. 이 서비스의 다른 제한은 프린트될 문서가 이미 웹상에 있고, 단지 사용자의 컴퓨터상에 있지 않을 것을 필요로 한다는 것에 또한 주목해야 한다. 따라서, 이 서비스는 웹상에 있지 않은 로컬에서 생성된 문서를 프린트하는데는 사용될 수 없다.
웹 브라우저 내에서 프린팅에 대한 사용자의 제어를 증대시키는 방법이 요구된다.
개발자가 로컬 웹 브라우저에 프린트 요청을 전송하지 않고, 자바스크립트 위젯과 같이, 직접 스크립트 애플리케이션을 통해 프린터에 대해 직접 액세스하고, 및 프린터에 대해 제어하는 것이 또한 요구된다.
웹 페이지 내의 스크립트 애플리케이션이 프린트 다이얼로그 박스를 필요로 하지 않거나, 또는 웹 페이지 내의 콘텐츠에 의해 제한되지 않고, 프린트될 정보를 직접 생성하고 포맷하고, 프린터에 정보를 직접 전송할 수 있는 것이 또한 요구된다.
사용자가 프린트 작업을 관리하기 위해 임의의 제3자 개체에 의존하지 않고, 직접적인 웹 프린팅 능력을 갖도록 하는 것이 또한 요구된다.
상기 목적은, 웹 브라우저에 의해 실행되는 웹 애플리케이션에서 문서를 생성하고, 네트워크를 통해 문서를 프린터에 전송하는 방법으로서, 이 방법은, 프린터에 접속하도록 구성되고, 어드레스를 설정하고, 문서를 수신하고, 문서를 프린터에 전송하도록 구성되는 지능 모듈(intelligent module)을 제공하는 단계와, 지능 모듈의 어드레스를 지정하도록 구성된 어드레스 속성 요소와, 프린터를 제어하는 커맨드를 커맨드 버퍼에 부가하도록 구성되고, 커맨드 버퍼에 커맨드를 누적함으로써 문서를 생성하는 제 1 방법 요소와, 문서를 지능 모듈에 전송하도록 구성되는 제 2 방법 요소를 제공하는 애플리케이션 프로그램 인터페이스(application program interface : API)(즉, API)를 웹 애플리케이션에 내장하는(embedding) 단계와, 웹 애플리케이션에 내장된 제 1 방법 요소에 의해 문서를 생성하는 단계와, 웹 애플리케이션에 내장된 제 2 방법 요소에 의해, 문서를 어드레스 속성 요소에 의해 지정된 어드레스를 갖는 지능 모듈에 전송하는 단계와, 문서를 지능 모듈로부터 프린터에 전송하는 단계를 포함하는 방법으로 충족된다.
바람직하게는, 웹 애플리케이션은 지능 모듈 또는 웹 서버상에 위치하며, 지능 모듈은 전자 디바이스이다.
이 방법은 프린터내의 용지상에 문서를 프린트하는 단계를 더 포함할 수 있다. 커맨드 중 하나는 프린트을 위한 텍스트를 커맨드 버퍼에 부가하기 위한 텍스트 커맨드일 수 있다. 추가적으로, 커맨드 중 하나는 커맨드 버퍼에 대해 텍스트의 속성을 설정하는 파라미터를 부가하기 위한 텍스트 설정 커맨드일 수 있다. 텍스트 설정 커맨드는 개시 위치, 정렬, 언어, 폰트, 스타일, 스케일, 또는 텍스트의 크기 중 적어도 하나를 특정하는 제 1 텍스트 설정 파라미터를 포함할 수 있다. 텍스트 커맨드는 텍스트를 회전할지, 또는 텍스트를 스무딩(smoothing)할지를 특정하는 제 2 텍스트 설정 파라미터를 또한 포함할 수 있다.
커맨드 중 하나는 또한 프린터에 용지를 공급하는 인스트럭션을 커맨드 버퍼에 부가하는 용지 공급 커맨드일 수 있다.
추가적으로, 커맨드 중 하나는 커맨드 버퍼에 프린팅을 위한 래스터(raster) 이미지를 부가하는 이미지 커맨드일 수 있다.
바람직하게는, API는 하프톤 속성 요소를 포함하며, 이미지 커맨드는 하프톤 속성 요소의 설정에 따라 웹 애플리케이션에 렌더링된(rendered) 컬러 이미지를 프린팅을 위한 래스터 이미지 데이터로 변환한다. 하프톤 속성 요소는 디서링(dithering), 에러 디퓨젼(diffusion), 및 컬러 이미지를 래스터 이미지 데이터로 변환하는 임계치 중 하나를 특정할 수 있다.
또한 바람직하게는, API는 휘도 속성 요소를 포함하며, 이미지 커맨드는 휘도 속성 요소의 설정에 따라 컬러 이미지를 프린팅을 위한 래스터 이미지 데이터로 변환한다. 휘도 속성 요소, 예를 들어, 래스터 이미지 데이터의 휘도를 보정하기 위해 0.1-10 범위의 감마 값을 특정할 수 있다.
바람직한 실시예에서, 프린터는 키 코드에 의해 식별가능한 로고를 등록하는 비휘발성, 즉, NV 메모리를 포함하며, 커맨드는 커맨드 버퍼에 키 코드를 부가하는 로고 커맨드를 포함하고, 부가된 키 코드는 NV 메모리에 등록된 로고를 특정(즉, 식별)한다.
커맨드 중 하나는 또한 바코드를 프린트하는 인스트럭션을 커맨드 버퍼에 부가하는 바코드 커맨드일 수 있으며, 바코드 커맨드는 바코드 파라미터를 포함하며, 바코드 파라미터는 바코드의 타입, 바코드의 폭과 길이, 및/또는 바코드로 변환될 데이터 중 적어도 하나를 특정한다.
추가적으로, 커맨드 중 하나는 또한 2차원 심볼을 프린트하는 인스트럭션을 커맨드 버퍼에 부가하는 심볼 커맨드일 수 있으며, 심볼 커맨드는 심볼 파라미터를 포함하며, 심볼 파라미터는 2차원 심볼, 2차원 심볼의 에러 정정 레벨, 또는 2차원 심볼로 변환될 데이터 중 적어도 하나를 특정한다.
커맨드는 제 1 라인을 제 1 방향으로 드로잉하는(drawing) 인스트럭션을 커맨드 버퍼에 부가하는 제 1 라인 커맨드, 및 제 2 라인을 제 2 방향으로 드로잉하는 인스트럭션을 커맨드 버퍼에 부가하는 제 2 라인 커맨드를 또한 포함할 수 있으며, 제 1 라인 커맨드는 라인 세그먼트로서 정의하기 위해 제 1 라인의 개시 위치 및 종단 위치를 특정하는 제 1 라인 파라미터를 포함하고, 제 2 라인 커맨드는 연속 라인으로서 정의하기 위해 제 2 라인의 개시 위치를 특정하고 모든 종단 위치를 배제하는 제 2 라인 파라미터를 포함한다. 바람직하게는, 커맨드 중 다른 하나는 제 2 라인 커맨드에 의해 시작된 제 2 라인을 드로잉하는 것을 종료하는 인스트럭션을 부가하는 제 3 라인 커맨드이며, 제 3 라인 커맨드는 제 3 라인 파라미터를 포함하고, 제 3 라인 파라미터는 제 2 라인의 종단 위치를 특정한다.
또한 바람직하게는, 커맨드 중 하나는 페이지 모드를 전환하는 인스트럭션을 커맨드 버퍼에 부가하는 페이지 모드 커맨드이고, 상기 페이지 모드는 프린트 영역이 정의되고, 데이터는 프린트 영역에 배치되고, 프린트 영역은 배치(batch) 동작으로 프린트되는 프린트 모드이고, 상기 페이지 모드 커맨드는 프린트 영역을 특정하는 좌표를 포함하는 프린트 영역을 부가하는 인스트럭션을 커맨드 버퍼에 더 부가한다. 바람직하게는, 커맨드 중 하나는 페이지 모드를 종료하는 인스트럭션을 커맨드 버퍼에 부가하는 제 2 페이지 모드 커맨드이다. 커맨드는 페이지 모드에 대해 설정을 부가하는 제 3 페이지 모드 커맨드를 더 포함할 수 있으며, 제 3 페이지 커맨드는 페이지 모드에서 프린팅을 위한 방향을 특정하는 제 3 페이지 파라미터, 또는 페이지 모드에서 프린팅을 위한 개시 위치를 특정하는 좌표를 포함한다. 커맨드는 페이지 모드에서 라인 또는 직사각형을 드로잉하는 인스트럭션을 커맨드 버퍼에 부가하는 제 4 페이지 모드 커맨드를 더 포함할 수 있으며, 제 4 페이지 커맨드는 페이지 모드에서 라인 또는 직사각형의 개시 위치 및 종단 위치를 특정하는 좌표를 포함한다. 제 4 페이지 커맨드는 라인 또는 직사각형의 타입을 특정하는 제 4 페이지 파라미터를 포함할 수 있다.
추가적으로, 커맨드 중 하나는 용지를 절단하는 인스트럭션을 커맨드 버퍼에 부가하는 용지 절단 커맨드일 수 있고, 이 용지 절단 커맨드는 용지를 공급하지 않고 용지를 절단하거나 또는 용지를 공급한 후에 용지를 절단하는 것을 특정하는 용지 절단 파라미터를 포함한다.
또한 바람직하게는, 드로어(drawer)는 프린터에 접속하고, 커맨드 중 하나는 드로어를 킥 오픈(kick open)하는 인스트럭션을 커맨드 버퍼에 부가하는 드로어 킥(drawer-kick) 커맨드이다. 드로어 킥 커맨드는 바람직하게 드로어를 개방하도록 인가되는 신호의 ON 시간 지속 기간을 특정하는 제 1 드로어 파라미터를 포함한다. 바람직하게는, 드로어는 2개의 커넥터에 의해 프린터에 접속되고, 드로어 킥 커맨드는 드로어와 프린터를 접속하는 커넥터 중 하나를 특정하는 제 2 드로어 파라미터를 포함한다.
추가적으로, 프린터는 버저(buzzer)를 가질 수 있고 커맨드 중 하나는 버저를 턴 온하는 인스트럭션을 커맨드 버퍼에 부가하는 버저 커맨드일 수 있다. 버저 커맨드는 버저의 작동이 반복되는 패턴 또는 횟수를 특정하는 버저 파라미터를 포함할 수 있다.
어드레스 속성 요소는 타임아웃 기간을 설정하도록 구성될 수 있고, 상기 방법은 바람직하게 타임아웃 기간의 경과에 응답하여 어드레스 속성 요소에 의해 지정된 프린터에서 문서를 프린트하는 프린트 작업을 취소하는 단계를 포함할 수 있다.
어드레스 속성 요소는 문서를 프린터에 전송하는 프린터의 디바이스 식별자를 설정하도록 또한 구성될 수 있다. API는 프린터로부터의 프린트 결과, 에러 코드 및/또는 프린터 스테이터스 중 하나를 포함하는 응답 메시지를 획득하도록 구성된 수신 이벤트 요소를 더 포함할 수 있으며, 이 방법은 어드레스 속성 요소에 의해 지정된 지능 모듈에 접속되는 프린터로부터 응답 메시지를 수신하는 단계를 더 포함할 수 있다. 바람직하게는, 에러 코드 및/또는 프린터 스테이터스는 자동적으로 복구 가능한 에러 및/또는 복구 불가능한 에러 중 하나의 발생을 표시한다. 또한 바람직하게는, 프린터는 커버를 갖고, 에러 코드 및/또는 프린터 스테이터스는 커버가 개방될 때를 표시한다. 또한 바람직하게는, 프린터는 자동 절단기를 갖고, 에러 코드 및/또는 프린터 스테이터스는 자동 절단기에 에러가 발생할 때를 표시한다. 프린터는 프린터에 용지가 있는지를 검출하는 센서를 또한 가질 수 있고, 에러 코드 및/또는 프린터 스테이터스는 센서에 의해 용지가 검출되지 않을 때를 표시한다. 에러 코드 및/또는 프린터 스테이터스는 지능 모듈에 전송된 문서가 신택스 에러를 포함하는지를 또한 표시할 수 있다.
바람직하게는, 에러 코드 및/또는 프린터 스테이터스는 디바이스 식별자를 갖는 프린터가 존재하는 않는지를 표시한다. 프린터가 지능 모듈에 접속된 통신 포트를 갖는 경우, 에러 코드 및/또는 프린터 스테이터스는 통신 포트에서 에러가 검출되는지를 표시할 수 있다. 또한 바람직하게는, 어드레스 속성 요소는 프린터에서 문서를 프린트하는 프린트 작업을 취소하는 타임아웃 기간을 설정하도록 구성되고, 에러 코드 및/또는 프린터 스테이터스는 타임아웃 기간이 경과하는지를 표시한다. 에러 코드 및/또는 프린터 스테이터스는 프린팅이 성공적으로 완료되는지 여부를 또한 표시할 수 있다. 프린터가 커넥터에 의해 드로어를 접속하도록 구성된다고 가정하면, 에러 코드 또는 프린터 스테이터스는 커넥터의 사전 결정된 핀의 스테이터스를 표시할 수 있다. 에러 코드 또는 프린터 스테이터스는 프린터가 오프라인이거나 또는 온라인으로 복귀를 기다리는 중인지, 또는 프린터로부터 응답이 수신되지 않았는지 여부를 또한 표시할 수 있다. 프린터는 용지를 공급하는 스위치를 또한 가질 수 있다. 이 경우에, 에러 코드 및/또는 프린터 스테이터스는 용지가 스위치의 동작에 의해 공급되는지 여부를 표시할 수 있다. 프린터는 버저를 또한 가질 수 있고, 그 경우에 에러 코드 및/또는 프린터 스테이터스는 버저가 턴 온되는지 여부를 표시할 수 있다. 프린터 또는 지능 모듈은 문서를 프린트하는 프린트 작업을 스풀링하도록 구성된 스풀러(spooler)를 가질 수 있고, 에러 코드 또는 프린터 스테이터스는 스풀러가 정지되었는지 여부를 표시할 수 있다.
바람직하게는 API는 API를 초기화하는 구성자를 포함한다. 이 경우에, 상기 방법은 문서를 생성하는 단계 이전에 API를 초기화하는 단계를 더 포함할 수 있다.
이 목적은, 웹 브라우저에 의해 실행되는 웹 애플리케이션에서 문서를 생성하고, 네트워크를 통해 문서를 프린터에 전송하는 방법으로서, 이 방법은, 프린터에 접속하도록 구성되고, 어드레스를 설정하고, 문서를 수신하고, 문서를 프린터에 전송하도록 구성되는 지능 모듈을 제공하는 단계와, 문서를 생성하고 커맨드 버퍼를 포함하는 제 1 객체와, 제 1 객체 요소를 프로세스하고, 프린터를 제어하는 커맨드를 커맨드 버퍼에 부가하도록 구성되고, 커맨드 버퍼에 커맨드를 누적함으로써 문서를 생성하는 제 1 방법 요소와, 문서를 전송하는 제 2 객체와, 지능 모듈의 어드레스를 지정하도록 구성된 어드레스 속성 요소와, 제 2 객체를 프로세스하고, 버퍼 내의 문서를 지능 모듈에 전송하도록 구성된 제 2 방법 요소를 제공하는 애플리케이션 프로그램 인터페이스(API)를 웹 애플리케이션에 내장하는 단계와, 웹 애플리케이션에 내장된 제 1 방법 요소에 의해 문서를 생성하는 단계와, 웹 애플리케이션에 내장된 제 2 방법 요소에 의해, 어드레스 속성 요소에 의해 지정된 어드레스를 갖는 지능 모듈에 문서를 전송하는 단계와, 지능 모듈로부터 프린터에 문서를 전송하는 단계를 포함하는 방법으로 또한 충족될 수 있다.
바람직하게는 이 접근법에서, API는 제 1 객체를 초기화하는 제 1 구성자, 및 제 2 객체를 초기화하는 제 2 구성자를 포함하며, 이 방법은 문서를 생성하는 단계 이전에 제 1 객체를 초기화하는 단계와, 문서를 전송하는 단계 이전에 제 2 객체를 초기화하는 단계를 더 포함한다.
이 방법은 프린터에서 용지상에 문서를 프린트하는 단계를 더 포함할 수 있다.
API는 프린터로부터의 프린트 결과, 에러 코드 및/또는 프린터 스테이터스 중 하나를 포함하는 응답 메시지를 획득하도록 구성되는 수신 이벤트 요소를 더 포함할 수 있으며, 이 방법은 어드레스 속성 요소에 의해 지정된 지능 모듈에 접속되는 프린터로부터 응답 메시지를 수신하는 단계를 더 포함할 수 있고, 제 2 객체는 응답 메시지를 수신하는 단계 이전에 개시된다.
이 목적은, 웹 브라우저에 의해 실행되는 웹 애플리케이션에서 문서를 생성하고, 네트워크를 통해 문서를 프린터에 전송하는 방법으로서, 이 방법은, 어드레스를 설정하도록 구성되는 프린터를 제공하는 단계와, (i) 프린터의 어드레스를 지정하도록 구성되는 어드레스 속성 요소와, (ii) 프린터를 제어하는 커맨드를 커맨드 버퍼에 부가하도록 구성되고, 커맨드 버퍼에 커맨드를 누적함으로써 문서를 생성하는 제 1 방법 요소와, (iii) 버퍼 내의 문서를 지능 모듈에 전송하도록 구성되는 제 2 방법 요소를 제공하는 애플리케이션 프로그램 인터페이스(API)를 상기 웹 애플리케이션에 내장하는 단계와, 웹 애플리케이션에 내장된 제 1 방법 요소에 의해 문서를 생성하는 단계와, 웹 애플리케이션에 내장된 제 2 방법 요소에 의해, 어드레스 속성 요소에 의해 지정된 어드레스를 갖는 프린터에 문서를 전송하는 단계와, 문서를 프린트하는 단계를 포함하는 방법으로 또한 충족될 수 있다.
이 목적은, 웹 브라우저에 의해 실행되는 웹 애플리케이션에서 문서를 생성하고, 네트워크를 통해 문서를 프린터에 전송하는 시스템으로서, 이 시스템은, 프린터에 접속하도록 구성되고 어드레스를 설정하도록 구성되는 지능 모듈과, 네트워크를 통해 지능 모듈에 접속되고 웹 애플리케이션이 인스톨된 웹 서버와, 웹 애플리케이션에 내장되고, (i) 지능 모듈의 어드레스를 지정하도록 구성되는 어드레스 속성 요소와, (ii) 프린터를 제어하는 커맨드를 커맨드 버퍼에 부가하도록 구성되고, 커맨드 버퍼에 커맨드를 누적함으로써 문서를 생성하는 제 1 방법 요소와, (iii) 버퍼 내의 문서를 지능 모듈에 전송하도록 구성되는 제 2 방법 요소를 포함하는 애플리케이션 프로그램 인터페이스(API)를 포함하고, 문서는 제 1 방법 요소에 의해 생성되고, 제 2 방법 요소에 의해, 어드레스 속성 요소에 의해 지정된 어드레스를 갖는 지능 모듈에 전송되고, 지능 모듈이 문서를 프린터에 전송하는 시스템으로 또한 충족될 수 있다.
바람직하게는, 드로어는 프린터에 접속되며, 커맨드 중 하나는 그 드로어를 킥 오픈하는 인스트럭션을 커맨드 버퍼에 부가하는 드로어 킥(drawer-kick) 커맨드이다.
프린터는 버저를 또한 구비할 수 있고, 커맨드 중 하나는 버저의 턴 온의 인스트럭션을 커맨드 버퍼에 부가하는 버저 커맨드이다.
상기 목적은, HTML5 Canvas으로 렌더링된 이미지를 프린터에 전송하고, 프린터에 의해 이미지를 프린트하는 방법으로서, 이 방법은, 프린터에 접속하도록 구성되고, 어드레스를 설정하도록 구성되는 지능 모듈을 제공하는 단계와, (i) 렌더링된 이미지를 래스터 이미지 데이터로 변환하는 변환 방법을 지정하도록 구성되는 제 1 속성 요소와, (ii) 지능 모듈의 어드레스를 지정하도록 구성되는 제 2 속성 요소와, (iii) 이미지를 래스터 이미지 데이터로 변환하고 변환된 래스터 이미지 데이터를 지능 모듈에 전송하도록 구성되는 방법 요소를 제공하는 애플리케이션 프로그램 인터페이스(API)를 상기 웹 애플리케이션에 내장하는 단계와, 제 1 속성 요소에 의해 지정된 변환 방법에 따라 방법 요소에 의해 이미지를 래스터 이미지 데이터로 변환하는 단계와, 제 2 속성 요소에 의해 지정된 어드레스에 따라 방법 요소에 의해 래스터 이미지 데이터를 지능 모듈에 전송하는 단계와, 래스터 이미지 데이터를 지능 모듈로부터 프린터에 전송하는 단계를 포함하는 방법으로 또한 충족될 수 있다.
상기 목적은 웹 브라우저에 의해 실행되도록 구성되는 애플리케이션에서 네트워크를 통해 프린터에 전송되도록 구성된 문서를 생성하거나 편집하는 방법으로서, 이 방법은, 프린터를 제어하는 커맨드를 커맨드 버퍼로 부가되도록 제공하되, 문서가 커맨드 버퍼에 커맨드를 누적함으로써 생성되는 단계와, 프린터의 어드레스를 어드레스 속성 요소로 설정하도록 인에이블된 설정 스크린을 디스플레이하는 단계와, 문서를 편집하고 및/또는 생성하도록 인에이블된 편집 스크린을 디스플레이하되, 편집 스크린이 아이콘을 포함하고, 각각의 아이콘은 프린터를 제어하는 커맨드 중 하나에 대응하는 단계와, 커맨드에 대응하는 아이콘 중 특정된 하나가 편집 스크린상에서 선택되는 경우, 커맨드의 파라미터를 입력하도록 인에이블된 입력 박스를 편집 스크린상에 디스플레이하는 단계와, 편집 스크린에서 선택되거나 입력되는 파라미터를 갖는 커맨드를 커맨드 버퍼에 부가하는 단계를 포함하는 방법으로 또한 충족될 수 있다.
바람직하게는, 이 방법은 편집 스크린상에서 편집되거나 생성된 문서를 XML 언어 코드로 변환하는 단계와, 코드를 디스플레이하는 단계를 더 포함할 수 있다. 상기 방법은 편집 스크린상에서 편집되거나 생성된 문서의 제 1 부분을 프린트 프리뷰(preview)로 변환하는 단계와, 프린트 프리뷰를 디스플레이하는 단계를 더 포함할 수 있다. 선택적으로, 상기 방법은 어드레스 속성 요소에 의해 지정된 어드레스를 갖는 프린터에 문서를 전송하는 버튼을 디스플레이하는 단계를 또한 포함할 수 있다.
상기 목적은, 웹 브라우저에 의해 실행되는 웹 애플리케이션에서 문서를 생성하고, 프린터에 문서를 전송하고, 네트워크를 통해 프린터의 스테이터스를 획득하는 방법으로서, 이 방법은, 프린터에 접속하도록 구성되는 지능 모듈(지능 모듈은 바람직하게는 물리적 전자 디바이스임)을 제공하되, 지능 모듈이 어드레스를 설정하고, 문서를 수신하고, 문서를 프린터에 전송하도록 구성되는 단계와, (i) 지능 모듈의 어드레스를 지정하도록 구성되는 어드레스 속성 요소와, (ii) 프린터의 하나 이상의 스테이터스를 체크하도록 구성되는 스테이터스 이벤트 요소와, (iii) 스테이터스 이벤트 요소를 동작시키는 것을 인에이블하도록 구성되는 개시 방법 요소(open method-element)를 포함하는 애플리케이션 프로그램 인터페이스(API)를 상기 웹 애플리케이션에 내장하는 단계와, 지능 모듈의 어드레스를 어드레스 속성 요소에 설정하는 단계와, 프린터의 특정된 스테이터스를 수신하기 위해 스테이터스 이벤트 요소를 동작시키는 것을 인에이블하는 단계를 포함하는 방법으로 또한 충족될 수 있다.
바람직하게는, API는 스테이터스 이벤트 요소의 동작을 디스에이블(disable)하도록 구성되는 종료 방법 요소(close method element)를 더 포함하며, 상기 방법은 스테이터스 이벤트 요소를 디스에이블하는 단계를 더 포함할 수 있다.
API는 프린터의 스테이터스를 업그레이딩(upgrading)하는 시간 간격을 특정하는 간격 속성 요소를 포함하며, 상기 방법은 시간 간격을 간격 속성 요소로 설정하는 단계를 더 포함할 수 있다.
API는 프린터로부터 최후에 획득된 스테이터스를 특정하는 스테이터스 속성 이벤트를 더 포함할 수 있다.
추가적으로, 이 방법은 프린터의 디바이스 식별자를 설정하는 단계를 더 포함하며, 어드레스 속성 요소는 디바이스 식별자에 의해 특정된 프린터의 스테이터스를 수신하는 프린터의 디바이스 식별자를 지정하도록 구성된다.
선택적으로, 웹 애플리케이션은 지능 모듈 또는 웹 서버에 위치할 수 있다.
프린터의 스테이터스는 프린터가 온라인인지 또는 오프라인인지를 표시하는 스테이터스를 포함할 수 있다.
추가적으로, 프린터는 커버를 구비할 수 있고, 프린터의 스테이터스는 커버가 개방인지 또는 폐쇄인지를 표시하는 스테이터스를 포함할 수 있다.
바람직하게는, API는, (i) 프린터를 제어하는 커맨드를 커맨드 버퍼에 부가하도록 구성되고, 버퍼에 커맨드를 누적함으로써 문서를 생성하는 제 1 방법 요소와, (ii) 버퍼 내의 문서를 지능 모듈에 전송하도록 구성되는 제 2 방법 요소를 더 제공한다. 이 경우에, 이 방법은, 웹 애플리케이션에 내장된 제 1 방법 요소에 의해 문서를 생성하는 단계와, 웹 애플리케이션에 내장된 제 2 방법 요소에 의해, 어드레스 속성 요소에 의해 지정된 어드레스를 갖는 지능 모듈에 문서를 전송하는 단계와, 문서를 지능 모듈로부터 프린터에 전송하는 단계를 더 포함할 수 있다.
이 방법은 프린터에서 용지상에 문서를 프린트하는 단계를 또한 포함할 수 있다. 이 경우에, 프린터의 스테이터스는 프린터에서의 용지 공급이 종료되거나 또는 거의 종료되는지를 표시하는 스테이터스를 포함할 수 있다. 바람직하게는, 드로어는 프린터에 접속되고, 커맨드 중 하나는 드로어를 킥 오픈하는 인스트럭션을 커맨드 버퍼에 부가하는 드로어 킥 커맨드이다. 프린터의 스테이터스는 드로어가 개방인지 또는 폐쇄인지를 표시하는 스테이터스를 포함할 수 있다.
상기 목적은, 웹 브라우저에 의해 실행되는 웹 애플리케이션에서 문서를 생성하고, 프린터에 문서를 전송하고, 네트워크를 통해 프린터의 스테이터스를 획득하는 시스템으로서, 이 시스템은, 프린터에 접속하도록 구성되고, 어드레스를 설정하도록 구성된 지능 모듈과, 네트워크를 통해 지능 모듈에 접속되고 웹 애플리케이션이 인스톨된 웹 서버와, 웹 애플리케이션에 내장되고, (i) 지능 모듈의 어드레스를 지정하도록 구성되는 어드레스 속성 요소와, (ii) 프린터의 하나 이상의 스테이터스를 체크하도록 구성되는 스테이터스 이벤트 요소와, (iii) 스테이터스 이벤트 요소는 동작을 인에이블하도록 구성되는 개시 방법 요소를 포함하는 애플리케이션 프로그램 인터페이스(API)를 포함하고, 개시 방법 요소가 스테이터스 이벤트 요소의 동작을 인에이블한 후에, 스테이터스 이벤트 요소에 의해 지정된 프린터의 스테이터스가, 어드레스 속성 요소에 의해 지정된 프린터로부터 웹 브라우저에 전송되는 시스템으로 또한 충족될 수 있다.
바람직하게는, 프린터는 커버를 갖고, 프린터의 스테이터스는 커버가 개방인지 또는 폐쇄인지를 표시하는 스테이터스를 포함한다.
또한 바람직하게는, 이 API는, 프린터를 제어하는 커맨드를 커맨드 버퍼에 부가하도록 구성되고, 버퍼에 커맨드를 누적함으로써 문서를 생성하는 제 1 방법 요소와, 커맨드 버퍼 내의 문서를 지능 모듈에 전송하도록 구성되는 제 2 방법 요소를 더 제공하며, 문서는 제 1 방법 요소에 의해 생성되고, 제 2 방법 요소에 의해, 어드레스 속성 요소에 의해 지정된 어드레스를 갖는 지능 모듈에 전송된다.
바람직하게는, 드로어는 프린터에 접속되고, 커맨드 중 하나는 드로어를 킥 오픈하는 인스트럭션을 커맨드 버퍼에 부가하는 드로어 킥 커맨드이다.
프린터의 스테이터스는 드로어가 개방인지 또는 폐쇄인지를 표시하는 스테이터스를 더 포함할 수 있다.
본 발명의 보다 완전한 이해와 함께 다른 목적 및 성취는 첨부 도면과 함께 후술하는 상세한 설명 및 청구범위를 참조함으로써 명백해지고 이해될 것이다.
도면에서 동일한 참조 부호는 동일한 부분을 지칭하며,
도 1은 통상적인 프린터 서버 구성을 도시하고,
도 2는 통상적인 프린터 다이얼로그 박스를 도시하고,
도 3은 본 발명에 따른 제 1 실시예를 도시하고,
도 4는 본 발명에 따른 제 2 실시예를 도시하고,
도 5는 본 발명에 따라 커맨드 버퍼를 도시하고 제어 커맨드의 몇몇 예를 예시하고,
도 6은 POS 시스템에 적용되는 바와 같은 본 발명의 특정의 예를 도시하고,
도 7은 ePOS-Print API에 의해 구현될 수 있는 프린팅 타입의 예를 도시하고,
도 8은 ePOS-Print-Canvas API에 의해 구현될 수 있는 프린팅 타입의 예를 도시하고,
도 9는 본 발명의 실시예에 따른 프린트 흐름의 예를 도시하고,
도 10은 본 발명에 따른 시스템 구성 예를 도시하고,
도 11은 TM 지능 프린터로의 웹 애플리케이션의 등록을 도시하고,
도 12는 본 발명에 따른 ePOS-Print API를 이용하여 생성된 샘플 프로그램 스크린의 예를 도시하고,
도 13은 도 12의 설정 버튼의 작동에 응답하여 호출될 수 있는 설정 윈도우의 예를 도시하고,
도 14는 ePOS-Print API를 이용하는 제 1 샘플 프린트 아웃 및 ePOS-Print-Canvas API를 이용하는 제 2 샘플 프린트 아웃을 도시하고,
도 15는 그 초기 디스플레이 상태로부터 프린트 작업 완료까지의 프로세스의 단계 흐름을 도시하는 샘플 플로우 차트를 도시하고,
도 16은 쿠폰 발행에 대한 프로세스의 단계 흐름을 도시하는 샘플 플로우 차트를 도시하고,
도 17은 본 발명에 따른 동작 환경의 예를 도시하고,
도 18은 샘플 프로그램에 대해 환경 설정을 구성하는 프로세스 흐름을 도시하고,
도 19는 TM 지능 프린터에 대한 네트워크 설정의 예를 도시하고,
도 20은 디바이스 설정의 예를 도시하고,
도 21은 구성될 수 있는 디바이스 설정의 예를 도시하고,
도 22는 ePOS-Print API를 이용하는 프로그래밍에 대한 샘플 작업 흐름을 도시하고,
도 23은 ePOS-Print API를 내장하기 위한 HTML <스크립트> 태그를 이용하는 예를 도시하고,
도 24는 프린트 문서를 생성하는 프로그램 코드 세그먼트의 예를 도시하고,
도 25는 텍스트 프린트 문서를 생성하는 스크립트 코드의 예를 도시하고,
도 26은 그래픽 프린트 문서를 생성하는 샘플 스크립트 코드를 도시하고,
도 27은 페이지 모드 프린트 문서를 생성하는 샘플 코드를 도시하고,
도 28은 프린트 문서의 송신을 위한 샘플 코드를 도시하고,
도 29는 프린터 종단 지점 어드레스에 관한 세부사항을 갖는 테이블을 도시하고,
도 30은 콜백(callback) 기능을 구현하는 샘플 코드를 도시하고,
도 31은 콜백 기능에 대한 에러 취급 방법의 예를 도시하고,
도 32는 프린팅 없이 프린터 스테이터스를 체크하기 위한 스테이터스 이벤트 통지 기능의 사용을 도시하고,
도 33은 ePOS-Print-Canvas API를 이용하는 프로그래밍에 대한 작업 흐름을 도시하고,
도 34는 ePOS-Print-Canvas API를 내장하는 샘플 코드를 도시하고,
도 35는 HTML5 Canvas에서 렌더링하는 샘플 코드를 도시하고,
도 36은 프린팅을 위한 프린트 문서를 송신하는 샘플 코드를 도시하고,
도 37은 결과 수신 및 콜백 기능을 프린트하는 샘플 코드를 도시하고,
도 38은 콜백 기능에 의해 에러를 취급하는 샘플 코드를 도시하고,
도 39는 프린팅 없이 프린터 스테이터스를 체크하기 위한 스테이터스 이벤트 통지 기능을 사용하는 샘플 코드를 도시하고,
도 40, 도 41, 도 42(a) 및 도 42(b)는 ePOS-Print API의 방법 및 구성요소의 몇몇을 열거하고,
도 43은 ePOS-Print Builder object의 구성자에 대한 샘플 코드를 도시하고,
도 44는 정렬 파라미터의 타입의 예를 도시하고,
도 45는 ePOS-Print Builder object에 대해 반환 값을 도시하고,
도 46은 예외 에러를 도시하고,
도 47은 텍스트 정렬의 사용을 도시하는 샘플 코드를 도시하고,
도 48은 라인 공급 공간을 30 도트로 설정하기 위한 샘플 코드를 도시하고,
도 49는 회전 파라미터에 대한 불린(Boolean) 값을 도시하고,
도 50은 텍스트 회전을 설정하기 위한 샘플 코드를 도시하고,
도 51은 문자 스트링에서 프린트 불가능한 문자를 표시하기 위한 탈출 시퀀스를 도시하고,
도 52는 addText(data)의 사용을 도시하는 샘플 코드를 도시하고,
도 53은 타겟 언어를 지정하기 위한 파라미터 "lang"의 예를 도시하고,
도 54는 방법 addTextLang(lang)의 사용을 도시하는 샘플 코드를 도시하고,
도 55는 폰트 파라미터에 대한 샘플 값을 도시하고,
도 56은 방법 addTextFont(font)의 사용을 도시하는 샘플 코드를 도시하고,
도 57은 파라미터 "smooth"에 대해 가능한 값을 도시하고,
도 58은 방법 addTextSmooth(smooth)의 사용을 도시하는 샘플 코드를 도시하고,
도 59는 dw에 대한 파라미터 값을 도시하고,
도 60은 dh에 대한 파라미터 값을 도시하고,
도 61은 텍스트 크기를 2배의 폭 및 2배의 높이로 설정하기 위한 샘플 코드를 도시하고,
도 62는 파라미터 "width"에 대해 가능한 값을 도시하고,
도 63은 파라미터 "height"에 대해 가능한 값을 도시하고,
도 64는 ×4의 수평 스케일 및 ×4의 수직 스케일을 설정하기 위한 샘플 코드를 도시하고,
도 65는 파라미터 "reverse"에 대해 가능한 값을 도시하고,
도 66은 파라미터 "ul"에 대해 가능한 값을 도시하고,
도 67은 파라미터 "en"에 대해 가능한 값을 도시하고,
도 68은 파라미터 "color"에 대해 가능한 값을 도시하고,
도 69는 언더라인 스타일을 설정하기 위한 샘플 코드를 도시하고,
도 70은 좌측 종단으로부터의 120 도트로 프린트 위치를 설정하기 위한 샘플 코드를 도시하고,
도 71은 30 도트 단위로 용지를 공급하기 위한 샘플 코드를 도시하고,
도 72는 31 라인 단위로 용지를 공급하기 위한 샘플 코드를 도시하고,
도 73은 문자 스트링을 프린트한 후에 새로운 라인을 개시하기 위한 샘플 코드를 도시하고,
도 74는 addImage 방법 내에서 파라미터 "color"에 대한 샘플 값을 도시하고,
도 75는 addImage 방법 내에서 파라미터 "mode"에 대한 샘플 값을 도시하고,
도 76은 페이지 모드에서 이미지를 300 도트 폭 및 300 도트 높이로 프린트하기 위한 샘플 코드를 도시하고,
도 77은 addLogo 방법의 사용을 도시하는 샘플 코드를 도시하고,
도 78 내지 도 81은 바코드 타입의 예를 도시하고,
도 82는 hri 파라미터에 대해 몇몇 가능한 값을 도시하고,
도 83은 바코드를 어떻게 프린트할지를 도시하는 샘플 코드를 도시하고,
도 84 및 도 85는 addSymbol 방법 내에서 파라미터 "data"에 대한 2D-코드 타입 설명의 예를 도시하고,
도 86은 addSymbol 방법 내에서 파라미터 "type"에 대한 샘플 값을 도시하고,
도 87은 addSymbol 방법 내에서 파라미터 "level"에 대한 샘플 값을 도시하고,
도 88은 2차원 심볼을 프린트하기 위한 샘플 코드를 도시하고,
도 89는 addHline 방법에 대한 몇몇 스타일 파라미터를 도시하고,
도 90은 2배 수평 라인을 드로잉하기 위한 샘플 코드를 도시하고,
도 91은 addVLineBegin 방법에 대한 파라미터 스타일의 예를 도시하고,
도 92는 좌측 종단으로부터 100 도트 및 200 도트에 얇은 수직 라인을 드로잉하기 위한 샘플 코드를 도시하고,
도 93은 addVLineEnd 방법에 대한 파라미터 스타일의 예를 도시하고,
도 94는 좌측 종단으로부터 100 도트 및 200 도트에 얇은 수직 라인을 드로잉하기 위한 샘플 코드를 도시하고,
도 95는 페이지 모드에서 문자 "ABCDE"를 프린트하기 위한 샘플 코드를 도시하고,
도 96은 원점(100, 50), 200 도트의 폭, 및 30 도트의 높이를 갖는 프린트 영역을 특정하고 문자 "ABCDE"를 프린트하기 위한 샘플 코드를 도시하고,
도 97은 addPageDirection 방법의 파라미터 "dir"에 대한 몇몇 예를 도시하고,
도 98은 문자 "ABCDE"를 시계 방향으로 90도 회전시켜 프린트하기 위한 샘플 코드를 도시하고,
도 99는 addPageArea 방법에 의해 특정된 영역에서 (50, 30)을 프린트 개시 위치로 특정하고 문자 "ABCDE"를 프린트하기 위한 샘플 코드를 도시하고,
도 100은 addPageLine 방법에서 "style" 파라미터의 예를 도시하고,
도 101은 개시 위치(100, 0) 및 종단 위치(500, 0) 사이의 얇은 실선을 드로잉하기 위한 샘플 코드를 도시하고,
도 102는 addPageRectangle 방법에서 "style" 파라미터의 예를 도시하고,
도 103은 개시 위치(100, 0) 및 종단 위치(500, 200)에 꼭지점을 갖는 직사각형을 얇은 이중선으로 드로잉하기 위한 샘플 코드를 도시하고,
도 104는 addCut 방법의 샘플 예이고,
도 105는 공급 차단 동작을 수행하기 위한 샘플 코드를 도시하고,
도 106은 addCut 방법에 대한 파라미터 "drawer"의 예를 도시하고,
도 107은 addCut 방법에 대한 파라미터 "time"의 예를 도시하고,
도 108은 드로어 킥 커넥터의 핀 "2"에 100msec 펄스 신호를 전송하기 위한 샘플 코드를 도시하고,
도 109는 버저 패턴의 예를 도시하고,
도 110은 addSound 방법에서 파라미터 "repeat"를 어떻게 설정할지에 대한 예를 도시하고,
도 111은 사운드 패턴 "A"를 3회 반복하기 위한 샘플 코드를 도시하고,
도 112는 방법 to String()에 대한 사용을 도시하는 샘플 코드를 도시하고,
도 113은 모노크롬(2 톤) 프린팅에 적용될 하프톤 프로세싱 방법의 내용을 도시하고,
도 114는 에러 디퓨젼으로서 하프톤을 설정하기 위한 샘플 코드를 도시하고,
도 115는 휘도를 2.2로 설정하기 위한 샘플 코드를 도시하고,
도 116은 커맨드 버퍼를 클리어하고 이를 그 초기 상태로 리셋하기 위한 샘플 코드를 도시하고,
도 117은 ePOSPrint(address)의 사용을 도시하는 샘플 코드를 도시하고,
도 118은 send(request) 방법의 사용을 도시하는 샘플 코드를 도시하고,
도 119는 open() 방법의 사용을 도시하는 샘플 코드를 도시하고,
도 120은 close() 방법의 사용을 도시하는 샘플 코드를 도시하고,
도 121은 어드레스 속성의 사용의 예를 도시하고,
도 122는 인에이블된 속성을 사용하는 예를 도시하고,
도 123은 간격 속성을 사용하는 예를 도시하고,
도 124는 스테이터스 속성을 사용하는 예를 도시하고,
도 125는 응답 객체의 몇몇 속성을 도시하고,
도 126은 성공의 값을 도시하고,
도 127은 코드의 값을 도시하고,
도 128은 스테이터스의 값을 도시하고,
도 129는 프린트 문서를 생성하여 전송하고, 프린트 결과를 메시지 박스에 디스플레이하기 위한 샘플 코드를 도시하고,
도 130은 에러 객체의 몇몇 속성을 열거하고,
도 131은 통신 에러가 발생하는 경우 프린트 문서를 생성하여 전송하고, HTTP 스테이터스 코드를 메시지 박스에 디스플레이하기 위한 샘플 코드를 도시하고,
도 132는 onstatuschange 속성을 사용하는 예를 도시하고,
도 133은 ononline 속성을 사용하는 예를 도시하고,
도 134는 onoffline 속성을 사용하는 예를 도시하고,
도 135는 onpoweroff 속성을 사용하는 예를 도시하고,
도 136은 foncoverok 속성을 사용하는 예를 도시하고,
도 137은 oncoveropen 속성을 사용하는 예를 도시하고,
도 138은 onpaperok 이벤트를 사용하는 예를 도시하고,
도 139는 onpapernearend 이벤트를 사용하는 예를 도시하고,
도 140은 onpaperend 이벤트를 사용하는 예를 도시하고,
도 141은 ondrawerclosed 이벤트를 사용하는 예를 도시하고,
도 142는 ondraweropen 이벤트를 사용하는 예를 도시하고,
도 143은 ePOS-Print-Canvas API의 몇몇 구성요소의 리스트를 도시하고,
도 144는 새로운 ePOS-Print Canvas API 객체의 생성을 도시하는 샘플 코드를 도시하고,
도 145는 파라미터 "cut"의 예를 도시하고,
도 146은 파라미터 "mode"의 예를 도시하고,
도 147은 Canvas(ID='myCanvas')를 프린트하기 위한 샘플 코드를 도시하고,
도 148은 open() 방법의 사용을 도시하는 샘플 코드를 도시하고,
도 149는 close() 방법의 사용을 도시하는 샘플 코드를 도시하고,
도 150은 어드레스 속성의 사용을 도시하는 샘플 코드를 도시하고,
도 151은 인에이블된 속성의 사용을 도시하는 샘플 코드를 도시하고,
도 152는 간격 속성의 사용을 도시하는 샘플 코드를 도시하고,
도 153은 스테이터스 속성의 사용을 도시하는 샘플 코드를 도시하고,
도 154는 몇몇 하프톤 속성을 도시하고,
도 155는 하프톤 속성의 사용을 도시하는 샘플 코드를 도시하고,
도 156은 휘도 속성의 설정을 도시하는 샘플 코드를 도시하고,
도 157은 응답 객체의 몇몇 속성을 도시하고,
도 158은 성공의 값을 도시하고,
도 159는 코드의 값을 도시하고,
도 160은 스테이터스의 값을 도시하고,
도 161은 Canvas(ID=myCanvas)를 프린트하고, 프린트 결과를 메시지 박스에 디스플레이하기 위한 샘플 코드를 도시하고,
도 162는 에러 객체의 몇몇 속성을 열거하고,
도 163은 통신 에러가 발생하는 경우 Canvas(ID=myCanvas)를 프린트하고, HTTP 스테이터스 코드를 메시지 박스에 디스플레이하기 위한 샘플 코드를 도시하고,
도 164는 onstatuschange 이벤트를 사용하는 예이고,
도 165는 ononline 속성을 사용하는 예를 도시하고,
도 166은 onoffline 속성을 사용하는 예를 도시하고,
도 167은 onpoweroff 이벤트를 사용하는 예를 도시하고,
도 168은 oncoverok 이벤트를 사용하는 예를 도시하고,
도 169는 oncoveropen 이벤트를 사용하는 예를 도시하고,
도 170은 onpaperok 이벤트를 사용하는 예를 도시하고,
도 171은 onpapernearend 이벤트를 사용하는 예를 도시하고,
도 172는 onpaperend 이벤트를 사용하는 예를 도시하고,
도 173(a)는 ondrawerclosed 이벤트를 사용하는 예를 도시하고,
도 173(b)는 ondraweropen 이벤트를 사용하는 예를 도시하고,
도 174는 본 발명에 따른 ePOS Print 에디터에 대한 샘플 메인 페이지(즉, index.html, 또는 홈 페이지)를 도시하고,
도 175는 본 발명에 따른 ePOS Print 에디터에 대한 "Setting" 탭의 선택으로부터 초래되는 설정 스크린을 도시하고,
도 176은 설정 스크린에 의해 제공되는 옵션의 몇몇을 개요하는 테이블을 도시하고,
도 177은 본 발명에 따른 ePOS Print 에디터의 편집 스크린의 다른 형태를 도시하고,
도 178은 본 발명에 따른 ePOS Print 에디터의 샘플 프리뷰(preview) 이미지를 도시하고,
도 179는 선택된 프린트 탭을 갖는 본 발명의 ePOS-Print 에디터의 샘플 뷰(view)를 도시하고,
도 180은 본 발명에 따른 임포트(import) 스크린을 도시하고,
도 181은 선택된 API 탭을 갖는 본 발명의 ePOS-Print 에디터의 샘플 뷰를 도시한다.
이전에는, 인터넷상에서 웹 페이지로부터 프린트하기 위해, 사용자는 통상적으로 웹 브라우저의 인터페이스상에서 웹 브라우저의 프린트 선택 버튼을 거치거나 또는 인터넷상에서 제3자 프린팅 서비스를 거쳐야 했다. 웹 브라우저는 프린터와 같은 로컬 리소스에 대한 액세스를 제어한다. 기본적으로, 웹 브라우저는 로컬 오퍼레이팅 시스템에 대한 인터페이스로서 기능하며, 이는 또한 임의의 인스톨된 프린터 드라이버에 대한 액세스를 제어한다. 인터넷상에서 제3자 프린팅 서비스를 통해 프린트하고자 한다면, 프린트될 문서는 사용자의 로컬 디바이스상에서만이 아니라, 인터넷상에 또한 존재할 필요가 있다. 어느 한 경우에도, 사용자는 이용가능한 등록된 프린터 및 프린팅 옵션 중에서 선택하기 위해 프린터 다이얼로그 박스를 거치는 것이 요구되고, 이들 중 어느 것도 프린트하고자 하는 웹 페이지에 대해 알려져 있지 않다.
네트워크 프린팅의 능력을 향상시키기 위해, 본 발명은 웹 애플리케이션, 즉, 웹 페이지의 능력을 증대시키고, 그리고 특히, 웹 브라우저의 프린트 선택 버튼을 거치거나, 또는 제3자 인터넷 프린팅 서비스에 의존하지 않고서, 네트워크 프린터 및 비(non)네트워크 프린터를 직접 제어하기 위한 웹 페이지 내에서 실행되는 스크립트 애플리케이션(즉, 위젯, 방법 등)의 능력을 증대시키도록 시도한다.
바람직한 실시예에서, 프린터는 로컬 프린터 및/또는 원격 프린터일 수 있다. 즉, 본 발명은 웹 페이지 스크립트 애플리케이션이, 웹 브라우저로부터 명시적인 프린팅 허용 또는 프린팅 지원을 필요로 하지 않고, 프린트 문서를 생성하고 프린터와 통신하고, 프린터를 제어할 수 있도록 한다. 스크립트 애플리케이션에 의해 적접 생성되는 프린트 문서에 부가하여, 프린트 문서는 프린트되기 위해 인터넷상에서 존재할 필요가 없다. 바람직한 구현예로서, 스크립트 애플리케이션이 후술하는 설명에서 언급될 때마다, 자바 기반형 스크립트 언어인 자바스크립트 언어로 구현되는 것으로 기술된다. 그러나, 본 발명은 당 분야에서 알려진 다른 스크립트 언어를 이용하여 구현될 수 있음이 이해될 것이다.
본 발명은 웹 페이지에 프린팅 능력을 부가하고, 웹 페이지는 통상적으로 웹 브라우저를 통해 액세스되므로, 본 발명의 바람직한 실시예는 웹 브라우저를 실행할 수 있는 로컬 컴퓨팅 디바이스를 포함한다. 기존의 네트워크 및 비네트워크 프린터에 대해 본 발명의 사용을 용이하게 하기 위해, 웹 페이지는, 웹 페이지로부터 프린팅 인스트럭션을 수신하고 접속된 프린터에 대해 적절한 통신 포맷/언어를 변환할 수 있는 인터페이스 박스(즉, 디바이스, 장치, 또는 모듈)를 통해 통신하는 것이 또한 바람직하다. 바람직하게는, 인터페이스 박스는 웹 페이지와 프린터 사이의 통신에 대한 변환 서비스를 제공하고, 주어진 프린터에 대해 적절한 프린트 문서를 생성하기 위해 임의의 필요로 하는 도움을 또한 제공한다. 인터페이스 박스는 컴퓨팅 및 결정 수행 능력을 가지므로, 지능 디바이스이다. 따라서, 설명의 편의상, 인터페이스 박스는 본 명세서에서 "지능 모듈"이라 불리운다.
프린터가 비네트워크 프린터가 아닌 경우, 로컬 프린터는 (바람직하게는 물리적 컴퓨팅 장치/디바이스인) 지능 모듈을 통해 (웹 브라우저가 인스톨되는) 로컬 컴퓨팅 디바이스에 접속된다. 이와 달리, 프린터가 네트워크 프린터인 경우, 지능 모듈은 로컬 프린터와의 통신 인터페이스로서 또한 기능한다. 또한, 네트워크 환경에서, 지능 모듈은 다수의 (네트워크 및 비네트워크) 프린터에 대한 통신 인터페이스로서 기능할 수 있다.
본 발명은 웹 브라우저 및 프린터(들)를 갖는 임의의 컴퓨팅 환경에서 구현될 수 있으나, 설명의 편의상, 바람직한 실시예의 예로서, 본 발명은 소매 환경 내에서 구현되는 것으로 기술된다. 특히, 본 발명은 POS(point-of-sale) 시스템, 또는 POS 네트워크에서 구현되는 것으로 기술된다. 그러나, 본 발명은 다른 네트워크 및 비네트워크 컴퓨팅/프린팅 환경에서 구현될 수 있음이 이해될 것이다.
POS 시스템에서, POS 디바이스는 상업적인 거래를 구현하고 거래의 기록을 유지하기 위해 각각의 체크아웃 스테이션에 위치한다. 따라서 체크아웃 스테이션은 물리적인 고객이 제품 및/또는 서비스에 대해 상인에게 지불하는 소매 환경(또는 소매 설정) 내에서의 위치이다. POS 시스템은 컴퓨팅 및/또는 네트워킹 능력을 포함하는 전자 캐쉬 레지스터로 간주될 수 있는 다수의 POS 디바이스를 포함할 수 있다. POS 디바이스는 통상적으로 고객의 기록에 대해 영수증(또는 거래의 개요)이 프린트되는 인접해 있는(또는 통합된) 영수증 프린터를 갖는다. 무한 길이의 거래 개요를 수용하기 위해, 영수증 프린터는 통상적으로 "롤 페이퍼(roll-paper) 프린터"(즉, 페이퍼의 롤, 또는 "페이퍼 롤"상에서 프린트하는 프린터)이며, 프린트된 거래 개요의 종단에 대해 페이퍼의 롤로부터 프린트된 부분을 절단한다. 그러나, 본 발명은 시트 프린터, 및 다른 비(non)롤 페이퍼 프린터와 호환 가능하다는 것이 이해될 것이다.
POS 디바이스는 통상적으로 POS 시스템 내에서 네트워크화되고 부기 및 재고 목적으로 거래를 파악하는 중앙 서버와 통신하고, 추가적으로 제품 가격(또는 제품 가격에 대한 업데이트), 쿠폰, 판촉 광고, 제품 정보(제품 설명 및/또는 입수가능성 등), 및 다른 데이터와 같은 정보를 POS 디바이스에 제공할 수 있다. 중앙 서버는 근거리 통신망(local area network : LAN) 및/또는 광역망(wide area network : WAN)의 일부분일 수 있고, 선택적으로는 다수의 서버상에서 분배될 수 있다. 생각할 수 있는 바로는, 중앙 서버는 인터넷을 통해 또한 액세스 가능하다.
POS 시스템 네트워크는 특수화되고 컴퓨터화된 POS 디바이스로 구성되므로, 이들은 복잡할 수 있으며, 구매하고, 셋업하고, 유지하고 업그레이드하는 데 고가이다. POS 시스템을 구현하고 유지하는 비용 및 어려움은 동일한 POS 시스템 네트워크 내에서 (상이한 제조자로부터의) 상이한 모델 POS 시스템 및 (상이한 제조자로부터의) 상이한 모델 프린터의 사용에 의해 더 증대된다. 이해되는 바와 같이, 상이한 POS 디바이스는 상이한 능력을 갖는 상이한 동작 플랫폼(즉, 상이한 오퍼레이팅 시스템(OS)상에서 실행함)을 가질 수 있고, 상이한 모델 프린터는 상이한 동작 플랫폼에 대해 상이한 드라이버 요건/능력을 가질 수 있다.
후술하는 상세한 설명은 본 발명이 특히, 상이한 모델 POS 디바이스 및 상이한 모델 프린터를 결합하는 POS 시스템 네트워크를 셋업하고, 유지하고, 업그레이드하는 비용 및 복잡성을 어떻게 감소시킬 수 있는지를 예시한다.
바람직한 실시예에서, POS 시스템은 네트워크를 통해 구현되며, 상업적인 거래는 네트워크 서버 내에서 유지되는 웹 페이지 애플리케이션(즉, 웹 페이지)을 통해 관리되고 판매 거래를 구현하고 기록하기 위한 POS 디바이스로서 기능하는 원격 웹 단말에 의해 액세스 가능하다. 이와 달리, 웹 페이지는 지능 모듈에서 구현될 수 있으며, POS 디바이스는 지능 모듈로부터 웹 페이지를 액세스할 수 있다. 어느 한 경우에도, 각각의 POS 디바이스는 웹 브라우저를 통해 웹 페이지에 액세스하고 웹 페이지를 사용하여 프린터에 프린트한다. 바람직하게는, 상업적인 거래는 웹 브라우저를 통해 또한 입력되고 기록된다.
통상적으로 POS 디바이스에 인접하는 프린터는 네트워크 서버에 의해 제어되거나 또는 POS 디바이스에 의해 제어될 수 있다. 두 경우에서, 프린터와의 통신은 이하 보다 완전하게 설명되는 바와 같이, 지능 모듈을 통해 수행되는 것이 바람직하다.
이와 달리, 본 발명은 임의의 네트워크 서버의 사용 없이 또한 구현될 수 있다. 이 경우에, 지능 모듈은 웹 페이지를 POS 디바이스(들)에 제공할 수 있고 POS 디바이스(들)와 프린터(들) 사이의 통신을 전달할 수 있다. 이 구현예는 POS 디바이스가 컴퓨터 네트워크의 일부가 되는 것을 배제하지 않는다.
이러한 방식으로, POS 디바이스의 동작 플랫폼은 제한적인 요인이 아니며, POS 디바이스가 그 동작 플랫폼에 관계없이, 웹 브라우저를 실행할 수 있도록 하는 것만이 필요하다. 실제로, POS 디바이스는 최소 컴퓨팅 능력을 갖는 간략화된 컴퓨팅 디바이스를 이용하여 구현될 수 있다. 예를 들어, POS 디바이스는 기본 컴퓨팅 및 통신 능력을 갖는 버짓(budget) 컴퓨터 태블릿으로서 구현될 수 있다.
도 3을 참조하면, 웹 브라우저(33) 내에 웹 페이지(31)가 도시되어 있다. 바람직하게는, 웹 브라우저(33)는 POS 디바이스로서 기능할 수 있는 컴퓨팅 디바이스(즉, 도 4에 도시된 컴퓨팅 디바이스(51)와 같은 데이터 프로세싱 디바이스)내에서 실행된다. 당 분야에서 알려진 바와 같이, 웹 브라우저(33)는 인터넷과 같은 TCP/IP 네트워크 내에서 웹 페이지를 액세스하는 인터페이스를 제공하고, 통상적으로 원하는 웹 페이지를 액세스하는 네트워크 어드레스를 입력할 수 있는 어드레스 필드(35)를 포함한다. 예를 들어, 웹 페이지(31)는 지능 모듈(37)에서 유지될(즉, 위치할) 수 있고 웹 브라우저(33)에 다운로드될 수 있다. 이와 달리, 웹 페이지(31)는 웹 브라우저(33)가 상주하는 컴퓨터 디바이스에 포함될 수 있다(즉, 디폴트로 상주함). 웹 페이지(31)는 바람직하게는 HTML 및/또는 그 변형과 같은 마크업 언어로 작성되고, 자바스크립트와 같은 스크립트 언어를 지원한다.
바람직한 실시예에서, 웹 브라우저(33)는 지능 모듈(37)을 통해 하나 이상의 프린터인 PrinterID_1 및 PrinterID_2와 통신한다. 선택적으로, 이들 프린터는 POS 프린터(즉, 영수증 프린터)일 수 있고, 선택적으로는 각각의 페이퍼의 롤(39a 및 39b)상에 프린트할 수 있다.
바람직하게는, 지능 모듈(37)은 적어도 하나의 프린트 애플리케이션 프로그램 인터페이스, 즉, API_1 내지 API_3로 레이블된 프린트 API를 통해 웹 페이지(31)와 통신한다. 설명을 위해, 프린트 애플리케이션 프로그램 인터페이스 API_1 내지 API_3은 웹 페이지(31) 내에 내장되는 것으로 도시되어 있고, 이들은 Print_Script_App_1 내지 Print_Script_App_3과 같은 각각의 프린트 스크립트 애플리케이션에 인터페이스를 제공한다. 필요하다면, 모든 프린트 스크립트 애플리케이션의 기능은 단일 프린트 API를 통해 결합되고 액세스될 수 있다. 또한 바람직하게는, 프린트 스크립트 애플리케이션은, 이하 기술되는 바와 같이, 각종 프린터 기능을 제공하는 자바 스크립트 애플리케이션이고, 적어도 하나의 프린트 API를 통해 액세스 가능하다. API_1 내지 API_3(및 그 각각의 프린트 스크립트 애플리케이션 Print_Script_App_1 내지 Print_Script_App_3)은 현재의 프린팅 능력을 포함하기 위해 웹 페이지 설계자에 대해 프린트 API의 라이브러리의 일부분으로서 제공될 수 있다.
API_1 내지 API_3은 웹 페이지(31)에 프린트 인터페이스를 제공하고, 프린트 스크립트 애플리케이션 Print_Script_App_1 내지 Print_Script_App_3은 프린팅 능력을 제공하고 및/또는 지능 모듈(37)과 통신하도록 설계된다. 프린트 API 및 프린트 스크립트 애플리케이션은 API_1+Print_Script_App_1 및 API_2+Print_Script_App_2에 의해 도시되는 바와 같이, 웹 페이지(31) 내의 유닛으로서 함께 내장될 수 있다. 이 경우에, 양자는 "API" 또는 "프린트 API"의 공통의 용어 하에서 다루어질 수 있고, 따라서 이 "API"는 웹 페이지(31)와의 인터페이싱, 프린트 문서의 생성, 및 지능 모듈(37)로의 프린트 문서의 전송을 모두 취급할 것이다.
당 분야에서 통상의 지식을 가진 자에 의해 이해되는 바와 같이, 프린트 API는 (객체 지향 언어로 정의된 바와 같은) 특정의 소프트웨어 클래스의 예일 수 있고 이들은 (OOP 언어로 정의된 바와 같은) 구성자에 의해 생성될 수 있다. 일 실시예에서, 프린트 API는 API를 초기화하는 구성자를 포함할 수 있다.
다른 실시예에서, 프린트 API 및 그 대응하는 프린트 스크립트 애플리케이션은 분할되어, 프린트 API는 웹 페이지(31) 내에 내장되고, 그 대응하는 프린트 스크립트 애플리케이션은 지능 모듈(37) 내에서 별개로 유지될 수 있다. 이것은 API_3이 웹 페이지(31) 내에 내장되는 한편 그 대응하는 프린트 스크립트 애플리케이션인 Print_Script_App_3이 지능 모듈(37) 내에서 유지되는 것으로 도시된다. 이러한 방식으로, Print_Script_App_3에 의해 요구되는 컴퓨팅 리소스의 몇몇은 웹 브라우저(33)가 상주하는 디바이스로부터 오프로드될 수 있고 지능 모듈(37)에 전달될 수 있다. 이 경우에, API_3은 프린트된 문서를 정의하는데 필요한 모든 데이터를 Print_Script_App_3에 전송하고, 이 Print_Script_App_3은 지능 모듈(37) 내에서 대응하는 프린트 문서를 생성하고 그 결과적인 프린트 문서를 특정된 프린터에 전송한다. 그 대응하는 프린트 스크립트 애플리케이션으로부터 프린트 API를 분리하는 것은 웹 브라우저 내에서 프린트 API를 변경하지 않고 지능 모듈(37) 내에서의 스크립트 애플리케이션의 업데이팅을 또한 허용한다. 이 경우에, 웹 개발자에게 그 웹 페이지에 포함시킬 수 있도록 프린트 API의 라이브러리가 제공될 수 있으나, 대응하는 프린트 스크립트 애플리케이션의 구현에 대한 세부 사항은 지능 모듈(37) 또는 네트워크 서버에서 유지될 수 있고 따라서 웹 개발자에게는 감추어진 상태로 유지될 수 있다.
바람직한 실시예에서, 각각의 프린트 API는 지능 모듈(37)과 직접 통신한다. 따라서, 지능 모듈(37)은 IP_ADD_1로서 도시된 네트워크 어드레스를 수신하도록(즉, 할당되도록) 구성된다. 이 네트워크 어드레스는 정적 어드레스 또는 동적으로 할당된 어드레스일 수 있다.
각각의 프린트 API에는 바람직하게는 지능 모듈(37)의 네트워크 어드레스를 수신하도록 구성된 어드레스 속성 요소(즉, 어드레스 데이터 필드)가 제공되고 그에 의해 각각의 프린트 API는 지능 모듈(37)로의 그 통신을 어드레스할 수 있다. 지능 모듈(37)의 네트워크 어드레스가 정적(즉, 고정)이면, 각각의 API 내에서의 어드레스 속성 요소가 수동으로 설정될 수 있다. 이와 달리, 지능 모듈(37)의 네트워크 어드레스가 동적이면, 지능 모듈(37)의 네트워크 어드레스를 결정하도록 네트워크 어드레스 결정 서비스가 사용될 수 있고, 각각의 프린트 API의 어드레스 속성 요소에 입력되는 결정 어드레스를 갖는다. 또한 바람직하게는, 어드레스 속성 요소는 타임아웃 기간을 설정하도록 구성된다. 이 타임아웃 기간은 지능 모듈로부터 긍정응답, 또는 다른 응답을 수신하기 위해 할당된 최대 시간의 양을 표시할 수 있다. 바람직하게는, 프린트 API는 타임아웃 기간 경과에 응답하여 프린트 작업(또는 제출된 프린트 요청)을 취소하는 단계 또는 프로세스를 포함한다.
또한 바람직하게는, 각각의 프린터는 명칭, 또는 식별자 코드(ID) 또는 (네트워크) 어드레스에 의해 식별 가능하다. 설명의 편의상, 두 프린터 ID 및/또는 프린터 네트워크 어드레스는 참조 문자 "PrinterID_1" 및 "PrinterID_2"로 지정된다. 또한, 설명의 편의상, 프린터 ID가 사용될 때마다, 본 발명은 프린터 ID 대신에 프린터 네트워크 어드레스를 사용하는 것을 상정하므로 "프린터 네트워크 어드레스"가 대체될 수 있음이 이해될 것이다. 또한 바람직하게는, 명칭, 프린터 ID 및/또는 프린터 어드레스가 프린트 API에 제공된다. 따라서 프린트 API는 프린팅 요청, 또는 프린트 문서를 수신하기 위해 명칭, 프린터 ID 및/또는 프린터 네트워크 어드레스에 의해 타겟 프린터를 지정할 수 있다.
일 실시예에서, 프린트 API의 어드레스 속성 요소는 타겟 프린터의 ID(또는 네트워크 어드레스)를 또한 수신하도록 확장된다. 예를 들어, 어드레스 속성 요소는 프린트될 문서가 전송되어야 하는 프린터로서 지정하는 타겟 프린터의 디바이스 식별자(ID 또는 네트워크 어드레스)를 설정하도록 구성될 수 있다. 프린트 API는 프린터로부터 응답 메시지를 획득하도록 구성된 수신 이벤트 요소를 더 가질 수 있다. 응답 메시지는 프린트 결과, 에러 코드 및/또는 프린터 스테이터스를 포함할 수 있다. 에러 코드 또는 프린터 스테이터스는 자동적으로 복구 가능한 에러 또는 복구 불가능한 에러 중 하나가 발생했음을 표시할 수 있다. 따라서, 프린트 API는 어드레스 속성 요소에 의해 지정된 지능 모듈을 통해 프린터로부터 응답 메시지를 수신할 수 있다. 이러한 방식으로, 타겟 프린터와 프린트 API 사이의 통신은 어드레스 속성 요소로 특정된 지능 모듈을 통해 수행된다. 추가적으로, 어드레스 속성 요소는 타임아웃 기간을 설정하도록 구성될 수 있다. 이 타임아웃 기간은 지능 모듈로부터 또는 프린터로부터 긍정응답, 또는 다른 응답을 수신하기 위해 할당되는 최대 시간의 양을 표시할 수 있다. 바람직하게는, 프린트 API는 타임아웃 기간 경과에 응답하여 어드레스 속성 요소에 의해 지정된 프린터에서 문서를 프린트하는 프린트 작업(또는 제출된 프린트 요청)을 취소하는 단계 또는 프로세스를 포함한다.
이와 달리, 프린트 API는 특정의 프린터를 지정하지 않고 지능 모듈(37)에 프린팅 요청을 전송할 수 있고, 지능 모듈(37)은, 프린팅 요청을 송출한 디바이스로의 근접성 정보에 근거하여, 또는 프린터가 이용가능한(즉, 분주하지 않은)지를 판정함으로써 프린터를 선택할 수 있다. 이 경우에, 지능 모듈(37)은 바람직하게는 프린팅 요청을 송출한 디바이스에 가장 근접한 프린터를 선택하기 위해 웹 페이지가 실행 중인 디바이스의 위치 및 프린터의 위치를 인지한다. 또한 이와 달리, 일단 지능 모듈(37)이 프린트 요청을 송출하는 특정의 디바이스에 대해 프린터를 선택하면, 선택된 프린터는 바람직하게는 해당 디바이스에 할당되게 되고, 동일한 디바이스로부터의 모든 향후의 프린트 요청은 동일한 선택된 프린터에 전송된다.
웹 페이지(31) 내에 내장된 각각의 프린트 API는 (지능 모듈(37)의 네트워크 어드레스를 보유하는) 그 어드레스 속성 요소에 의해 지능 모듈(37)과 직접 통신할 수 있고, 각각의 프린트 API는 사용자 개입 없이 또는 상주하는 웹 브라우저(33)에 프린트 요청을 제출하지 않고 언제든지 프린팅 요청을 제출할 수 있다. 예를 들어, 체크아웃 스테이션에서, 웹 브라우저에 의해 제품 항목이 식별(즉, 스캐닝)되고 전체 거래 개요에 부가됨에 따라 프린트 API는 구매에 대해 합산되는 각각의 제품 항목의 설명을 프린트하기 위해 제출할 수 있다. 따라서, 웹 페이지(31)는 (디스플레이 스크린의 새롭게 생성된 데이터 및/또는 부분(들)을 포함하는) 임의의 데이터의 프린트 문서를 생성하고, 언제든지 원하는 시간에 프린트하기 위한 프린트 문서를 제출할 수 있다. 예를 들어, API는 프린트 문서 일부를 세그먼트로(즉, 상이한 시간에서) 생성하고, 그 다음에 이 세그먼트를 프린터에 전송될 합성 프린트 문서로 결합 및/또는 배열할 수 있다. 이와 달리, 본 실시예에서 바람직한 프린터는 롤 프린터이므로, 프린트 API는 프린팅을 위한 프린터에 다수의 세그먼트를 전송하고, 프린팅 세션의 종료 시에(즉, 체크아웃 스테이션에서의 상업적인 거래의 종료 시에) 페이퍼 롤의 프린트된 부분을 절단하는 인스트럭션을 전송할 수 있다.
동작 시에, 프린트 스크립트 애플리케이션(또는 단일 유닛으로서 그 대응하는 프린트 스크립트 애플리케이션과 결합되는 경우 API 자체)은 커맨드 버퍼에 프린터 제어 인스트럭션을 누적하고(즉, 부가하고) 그 다음에 누적된 프린터 제어 인스트럭션을 실행함으로써 프린트 문서를 정의하는 제 1 방법 요소(즉, 제 1 실행 가능한 루틴, 또는 실행 가능한 방법)를 포함한다. 바람직하게는, 프린트 스크립트 애플리케이션(또는 API)은 정의된 프린트 문서를 지능 모듈(37)에 전송하도록 구성되는 제 2 방법 요소(즉, 제 2 실행 가능한 루틴)를 더 포함한다. 따라서 프린트된 문서는 제 1 및 제 2 방법 요소를 차례로 실행함으로써 생성될 수 있다.
본 설명에서, 인용된 소프트웨어 방법의 전부 또는 일부는 객체 지향 언어에서 정의된 바와 같이, 소프트웨어 객체로 대체될 수 있다.
지능 모듈(37)은 바람직하게는 데이터 프로세싱 디바이스(제어 유닛 회로 및/또는 중앙 프로세싱 유닛, 및/또는 휘발성/비휘발성 전자 메모리, 및/또는 데이터/제어 레지스터, 및/또는 신호 버스, 및/또는 전자 통신 인터페이스, 및/또는 룩업 테이블(들)을 포함하되, 이들로 제한되지 않음)로서 구현된다. 지능 모듈(37)은 그 자신의 물리적 용기에서 스탠드 얼론(stand-alone) 유닛으로서 구현될 수 있거나, 또는 이와 달리 프린터, 서버, 또는 다른 전자 디바이스에 포함될(또는 물리적으로 부착될) 수 있다. 동작 시에, 지능 모듈(37)은 웹 페이지(31) 내에 내장된 프린트 API로부터 프린트 문서를 수신하고, (필요하다면) 특정된(또는 달리 지정된) 프린터에 대해 적절한 프린트 문서로 변환하고, 이를 프린트를 위해 지정된 프린터로 전송한다. 선택적으로, 지능 모듈(37)은 프린터 각각에 대한 프린터 드라이버를 포함하고, 적절한 프린트 문서를 정의하도록 프린터 드라이버를 이용할 수 있다. 이와 달리, 지능 모듈(37)은 프린트 API로부터 커맨드 버퍼의 기록을 수신하고, 커맨드 버퍼에서 프린터 커맨드를 실행함으로써 프린트 문서를 생성하고, 생성된 프린트 문서를 적절한 프린터에 전송할 수 있다. 또한 이와 달리, 프린트 API로부터 수신된 커맨드는 포맷팅 정보 및 프린트 콘텐츠 데이터와 같은 범용 프린팅 설명일 수 있고, 지능 모듈은 지정된 프린터의 능력에 근거하여 범용 프린팅 설명과 가장 유사한 프린트 문서를 생성하고 그 다음에 생성된 프린트 문서를 지정된 프린터에 전송하기 위해 필요한 프린터 커맨드를 결정할 수 있다.
상기 설명에서, 생성된 프린트 문서는 XML 프린트 문서 또는 비트맵 프린트 문서 또는 당 분야에서 알려진 다른 문서 설명 포맷일 수 있다.
도시된 바와 같이, 프린터 PrintID_1 및 PrintID_2는 페이퍼 롤(39a 및 39b)상에서 각각 프린트하는 POS 프린터일 수 있다. 프린터는 (전체적으로 또는 부분적으로 착탈가능한) 커버(41), 드로어(43), 버저(45), 및 용지 절단기(또는 자동 절단기)(47)와 같은 부속 장치를 더 가질 수 있다. 이들 부속 장치는 바람직하게는 앞서 언급된 프린터 커맨드를 통해 제어 가능하고, 지능 모듈(37)에 의해 프린터에 중계된다. 타겟 프린터가 프린트 API에 전송할 수 있는 에러 코드 또는 프린터 스테이터스 중에서, 상술한 바와 같이, 커버가 개방인 것을 나타내는 표시가 있을 수 있다. 유사하게, 에러 코드 또는 프린터 스테이터스는 자동 절단기에서 에러가 발생하였음을 표시할 수 있다. 프린터는 용지가 프린터에 있는지를 검출하는 센서를 또한 가질 수 있고, 에러 코드 또는 프린터 스테이터스는 센서에 의해 어떠한 용지도 검출되지 않은지를 표시할 수 있다. 이와 달리, 에러 코드 또는 프린터 스테이터스는 지능 모듈(37)에 전송된 문서가 신택스 에러를 포함하는지를 표시할 수 있다. 이와 달리, 에러 코드 또는 프린터 스테이터스는 프린트 API의 타겟 프린터가, 제출된 프린터 ID에 의해 지정된 바와 같이, 존재하지 않는지를 표시할 수 있다.
이해되는 바와 같이 PrintID_1 및 PrintID_2는 지능 모듈(37)과 통신하는 통신 포트를 갖는다. 에러 코드 또는 프린터 스테이터스는 통신 포트상에서 에러가 검출되는지를 표시할 수 있다. 에러 코드 또는 프린터 스테이터스는 앞서 언급된 타임아웃 기간이 경과하는지를 또한 표시할 수 있다. 이와 달리, 에러 코드 또는 프린터 스테이터스는 프린팅 동작이 성공적으로 완료되는지를 표시할 수 있다. 앞서 언급된 바와 같이, 프린터는 적어도 하나의 핀을 가질 수 있는 커넥터에 의해 드로어에 접속될 수 있다. 이 경우에, 에러 코드 또는 프린터 스테이터스는 커넥터의 사전 결정된 핀의 스테이터스를 표시할 수 있다.
이와 달리, 에러 코드 또는 프린터 스테이터스는 프린터가 오프라인이거나 또는 온라인으로 복귀를 대기하는 것을 표시하거나, 또는 프린터로부터 어떠한 응답도 수신되지 않음을 표시할 수 있다.
PrintID_1 및 PrintID_2는 용지(39a 및 39b)를 공급하는 스위치를 더 가질 수 있고, 에러 코드 또는 프린터 스테이터스는 스위치의 동작에 의해 용지가 공급될 때를 표시할 수 있다. 에러 코드 또는 프린터 스테이터스는 버저(45)가 턴 온(즉, 작동)될 때를 또한 표시할 수 있다. 프린터 또는 지능 모듈(37)은 문서를 프린트하는 프린트 작업을 스풀링하도록 구성되는 스풀러를 가질 수 있고, 에러 코드 또는 프린터 스테이터스는 스풀링이 정지되었는지를 표시할 수 있다.
도 3의 실시예에서, 본 발명은 네트워크화되거나 또는 네트워크화되지 않을 수 있는 시스템으로서 구현된다. 즉, 웹 브라우저(33)가 실행하는 로컬 디바이스는 임의의 특정의 중앙 서버에 접속되지 않은 스탠드 얼론 디바이스일 수 있다. 로컬 디바이스가 스탠드 얼론 디바이스인지 또는 다른 POS 디바이스 또는 서버(들)와 네트워크화되는 것에 관계없이, 지능 모듈(37)은 프린터와 웹 페이지(31) 사이의 통신 신호를 중계하고 변환(및 임의의 필요한 커맨드 및 인스트럭션을 생성)하는 프린터 제어 박스로서 기능할 수 있다.
도 4는 본 발명의 네트워크 구현을 도시한다. 도 3의 요소와 동일한 모든 요소는 동일한 참조 문자를 가지며, 앞에서 설명되었다. 도시된 바와 같이, 네트워크(55)는 컴퓨팅 디바이스(51), 서버(53), 지능 모듈(37) 및 프린터 PrinterID_2를 포함한다. 컴퓨팅 디바이스(51), 서버(53), 및 지능 모듈(37)은 유선 채널, 무선 채널, 또는 양자의 조합일 수 있는 네트워크 통신 채널(57)을 통해 통신한다. 컴퓨터 태블릿 또는 다른 데이터 프로세싱 디바이스일 수 있는 컴퓨팅 디바이스(51)는 웹 브라우저(33)를 통해 웹 페이지(31)를 액세스한다. 선택적으로, 웹 페이지(즉, 웹 애플리케이션)(31)는 서버(53)로부터 또는 지능 모듈(37)로부터 액세스된다. 즉, 웹 애플리케이션(31)은 서버(53) 및/또는 지능 모듈(37)에서 유지(저장되거나 위치)(또한 그로부터 액세스)될 수 있다.
선택적으로, 프린터 PrinterID_2는 비휘발성 메모리(59)를 포함할 수 있다. 일 실시예에서, 로고와 같은, 다수의 사전 정의된 이미지는 메모리(59)에 저장되고 LOGO_1 내지 LOGO_3과 같은 ID 코드에 의해 식별/어드레싱될 수 있다.
상술한 바와 같이, 프린트 API는 프린터 제어 커맨드가 누적되는 커맨드 버퍼를 정의한다. 각종 타입의 제어 커맨드가 커맨드 버퍼에 누적될 수 있다. 도 5는 본 발명에 따라 커맨드 버퍼(63)에 누적될 수 있는 프린터 제어 커맨드(61)의 몇몇 예를 도시한다. 각각의 커맨드는 커맨드를 실행하는데 필요한 하나 이상의 인스트럭션을 초래할 수 있다.
예를 들어, 도 5를 참조하면, 커맨드 중 하나는 프린팅을 위한 텍스트를 커맨드 버퍼에 부가하는 텍스트 커맨드일 수 있다. 즉, 텍스트 커맨드는 프린트될 텍스트가 삽입되는 유한 또는 무한 길이의 데이터 필드를 정의할 수 있다. 다른 커맨드는 텍스트의 특성을 정의(즉, 설정)하는 파라미터를 커맨드 버퍼에 부가하는 텍스트 설정 커맨드일 수 있다. 이러한 특성은 삽입된 텍스트의 크기, 폰트, 컬러 등을 포함할 수 있다. 텍스트 설정 커맨드는 다수의 상이한 파라미터를 설정할 수 있다. 예들 들어, 제 1 텍스트 설정 커맨드는 용지상에서 프린트할 개시 위치를 특정할 수 있고, 다른 파라미터는 정렬 요건을 설정할 수 있다. 다른 파라미터는 삽입된 텍스트의 언어, 폰트, 스타일, 스케일, 및/또는 크기를 설정할 수 있다. 추가적인 텍스트 설정 파라미터는 프린트된 텍스트를 회전시킬지, 또는 텍스트를 스무딩하는 것을 가능하게 할지를 특정하는 파라미터를 포함할 수 있다.
다른 커맨드는 프린터에 용지를 공급하는 하나 이상의 인스트럭션을 커맨드 버퍼에 부가하는 용지 공급 커맨드일 수 있다.
또 다른 커맨드는 프린팅을 위한 래스터 이미지를 부가하는 이미지 커맨드일 수 있다. 당 분야에서 알려져 있는 바와 같이, 래스터 이미지는 통상적으로 비트맵과 같이, 디스플레이 매체상에서 한번에 하나의 지점에서 보이는 바와 같은 이미지를 정의하고, 이미지 파일을 정의하는 직사각형 영역이다. 바람직하게는, 프린트 API는 하프톤 속성 요소를 포함하고, 웹 애플리케이션에서 렌더링된 컬러 이미지는 하프톤 속성 요소의 설정에 따라, 이미지 커맨드에 의해, 프린팅을 위한 래스터 이미지 데이터로 변환된다. 바람직하게는, 하프톤 속성 요소는 디서링, 에러 디퓨젼, 및/또는 컬러 이미지를 래스터 이미지 데이터로 변환하는 임계치 중 적어도 하나를 특정한다. 프린트 API는 래스터 이미지 데이터의 휘도를 보정하는 0.1-10.0 범위의 감마 값을 특정할 수 있는 휘도 속성 요소를 또한 포함할 수 있다. 이 경우에, 이미지 커맨드는 휘도 속성 요소의 설정에 따라 컬러 이미지를 프린팅을 위한 래스터 이미지 데이터로 변환할 수 있다.
도 4에 도시된 바와 같이, PrinterID_2는 적어도 하나의 로고를 등록하는 비휘발성(NV) 메모리(59)를 포함할 수 있다. 이 경우에, 특정의 로고를 식별하는 키 코드를, 식별된 로고를 프린트하는 커맨드 버퍼에 부가하는 로고 커맨드가 존재하는 것이 바람직하다. 즉, 키 코드는 NV 메모리(59)에 등록된 특정의 로고(즉, 로고 LOGO_1 내지 LOGO_3)를 특정한다.
다른 커맨드는 바코드를 프린트하는 인스트럭션을 커맨드 버퍼에 부가하는 바코드 커맨드일 수 있다. 바람직하게는, 다수의 바코드 타입이 지원되고, 바코드 커맨드는 원하는 바코드 타입, 바코드의 폭과 높이, 및/또는 선택된 바코드 타입으로 변환될(즉, 인코딩될) 데이터를 적어도 특정하는 바코드 파라미터를 포함한다.
다른 커맨드는 2차원 심볼을 프린트하는 인스트런션을 커맨드 버퍼에 부가하는 심볼 커맨드일 수 있다. 심볼 커맨드는 2차원 심볼의 타입, 2차원 심볼의 에러 정정 레벨, 또는 2차원 심볼로 변환될 데이터 중 적어도 하나를 특정하는 심볼 파라미터를 포함할 수 있다.
바람직하게는, 다른 커맨드는 제 1 라인을 드로잉하는 인스트럭션을 커맨드 버퍼에 부가하는 제 1 라인 커맨드이다. 제 1 라인 커맨드는 제 1 라인의 개시 위치와 종단 위치를 특정하는 제 1 라인 파라미터를 포함할 수 있다. 본 발명은 무한 길이의 제 2 라인의 드로잉을 시작하는 인스트럭션을 커맨드 버퍼에 부가하고, 제 2 라인의 개시 위치를 특정하되, 제 2 라인의 임의의 종단 위치를 특정하는 라인 파라미터를 제공하지 않는 제 2 라인 파라미터를 제공하는 제 2 라인 커맨드를 또한 포함할 수 있다. 이 경우에, 본 발명은 제 2 라인 커맨드에 의해 개시된 제 2 라인의 드로잉을 종료하는(즉, 정지하는) 인스트럭션을 부가하는 제 3 라인 커맨드를 포함하는 것이 바람직하다. 제 3 라인 커맨드는 제 2 라인에 대해 종단 위치를 특정하는 제 3 라인 파라미터를 포함할 수 있다.
또 다른 커맨드는 페이지 모드로 전환하고 페이지 모드에서 프린트 영역을 부가하는 인스트럭션을 커맨드 버퍼에 부가하는 페이지 모드 커맨드일 수 있다. 즉, 페이지 모드는 프린트 영역이 정의되고, 데이터가 프린트 영역에서 레이아웃되고, 프린트 영역이 배치 동작에서 프린트되는 프린트 모드일 수 있다. 페이지 모드는 프린트 영역에 대해 원하는 배치 위치를 특정하는 적어도 하나의 좌표를 더 포함할 수 있다. 제 2 페이지 모드 커맨드는 제 1 페이지 모드 커맨드에 의해 개시된 페이지 모드를 종료하는 인스트럭션(들)을 부가할 수 있다. 또한 제 3 페이지 모드 커맨드는 제 1 페이지 모드 커맨드에 의해 정의된 페이지 모드에 대한 적어도 하나의 설정(즉, 설정 파라미터)일 수 있다. 제 3 페이지 모드 커맨드는 페이지 모드에서 프린팅을 위한 방향 또는 페이지 모드에서 프린팅을 위한 개시 위치를 특정하는 좌표(들)를 특정하는 제 3 페이지 파라미터를 포함할 수 있다. 제 4 페이지 모드 커맨드는 제 1 페이지 모드 커맨드에 의해 정의된 페이지 모드에서, 라인 또는 직사각형과 같은 사전 정의된 형상을 드로잉하는 인스트럭션(들)을 더 부가할 수 있다. 제 4 페이지 모드 커맨드는 페이지 모드 내에서의 사전 정의된 형상, 즉, 라인 또는 직사각형의 개시 위치 및 종단 위치를 특정하는 좌표를 포함할 수 있다. 제 4 페이지 모드 커맨드는 형상에 대해 타입 선택을 특정하는 제 4 페이지 파라미터를 더 포함할 수 있다. 예를 들어, 제 4 페이지 파라미터는 라인 타입 또는 직사각형 타입을 특정할 수 있다.
다른 커맨드는 예를 들어, 용지 절단기(47)에 의해, 용지, 즉, 프린팅 매체를 절단하는 인스트럭션을 커맨드 버퍼에 부가하는 용지 절단 커맨드일 수 있다. 용지 절단 커맨드는 용지를 먼저 공급하지 않고 절단하는 것 또는 용지를 공급한 후에 용지를 절단하는 것 중 하나를 특정하는 용지 절단 파라미터를 포함할 수 있다.
도 3에 도시된 바와 같이, 본 발명에 따른 프린터는 그에 접속된 드로어(43)를 가질 수 있다. 이러한 경우를 가정하면, 다른 커맨드는 드로어를 킥 오픈하는(또는 릴리스거나 또는 언래치하는(unlatching)) 인스트럭션을 커맨드 버퍼에 부가하는 드로어 킥 커맨드이다. 바람직하게는, 드로어 킥 커맨드는 드로어를 개방하도록 인가되는 신호의 온 지속 기간을 특정하는 제 1 드로어 파라미터를 포함한다. 또한 바람직하게는, 드로어는 2개의 커넥터에 의해 프린터에 접속되고 드로어 킥 커맨드는 드로어와 프린터를 접속하는 커넥터 중 하나(커넥터의 릴리스)를 특정하는 제 2 드로어 파라미터를 포함한다.
도 3에 도시된 바와 같이, PrinterID_2는 버저(45)를 포함할 수 있다. 그러한 경우, 다른 커맨드는 버저를 턴 온하는(작동시키는) 인스트럭션을 커맨드 버퍼에 부가하는 버저 커맨드일 수 있다. 버저 커맨드는 버저의 작동이 반복되는 패턴 또는 횟수를 특정하는 버저 파라미터를 포함할 수 있다.
POS 시스템에서 구현되는 바와 같이 본 발명의 특정의 예는 다음과 같다.
도 6은 POS 시스템(79)에 적용된 바와 같은 본 발명의 특정의 예를 도시한다. 도시된 바와 같이, 본 발명의 예는 상술한 바와 같이, 서버(71), 웹 브라우저(73) 및 지능 모듈(75)을 포함한다. 설명을 위해, 지능 모듈(75)은 하나 이상의 프린터와 통신하는 하나 이상의 지능 모듈의 결합으로 구성될 수 있음을 표시하기 위해 "TM 지능 프린터"로서 식별된다. 웹 브라우저(73)는 (전자/컴퓨터 현금 등록기와 같은) POS 디바이스 내에서 실행될 수 있고, 웹 브라우저(73)는 상술한 바와 같이, 웹 페이지(77)를 액세스한다. 설명의 편의상, 본 POS 시스템(79)에 적용되는 바와 같이 본 발명의 프린팅 메커니즘/방법은 "ePOS-Print"라 불리운다.
ePOS-Print는 다수의 플랫폼 환경에서 POS 프린터를 제어하기 위한 기능을 제공한다. ePOS-Print를 이용하여, 데이터는 퍼스널 컴퓨터, 스마트 폰, 또는 태블릿 컴퓨터상에서의 웹 브라우저로부터 TM 지능 프린터(즉, 하나 이상의 지능 모듈 및/또는 하나 이상의 프린터)로 직접 프린트될 수 있다.
또한, HTML5 Canvas에서 렌더링된 프린트 이미지가 프린트될 수 있다. 당 분야에서 알려진 바와 같이, HTML5 Canvas는 그래픽에 대한 컨테이너(container)이고, 스크립팅을 통해 그래픽을 드로잉하는 방식을 제공한다. ePOS-Print는 프린트 커맨드에 대한 API(본 발명에서 "프린트 API"와 동등함)를 제공한다. 프린트 문서(요청)가 호스트(즉, 웹 브라우저(73)가 실행 중인 디바이스 또는 단말)로부터 TM 지능 프린터(75)의 ePOS-Print 서비스로 HTTP를 통해 전송되는 경우, ePOS-Print는 그 문서의 프린팅을 프로세스하고 응답 문서(즉, 응답)를 반환한다.
본 구현예는 다수의 특징을 포함한다. 예를 들어, 본 시스템이 네트워크 환경에 있는 한, HTML5 지원형 웹 브라우저를 갖는 단말은 어느 곳에서든 프린팅을 수행할 수 있다. 프린터 드라이버 및 플러그 인의 인스톨은 요구되지 않는다. 프린팅을 위해 PC 또는 서버가 요구되지 않는다. 본 시스템은 공용 및 전용 네트워크 클라우드(clouds)로부터의 프린팅을 허용한다. 본 발명은 통상적으로, 웹 브라우저에 의해 지원되는 임의의 언어로 프린팅을 또한 허용한다. 본 발명은 프린팅 이전에 TM 프린터의 스테이터스를 자동적으로 체크한다. TM 프린터의 스테이터스를 미리 체크할 필요가 없다. 본 시스템은 (AutoStatusBack 기능과 같은) 그 스테이터스를 자동적으로 전송하는 프린터의 기능에 응답하지 않는다. 그 대신에, 본 시스템은 커맨드 송신의 결과에 근거하여 비어 있는(empty) 프린트 커맨드를 전송하고 TM 프린터의 스테이터스를 체크(즉, 결정)할 수 있다. 그럼에도 불구하고, 프린터 설정을 변경하기 위해, 각각의 프린터 전용의 유틸리티 프로그램, 또는 다른 유틸리티 프로그램이 이용될 수 있다. 따라서, 본 발명은 TM 지능 프린터를 통해 TM 프린터에 의한 프린팅을 허용한다. 따라서 본 발명은 ePOS-Print API 및 ePOS-Print-Canvas API 모두를 제공할 수 있다. 상술한 바와 같이, 본 발명은 디바이스 폰트가 프린팅을 위해 사용되도록 더 허용하고, 바코드 프린팅을 허용하고, HTML5 Canvas에서 렌더링된 이미지의 프린팅을 허용하고, TrueType 폰트가 프린팅을 위해 사용되도록 허용한다. 바람직하게는, 디바이스 폰트가 프린팅을 위해 사용되도록 허용하고 바코드 프린팅을 허용한다. 또한 바람직하게는, ePOS-Print-Canvas API는 HTML5 Canvas에서 렌더링된 이미지의 프린팅을 허용하고, TrueType 폰트가 프린팅을 위해 사용되도록 허용한다.
도 7은 ePOS-Print API에 의해 구현될 수 있는 프린팅 타입의 예를 도시한다. 2개의 영수증(81 및 83)이 도시된다. 영수증(81)은 상술한 바와 같이, 각종 프린트 커맨드의 실행의 예를 도시한다. 영수증(81)은 로고의 프린팅, 텍스트 정렬(중앙 정렬된), 용지 공급, 및 용지 절단의 예를 도시한다. 영수증(83)은 래스터 이미지를 프린트하고, 2배 크기 폭의 스타일로 텍스트를 프린트하고, 스케일=x6(수평) 및 x4(수직)과 같이 스케일링하고, 정렬(중앙)하고, 바코드를 프린트하는 프린트 커맨드를 실행하는 예를 도시한다.
도 8은 ePOS-Print-Canvas API에 의해 구현될 수 있는 프린팅 타입의 예를 도시한다. 본 예에서, HTML5 Canvas에 의해 생성된 그래픽은 통상적으로 모노크롬 그래픽(또는 이미지)인 바코드, 및 바코드 바로 위의 회화(pictorial) 그래픽을 포함한다. 회화 그래픽은 모노크롬, 또는 그레이 스케일, 또는 컬러일 수 있다.
도 9는 본 발명의 실시예에 따른 프린트 흐름의 예를 도시한다. 본 예는 제어될 수 있는 서버, 무선 LAN 라우터, 웹 브라우저, TM 지능 프린터, 및 프린터를 도시한다. 바람직하게는, 본 발명에 따른 웹 애플리케이션(즉, 웹 페이지)은 서버에 위치할(즉, 유지될) 수 있고, 웹 브라우저는 웹 애플리케이션을 디스플레이한다. 동작 시에, 웹 브라우저는 TM 지능 프린터(또는 지능 모듈)에 프린트 데이터를 전송하고, TM 지능 프린터는 그 제어 하에서 프린트 데이터를 적절한 프린터에 전송하고, 이들 프린터는 데이터를 프린트한다. TM 지능 프린터는 그 다음에 응답 문서를 웹 브라우저(즉, 웹 브라우저를 실행하는 단말)로 반환한다.
ePOS-Print API는 다수의 기능을 제공할 수 있다. 예를 들어, 정렬(예를 들어, 텍스트 정렬), 라인 공급 공간, 텍스트 회전, 및 페이지 모드와 같은 프린트 설정 기능을 제공할 수 있다. 이것은 언어, 폰트(디바이스 폰트), 2배 크기, 스케일, 스무딩, 및 프린트 위치와 같은 다수의 문자 데이터 설정(예를 들어, 텍스트 문자)을 또한 제공할 수 있다. 이것은 흑색과 백색의 반전, 언더라인(underline), 볼드체(bold)와 같은 문자 스타일 설정을 또한 제공할 수 있다. 이것은 (도트 카운트 또는 라인 카운트로의) 용지 공급 설정과 같은 프린터 동작 제어를 또한 포함할 수 있다. ePOS-Print API는 바람직하게 이미지 프린팅(즉, 래스터 이미지 및 NV 그래픽), 바코드 프린팅, 및 2차원 심볼 프린팅을 또한 제공한다. 이것은 정해진 라인 설정, 드로어 킥 기능, 버저 기능, ESC/POS 커맨드 송신, 문서 획득의 응답(프린트 결과, 프린터 스테이터스 및/또는 시스템 에러 스테이터스)을 더 제공할 수 있다.
ePOS-Print-Canvas API는 다수의 기능을 또한 제공할 수 있다. 예를 들어, HTML5 Canvas에서 렌더링된 이미지(래스터 이미지)의 프린트, 공급 및 절단 기능, 및 (프린트 결과, 프린터 스테이터스 및/또는 시스템 에러 스테이터스와 같은) 문서 획득이 응답을 제공할 수 있다.
따라서 바람직한 웹 브라우저는 HTML5를 지원하는 브라우저이다. HTML5를 지원하는 브라우저의 예로는 Windows Internet Explorer 9 또는 이후의 버전, Mozilla Firefox 3.6 또는 이후의 버전, Google Chrome 7 또는 이후의 버전, iOS4.0에서의 Safari 또는 이후의 버전, 및 Android 2.2에서의 표준 브라우저 또는 이후의 버전이 있다.
본 발명에 따른 시스템 구성의 예가 도 10에 도시되어 있다. 이 예는 (웹 애플리케이션, 즉 웹 페이지가 위치하는) (웹) 서버, (HTML5를 지원하는 웹 브라우저가 인스톨되는) 단말, 선택적인 무선 LAN 라우터, TM 지능 프린터, 및 TM 지능 프린터에 의해 제어될 수 있는 프린터를 또한 도시한다. 이전과 마찬가지로, TM 지능 프린터는 웹 브라우저로부터 전송된 프린트 데이터를 수신하고 프린트하고, 및/또는 다른 디바이스를 제어하고, 그 제어 하에서 프린터는 TM 지능 프린터로부터 수신된 프린트 데이터를 프린트한다.
도 11은 TM 지능 프린터로의 웹 애플리케이션의 등록을 도시한다. 상술한 바와 같이, 단말은 브라우저를 이용하여 웹 애플리케이션(즉, 웹 페이지)을 실행하고(즉, 액세스하고), (프린트 데이터를 포함할 수 있는) 디바이스 제어를 TM 지능 프린터에 전송한다. TM 지능 프린터는 웹 브라우저로부터 전송되는 수신된 프린트 데이터를 프린트한다.
본 발명의 바람직한 실시예에서, 몇몇 제한이 부과될 수 있다. 예를 들어, 프린터의 드로어 및 버저가 함께 사용될 수 없다. 프린터가 버저를 갖지 않는 경우 버저 기능은 당연히 사용될 수 없다.
본 발명은 특정의 웹 브라우저에 의해 제공되는 제한을 또한 존중할 수 있다. 예를 들어, Internet Explorer 9는 (통상적으로 어드레스 헤더 "HTTPS"에 의해 식별되는) 보안성 보호(security-protected) 웹 페이지로부터 프린터로 프린팅이 수행되도록 허용하지 않는다.
도 12는 본 발명에 따른 ePOS-Print API를 이용하여 생성된 샘플 프로그램 스크린의 예를 도시한다. 다음의 예는 IIS(Microsoft Internet Information Services)를 이용하여 웹 페이지가 구성된다고 가정한다. 박스 1은 큐 티켓을 도시하고, 박스 2는 쿠폰을 도시하고, 박스 3은 "설정" 작동 버튼을 나타낸다. 일 실시예에서, 박스 1은 큐 티켓 번호를 프린트할 수 있고 박스 2는 당연히 쿠폰을 프린트한다.
도 13은 도 12의 설정 버튼의 작동에 응답하여 호출될 수 있는 설정 윈도우의 예이다. 설정은 지능 프린터(즉, 상술한 바와 같은 지능 모듈)의 네트워크 어드레스(즉, IP 어드레스), 타겟 프린터의 디바이스 ID, 타임아웃 설정, 및 그레이 스케일로 프린트하는 옵션을 포함할 수 있다.
도 14는 ePOS-Print API를 이용하는 제 1 샘플 프린트 아웃 및 ePOS-Print-Canvas API를 이용하는 제 2 샘플 프린트 아웃을 도시한다. 도시된 바와 같이, ePOS-Print-Canvas API는 바람직하게 그래픽을 프린트하는데 사용된다.
도 15는 그 초기 디스플레이 상태로부터 프린트 작업 완료까지의 프로세스의 단계 흐름을 도시하는 샘플 플로우 차트를 도시한다. 이것은 ePOS-Print API를 이용하여 프린트된 큐 티켓 번호 발행의 예이다. 프로세스는 웹 애플리케이션(즉, 샘플 프로그램 웹 페이지)을 오픈함으로써 개시한다(단계 91). 그 다음에 설정이 입력된다(단계 93). 몇몇 설정은 TM 지능 프린터의 IP 어드레스, 제어될 프린터의 디바이스 ID 및 (프린트) 타임아웃 시간을 포함할 수 있다. 단계(95)에 의해 도시된 바와 같이 적절한 큐 티켓은 "큐 티켓 번호 발행" 옵션을 선택(즉, 클릭)함으로써 생성된다. 그 다음에 프린트 데이터를 생성하는 ePOS-Print Builder Object가 호출될 수 있다(단계 97). 그 다음에 ePOS-Print Object가 프린트를 생성한다(단계 99).
도 16은 쿠폰 발행에 대한 프로세스의 단계 흐름을 도시하는 샘플 플로우 차트를 도시한다. 이것은 ePOS-Print Canvas API의 예이다. 프로세스 흐름은 본 발명에 따른 웹 페이지를 오픈함으로써 개시한다(단계 101). 필요하다면, 설정을 입력할 수 있다(단계 103). 설정의 예는 TM 지능 프린터의 IP 어드레스, 프린팅에 사용될 프린터의 디바이스 ID 및 프린트 타임아웃 시간이다. 그 다음에 "쿠폰 발행" 옵션을 클릭(즉, 작동/선택)한다(단계 105). 그 다음에 웹 페이지는 HTML5 Canvas에서 쿠폰을 렌더링한다(단계 107). 마지막으로 단계(109)에서, 웹 페이지는 ePOS-Print Canvas API(즉, ePOS-Print Canvas API Object)를 이용하여 프린트 요청을 TM 지능 프린터(즉, 지능 모듈)에 송출한다.
도 17은 본 발명에 따른 동작 환경의 예를 도시한다. 기본적으로, 도 17은 이하 기술된 몇몇 샘플 프로그램에 대한 시스템 구성도를 도시한다. 도 17은 (192.168.192.10)의 고정 IP 어드레스를 갖는 웹 서버를 도시한다. 웹 서버는 환경 설정을 구성할 수 있다. 웹 서버는, 예를 들어, (192.168.192.1)의 고정 IP 어드레스를 가질 수 있는 무선 LAN 라우터와 직접 통신한다. 무선 LAN 라우터는 (예를 들어, (192.168.192.20)의 고정 IP 어드레스를 가질 수 있는) TM 지능 프린터, 및 TM 지능 프린터에 의해 제어될 수 있는 선택적인 제 2 프린터 사이의 (유선 접속과 같은) 통신 경로를 제공한다. 바람직하게는, 선택적인 제 2 프린터는, 예를 들어, (192.168.192.21)의 고정 IP 어드레스를 또한 갖는다. 본 구현예에서, 무선 LAN 라우터는 HTML5 지원형 웹 브라우저를 갖고, 본 발명에 따른 웹 페이지가 실행될 수 있는 단말에 무선 통신 링크를 제공한다. 본 예에서, 단말은 동적 네트워크 어드레스((192.168.192.XXX)로서 도시됨)를 갖고, DHCP에 의해 송출될 수 있다. 예를 들어, 무선 LAN 라우터는 DHCP에 의해 IP 어드레스를 단말에 송출할 수 있다.
도 18은 샘플 프로그램에 대한 환경 설정을 구성하는 프로세스 흐름을 도시한다. 단계(111)에서, SSID, IP 어드레스, DHCP, 및 할당된 IP 어드레스와 같은 라우터 설정을 구성함으로써 개시한다. 다음에, 단계(113)에서, 컴퓨터 설정을 구성한다. 이것은 IP 어드레스와 같이, 컴퓨터에 대한 네트워크 설정을 구성하는 제 1 하위 단계(113a), 및 컴퓨터상에서 웹 서버를 구성하는 제 2 하위 단계(113b)로 분할될 수 있다. 단계(115)에서, 실행할 프로그램을 등록한다. 본 예에서, ePOS-Print_API_UM_E_Sample라 불리우는 샘플 프로그램이 등록된다. 그 다음에 네트워크 접속을 인에이블하기 위해 라우터 설정에 매칭하는 단말의 무선 LAN(Wi-Fi) 설정을 구성하는 것과 같이, 단말 설정을 제공한다(단계 117). 단계(119)에서, TM 지능 프린터에 대한 네트워크 설정이 구성된다. 이것은 웹 브라우저를 통해 행해질 수 있다. 다음에, 단계(121)에서, 제어될 프린터에 대한 네트워크 설정이 구성된다. 당 분야에서 알려진 바와 같이, 이들 설정은 네트워크 설정 유틸리티를 이용함으로써 구성될 수 있다. 단계(123)에서 선택적인 디바이스 ID 설정이 제공된다. 이들 설정은 웹 브라우저를 통해 구성될 수 있으나, 본 샘플 프로그램에서 요청되지 않는다. 마지막으로, 단계(125)에서, 웹 브라우저를 통해 임의의 요구되는 프로그램 설정이 구성될 수 있다. 본 샘플 프로그램에서는 어떠한 프로그램 설정도 요구되지 않는다는 것에 주목해야 한다.
도 19는 TM 지능 프린터에 대한 네트워크 설정의 예이다. 웹 브라우저를 개시하고 TM 지능 프린터 인터페이스의 IP 어드레스를 어드레스 바(127)에 입력함으로써 개시할 수 있다. 그 다음에 (129)에 의해 도시된 바와 같이, 유선 TCP/IP 또는 무선 TCP/IP와 같은 구성을 선택할 수 있다. 그 다음에 (131)에 의해 도시된 바와 같이, "TCP/IP 설정" 스크린이 나타나고 TM 지능 프린터에 대한 네트워크 설정을 구성한다. IP 어드레스를 테스트하기 위해, TM 지능 프린터를 이용하여 스테이터스 시트를 제출할 수 있다.
도 20은 디바이스 설정의 예이다. 예를 들어, ePOS-Print에 의해 제어될 프린터의 ID를 TM 지능 프린터에 설정할 수 있다. TM 지능 프린터의 IP 어드레스를 입력하도록 웹 브라우저를 사용할 수 있다(133). 그 다음에 구성할 디바이스를 선택한다(135). "디바이스 설정" 스크린(137)이 나타난다. 도 21은 구성될 수 있는 디바이스 설정의 예를 도시한다. 등록된 디바이스상에서의 정보(139)가 디스플레이된다.
상기 구성 및 등록 시퀀스의 실행으로 도 12의 샘플 프로그램 스크린이 만들어질 것이다.
다음에 ePOS 프린트를 이용하는, 즉, 본 발명에 따른 프린트 API를 이용하는 프로그래밍을 위한 가이드가 기술된다.
바람직하게는, 2개의 타입의 프린트 모드, 즉, 표준 모드 및 페이지 모드가 존재한다. 표준 모드에서는, 라인 단위로 문자가 프린트된다. 라인 공급 공간은 폰트 크기 및 이미지, 즉, 바코드의 높이 등에 근거하여 조정된다. 표준 모드는 영수증 프린팅, 또는 프린트 공간에 따라 용지 길이를 변경할 필요가 있는 다른 타입의 프린팅에 적합하다.
페이지 모드에서는, 프린트 영역이 설정(즉, 정의)되고, 데이터가 레아아웃되고, 데이터가 배치 동작으로 프린트된다. 예를 들어, 문자, 이미지, 및 바코드는 위치 좌표에 의해 프린트 영역에 레이아웃될 수 있고, 그 결과 프린트 영역은 배치 동작으로 프린트된다.
도 22는 ePOS-Print API를 이용하는 프로그래밍에 대한 샘플 작업 흐름을 도시한다. 제 1 단계(141)는 ePOS-Print API를 웹 페이지에 내장하는 것이다. 바람직하게는, ePOS-Print API는 자바스크립트로서 제공되며, 다음과 같은 파일 명칭 규약, 즉, "epos-print-2.x.x.js"를 따를 수 있다. 즉, ePOS-Print가 클라이언트 디바이스상에서 자바스크립트로서 사용될 수 있도록 ePOS-Print API가 제공된다. ePOS-Print API는 epos-print-2.x.x.js를 (웹 페이지와 같은) 애플리케이션에 내장함으로써 사용된다. ePOS-Print API를 사용하기 위해, 웹 서버상에 epos-print-2.x.x.js가 위치하고(제공되고), 클라이언트에 배포된다. 예를 들어, ePOS-Print API 스크립트는 HTML <스크립트> 태그를 이용함으로써 웹 페이지에 내장될 수 있다. 도 23은 ePOS-Print API를 내장하기 위해 HTML <스크립트> 태그를 이용하는 예를 도시한다.
다음의 단계(143)는 프린트될 문서를 생성하는 것이다. 프린트 문서는 ePOS-Print Builder object를 이용하여 생성될 수 있다. 예를 들어, ePOS-Print Builder object는 이를 위한 구성자를 이용하여 생성되고, 프린트 문서는 객체의 방법을 이용하여 생성된다. 프린트 문서는 이하 열거되는 바와 같이, toString 방법, 또는 다른 프린트 API 방법/기능을 이용하여 획득될 수 있다. 도 24는 프린트 문서를 생성하는 프로그램 코드 세그먼트의 예를 도시한다.
텍스트 프린트 문서를 생성하기 위해, 텍스트 방법을 이용하여 커맨드 버퍼에 폰트 설정을 저장하고 그 다음에 프린트 문서를 생성한다. 도 25는 텍스트 프린트 문서를 생성하는 샘플 스크립트 코드를 도시한다. 샘플 스크립트 코드는 FontA라 불리우는 폰트를 사용하고, x4 수평 및 x4 수직의 텍스트 스케일을 설정하고, 스타일을 볼드체로 설정한다. 샘플 스크립트의 결과는 특정된 텍스트 설정을 갖는 텍스트인 "Hello World"로 프린트 문서를 생성하는 것이다.
도 26은 그래픽 프린트 문서를 생성하는 샘플 스크립트 코드를 도시한다. 보다 구체적으로, 샘플 스크립트 코드는 이미지 파일 logo.bmp에 대한 프린트 문서를 생성한다. 기본적으로, 래스터 이미지를 프린트하는 하나의 방식을 기술한다. 프린터 내에서 비휘발성 메모리에 등록된 그래픽을 프린트하는 다른 방법이 이하 기술된다. 본 예에서 그래픽 프린트 문서를 생성하기 위해, HTML5 Canvas에서 이미지를 렌더링함으로써 획득된 래스터 이미지는 addImag 방법을 이용하여 커맨드 버퍼에 저장된다.
프린트 문서를 생성하는 다른 방법은 도 22의 단계(143)에서 도시된 바와 같이, 페이지 모드 프린트 문서를 생성하는 것이다. 도 27은 페이지 모드 프린트 문서를 생성하는 샘플 코드를 도시한다. 이 예는 어구 "Hello world"를 프린트 영역에 부가한다. 다음의 예는 addPageBegin 방법을 이용한다. addPageBegin 방법이 커맨드 버퍼에 저장될 때, 페이지 모드가 개시한다. 프린트 영역은 (addPageArea 방법에 의해) 커맨드 버퍼에 저장되고, (addPagePosition 방법에 의해) 프린트 개시 위치가 커맨드 버퍼에 저장된다. 그 다음에 프린트 개시 위치는 프린트 데이터에 따라 특정된다. 그 다음에 이들 방법은 프린트 데이터를 생성하기 위해 커맨드 버퍼에 저장된다. 페이지 모드의 종료의 경우, PageEnd 방법이 커맨드 버퍼에 저장된다.
도 22로 돌아가면, 프린트 문서 생성 단계(143)에 후속하는 단계는 생성된 프린트 문서를 송신하는 단계(145)이다. 도 28은 프린트 문서의 송신을 위한 샘플 코드를 도시한다. 본 예에서, 프린트 문서는 ePOS-Print object를 이용하여 전송된다. ePOS-Print object는 구성자를 이용하여 생성될 수 있고, 프린팅을 위해 사용될 프린터에 대한 종단 지점 어드레스 뿐만 아니라 프린트 문서는 문서를 전송하기 위한 전송 방법으로 특정(즉, 입력)될 수 있다. 도 29는 프린터 종단 지점 어드레스에 관한 세부 사항을 갖는 테이블을 도시한다.
도 22에 도시된 바와 같이, 최종 단계(147)는 프린트 데이터의 수신이다. 프린트 결과는 ePOS-Print object의 onreceive 속성(이하 기술됨)을 이용하여 콜백 기능을 설정함으로써 수신될 수 있다. 도 30은 콜백 기능을 구현하는 샘플 코드를 도시한다. 획득될 수 있는 정보의 예는 프린트 결과, 에러 코드 및 프린터 스테이터스를 포함한다. 도 31은 콜백 기능에 대한 에러 취급 방법의 예를 도시한다. 도 32는 프린팅 없이 프린터 스테이터스를 체크하기 위한 스테이터스 이벤트 통지 기능의 사용을 도시한다.
도 33은 ePOS-Print API의 경우에서와 같이, ePOS-Print-Canvas API를 이용하는 프로그래밍에 대한 작업 흐름을 도시하며, ePOS-Print-Canvas API는 ePOS-Print-Canvas API를 웹 페이지에 내장하는 단계(151)로 개시한다. 도 34는 ePOS-Print-Canvas API를 내장하는 샘플 코드를 도시한다. 설명을 위해, ePOS-Print-Canvas API는 자바스크립트로서 도시되어 있고, 바람직하게는 명칭 규약, 즉, "epos-print-2.x.x.js"를 따른다. ePOS-Print-Canvas API는 웹 서버에서 유지(즉, 위치/보유/저장)되고 그 다음에 그 애플리케이션(즉, 웹 페이지)에 내장하여 클라이언트에 배포될 수 있다. 도 34에 도시된 바와 같이, ePOS-Print-Canvas API는 HTML <스크립트> 태그를 이용함으로써 웹 애플리케이션에 내장될 수 있다.
도 33에서 다음의 단계(153)는 HTML5 Canvas에서 렌더링하는 것이다. 도 35는 HTML5 Canvas에서 렌더링하는 샘플 코드를 도시한다. 다음의 단계(155)는 렌더링된 캔버스 이미지를 프린트하는 것이다. 도 36은 프린팅을 위한 프린트 문서를 송신하는 샘플 코드를 도시한다. ePOS-Print-Canvas API를 이용하여 콘텐츠가 그려진 HTML5-Canvas를 프린트하기 위해, ePOS-Print-Canvas API object는 구성자를 이용하여 생성된다. 프린트 방법을 사용하기 위해, 프린팅을 위해 사용될 프린터에 대한 종단 지점 어드레스 뿐만 아니라 캔버스 콘텐츠 및 용지 절단을 선택할지를 특정하고, 그 다음에 문서가 프린트된다.
TM 지능 프린터(즉, 지능 모듈)는 단계(157)에서 표시된 바와 같이, 송신을 수신한다. 도 37은 수신 결과의 프린팅 및 콜백 기능을 위한 샘플 코드를 도시한다. 이전과 같이, 프린트 결과는 ePOS-Print-Canvas API object의 onreceive 속성을 이용하여 콜백 기능을 설정함으로써 수신될 수 있다. 이러한 방식으로, 프린트 결과, 에러 코드 및 프린터 스테이터스에 관한 정보를 획득한다. 도 38은 콜백 기능에 의해 에러 취급을 위한 샘플 코드를 도시한다. 따라서, 스테이터스 이벤트 통지 기능은 도 39의 샘플 코드에 도시된 바와 같이, 프린팅 하지 않고 프린터 스테이터스를 체크하는데 사용될 수 있다.
상술한 바와 같이, ePOS-Print API는 프린트 문서를 생성하는 다수의 방법을 제공한다. 도 40, 도 41, 도 42(a) 및 도 42(b)는 ePOS Builder object에 의해 정의되는 바와 같이, ePOS-Print API의 방법 및 구성요소의 몇몇을 열거한다.
당 분야에서 통상의 지식을 가진 자에 의해 이해되는 바와 같이, 새로운 ePOS-Print Builder object는 구성자에 의해 생성되고 개시되며, object는 프린트될 스트링 또는 그래픽, 용지 절단 등을 특정하는 프린터 제어 커맨드에 대한 프린트 문서를 생성하는데 사용될 수 있다. 바람직하게는, 이 구성자는 다음과 같은 신택스, "ePOSBuilder( );"을 따른다. 도 43은 ePOS-Print Builder object의 구성자에 대한 샘플 코드를 도시한다.
텍스트 정렬 설정을 커맨드 버퍼에 부가하는 신택스는 신택스, addTextAlign(align)를 따를 수 있으며, "align"은 정렬의 타입을 특정한다. 도 44는 정렬 파라미터의 타입의 예를 도시한다. 도 45는 ePOS-Print Builder object에 대한 반환 값을 도시하고, 도 46은 예외적인 에러를 도시한다. 도 47은 텍스트 정렬의 사용을 도시하는 샘플 코드를 도시한다.
라인 공급 공간 설정을 커맨드 버퍼에 부가하는 방법은 바람직하게는 신택스, addTextLineSpace(linespc)를 따른다. 파라미터 "linespc"는 라인 공급 공간(도트), 및 바람직하게는 0 내지 255 범위의 이미지를 특정한다. 도 48은 라인 공급 공간을 30 도트로 설정하기 위한 샘플 코드를 도시한다.
텍스트 회전 설정을 커맨드 버퍼에 부가하기 위한 방법은 바람직하게는 다음과 같은 신택스, addTextRotate(rotate)를 따르며, "rotate"는 텍스트를 회전시킬지를 특정하는 불린(Boolean)이다. 도 49는 회전 파라미터에 대한 불린 값을 도시한다. 도 50은 텍스트 회전을 설정하기 위한 샘플 코드를 도시한다.
텍스트 프린팅을 커맨드 버퍼에 부가하기 위한 방법은 바람직하게는 신택스, addText(data)를 따르며, 파라미터 "data"는 프린트될 문자 스트링이다. 수평 탭 및 라인 공급과 같은 프린팅 불가능한 문자는 도 51에 도시된 바와 같이, 탈출(escape) 시퀀스일 수 있다. 도 52는 addText(data)의 사용을 도시하는 샘플 코드를 도시한다.
언어 설정을 커맨드 버퍼에 부가하기 위한 방법은 바람직하게는 신택스, addTextLang(lang)를 따르며, 파라미터 "lang"는 타겟 언어를 특정하는 스트링이다. 도 53은 타겟 언어를 지정하기 위한 파라미터 "lang"의 예를 도시한다. 도 54는 방법 addTextLang(lang)의 사용을 도시하는 샘플 코드를 도시한다.
텍스트 폰트 설정을 커맨드 버퍼에 부가하기 위한 방법은 바람직하게는 신택스, addTextFont(font)를 따르며, 파라미터 "font"는 원하는 폰트를 특정하는 스트링이다. 도 55는 폰트 파라미터에 대한 샘플 값을 도시하고, 도 56은 addTextFont(font) 방법의 사용을 도시하는 샘플 코드를 도시한다.
스무딩 설정을 커맨드 버퍼에 부가하기 위한 방법은 바람직하게는 신택스, addTextSmooth(smooth)를 따르며, 파라미터 "smooth"는 스무딩을 인에이블할지를 특정하는 불린이다. 도 57은 파라미터 "smooth"에 대해 가능한 값을 도시하고, 도 58은 방법 addTextSmooth(smooth)의 사용을 도시하는 샘플 코드를 도시한다.
2배 크기의 텍스트 설정을 커맨드 버퍼에 부가하기 위한 방법은 바람직하게는 신택스, addTextDouble(dw, dh)를 따르며, dw는 2배 크기의 폭을 특정하는 선택적인 불린 파라미터이고 dh는 2배 크기의 높이를 특정하는 선택적인 불린 파라미터이다. 도 59는 dw에 대한 파라미터 값을 도시하고, 도 60은 du에 대한 파라미터 값을 도시한다. 도 61은 텍스트 크기를 2배의 폭과 2배의 높이로 설정하기 위한 샘플 코드를 도시한다.
텍스트 스케일 설정을 커맨드 버퍼에 부가하기 위한 방법은 바람직하게는 신택스, addTextSize(width, height)를 따르며, 파라미터 "width"는 텍스트의 수평 스케일을 특정하는 선택적인 숫자 파라미터이고 파라미터 "height"는 텍스트의 수직 스케일을 특정하는 선택적인 숫자 파라미터이다. 도 62는 파라미터 "width"에 대해 가능한 값을 도시하고, 도 63은 파라미터 "height"에 대해 가능한 값을 도시한다. 도 64는 x4의 수평 스케일 및 x4의 수직 스케일을 설정하기 위한 샘플 코드를 도시한다.
텍스트 스타일 설정을 커맨드 버퍼에 부가하기 위한 방법은 바람직하게는 신택스, addTextStyle(reverse, ul, em, color)를 따르며, "reverse"는 텍스트에 대해 흑색 및 백색을 반전할지를 특정하는 선택적인 불린 파라미터이고, "ul"는 언더라인 스타일을 특정하는 선택적인 불린 파라미터이고, "em"은 볼드체 스타일을 특정하는 선택적인 불린 파라미터이고, "color"는 컬러를 특정하는 선택적인 스트링 파라미터이다. 도 65는 파라미터 "reverse"에 대해 가능한 값을 도시한다. 도 66은 파라미터 "ul"에 대해 가능한 값을 도시한다. 도 67은 파라미터 "em"에 대해 가능한 값을 도시한다. 도 68은 파라미터 "color"에 대해 가능한 값을 도시한다. 도 69는 언더라인 스타일을 설정하기 위한 샘플 코드를 도시한다.
텍스트의 수평 프린트 개시 위치를 커맨드 버퍼에 부가하기 위한 방법은 바람직하게는 신택스, addTextPosition(x)를 따르며, 파라미터 "x"는 (도트 단위로) 수평 프린트 개시 위치를 특정하는 숫자 파라미터로서 0 내지 65535 범위 내의 정수이다. 도 70은 좌측 종단으로부터의 120 도트에서 프린트 위치를 설정하기 위한 샘플 코드를 도시한다.
도트 단위로의 용지 공급을 커맨드 버퍼에 부가하기 위한 방법은 바람직하게는 신택스, addFeedUnit(unit)를 따르며, "unit"은 (도트 단위로) 용지 공급 간격을 특정하는 숫자 파라미터로서 0 내지 255 범위 내의 정수이다. 도 71은 30 도트 간격으로 용지를 공급하기 위한 샘플 코드를 도시한다.
라인 단위로의 용지 공급을 커맨드 버퍼에 부가하기 위한 방법은 바람직하게는 신택스, addFeedLine(line)를 따르며, "line"은 (라인 단위로) 용지 공급 간격을 특정하는 정수 파라미터로서 0 내지 255 범위 내의 정수이다. 도 72는 3 라인 간격으로 용지를 공급하기 위한 샘플 코드를 도시한다.
라인 공급을 커맨드 버퍼에 부가하기 위한 방법은 바람직하게는 신택스, addFeed()를 따른다. 도 73은 문자 스트링을 프린트한 후에 새로운 라인을 개시하기 위한 샘플 코드를 도시한다.
addImage 방법은 래스터 이미지 프린팅을 커맨드 버퍼에 부가하고, HTML5-Canvas로 렌더링된 그래픽을 프린트한다. 이 방법은 하프톤 및 휘도 속성의 설정에 따라 HTML5-Canvas의 RGBA 풀 컬러(full-color) 이미지 내의 특정된 범위를 래스터 이미지 데이터로 또한 변환한다. 이미지 내의 하나의 픽셀은 하나의 프린터 도트인 것으로 가정하고, 이미지가 임의의 투명한 컬러를 포함하는 경우, 이미지의 배경 컬러는 백색에 가정된다. 바람직하게는 신택스, addImage(context, x, y, width, height, color, mode)를 따르며, "context"는 HTML5-Canvas의 2D 컨텍스트를 특정하는 컨텍스트 파라미터이고, "x"는 0 내지 65535 범위 내의 정수로서 프린트 영역 내의 수평 개시 위치를 특정하고, "y"는 0 내지 65535 범위 내의 정수로서 프린트 영역 내의 수직 개시 위치를 특정하고, "width"는 0 내지 65535 범위 내의 정수로서 프린트 영역의 폭을 특정하고, "height"는 0 내지 65535 범위 내의 정수로서 프린트 영역 내의 높이를 특정하고, "color"는 컬러를 특정하는 선택적인 스트링 파라미터이고(도 74는 addImage 방법 내에서의 파라미터 "color"에 대한 샘플 코드를 도시함), "mode"는 컬러 모드를 특정하는 선택적인 스트링 파라미터이다(도 75는 addImage 방법 내에서의 파라미터 "mode"에 대한 샘플 코드를 도시함). 도 76은 페이지 모드에서 300 도트 폭과 300 도트 높이의 이미지를 프린트하기 위한 샘플 코드를 도시한다.
NV 로고 프린팅을 커맨드 버퍼에 부가하기 위한 방법은 바람직하게는 신택스, addLogo(key1, key2)를 따른다. 이 방법은 프린터의 NV 메모리에 이미 등록되어 있는 로고를 프린트한다. 파라미터 key1는 NV 로고의 제 1 키 코드 1을 특정하는 수로서 바람직하게는 0 내지 255 범위 내의 정수이다. 파라미터 key2는 NV 로고의 제 2 키 코드 2를 특정하는 수로서 바람직하게는 0 내지 255 범위 내의 정수이다. 도 77은 addLogo 방법의 사용을 도시하는 샘플 코드를 도시한다.
바코드 프린팅을 커맨드 버퍼에 부가하기 위한 방법은 바람직하게는 신택스, addBarcode(data, type, hri, font, width, height)를 따른다. 파라미터 "data"는 바코드 데이터를 스트링으로서 특정하는 스트링이다. 파라미터 "type"는 바코드 타입을 특정하는 스트링이다. 도 78 내지 도 81은 바코드 타입의 예를 도시한다. 파라미터 "hri"는 HRI 위치를 특정하는 선택적인 스트링 파라미터이다. 도 82는 hri 파라미터에 대해 몇몇 가능한 값을 도시한다. 파라미터 "font"는 HRI 폰트를 특정하는 선택적인 스트링이다. 파라미터 "width"는 도트 단위로 각각의 모듈의 폭을 특정하는 선택적인 정수로서 바람직하게는 2 내지 6의 범위이다. 파라미터 "height"는 도트로 바코드 높이를 특정하는 선택적인 정수로서 바람직하게는 1 내지 255의 범위이다. 도 83은 바코드를 어떻게 프린트할지를 도시하는 샘플 코드를 도시한다.
2차원 심볼 프린팅을 커맨드 버퍼에 부가하기 위한 방법은 바람직하게는 신택스, addSymbol(data, type, level, width, height, size)를 따른다. 파라미터 "data"는 바람직하게는 2차원(2D) 심볼 데이터를 문자 스트링으로서 특정하는 스트링이다. 도 84 및 도 85는 addSymbol 방법 내에서의 파라미터 "data"에 대한 2D 코드 타입 설명의 예를 도시한다. 파라미터 "type"은 2차원 심볼 타입을 특정하는 스트링이다. 도 86은 addSymbol 방법 내에서의 파라미터 "type"에 대한 샘플 코드를 도시한다. 파라미터 "level"은 에러 정정 레벨을 특정하는 스트링이다. 도 87은 addSymbol 방법 내에서의 파라미터 "level"에 대한 샘플 코드를 도시한다. "width" 파라미터는 모듈 폭을 특정하는 0 내지 255 범위의 정수이다. "height" 파라미터는 모듈 높이를 특정하는 0 내지 255 범위의 정수이다. "size" 파라미터는 2차원 심볼 최대 크기를 특정하는 0 내지 65535 범위의 정수이다. 도 88은 2차원 심볼을 프린트하기 위한 샘플 코드를 도시한다.
수평 라인을 드로잉하도록 수평 라인 프린팅을 커맨드 버퍼에 부가하기 위한 방법은 바람직하게는 신택스, addHLine(x1, x2, style)를 따르고, 파라미터 x1는 0 내지 65535 범위 내의 정수로서 (도트로) 수평 라인의 개시 위치를 특정하고, 파라미터 x2는 0 내지 65535 범위 내의 정수로서 (도트로) 수평 라인의 종단 위치를 특정하고, 파라미터 style는 라인 타입을 특정하는 스트링이다. 도 89는 addHLine 방법에 대한 몇몇 스타일 파라미터를 도시한다. 도 90은 좌측 종단으로부터의 100 도트와 200 도트 사이의 위치에서 그리고 좌측 종단으로부터의 300 도트와 300 도트 사이의 위치에서 이중 수평 라인을 드로잉하기 위한 샘플 코드를 도시한다.
수직 라인의 시작을 커맨드 버퍼에 부가하기 위한(즉, 수직 라인의 드로잉을 개시하기 위한) 방법은 신택스, addVLineBegin(x, style)를 따르고, 파라미터 x는 0 내지 65535 범위 내의 정수로서 (도트로) 수직 라인의 개시 위치를 특정하고, 파라미터 style는 라인 타입을 특정하는 선택적인 스트링이다. 도 91은 addVLineBegin 방법에 대한 파라미터 스타일의 예를 도시한다. 도 92는 좌측 종단으로부터의 100 도트 및 200 도트에서 얇은 수직 라인을 드로잉하기 위한 샘플 코드를 도시한다.
수직 라인의 종단을 커맨드 버퍼에 부가하기 위한(즉, 수직 라인의 드로잉을 종료하기 위한) 방법은 신택스, addVLineEnd(x, style)를 따르고, 파라미터 x는 0 내지 65535 범위 내의 정수로서 (도트로) 수직 라인의 종단 위치를 특정하고, 파라미터 "style"는 드로잉을 종료하기를 원하는 라인의 타입을 특정하는 선택적인 스트링이다. 도 93은 addVLineEnd 방법에 대한 파라미터 스타일의 예를 도시한다. 도 94는 좌측 종단으로부터의 100 도트 및 200 도트에서 얇은 수직 라인을 드로잉하기 위한 샘플 코드를 도시한다.
페이지 모드로의 스위칭을 커맨드 버퍼에 부가하기 위한(즉, 페이지 모드 프로세스를 개시하기 위한) 방법은 신택스, addPageBegin()를 따른다. 페이지 모드의 종료를 커맨드 버퍼에 부가하기 위한(즉, 페이지 모드 프로세스를 종료하기 위한) 방법은 바람직하게는 신택스, addPageEnd()를 따른다. 도 95는 페이지 모드에서 문자 "ABCDE"를 프린트하기 위한 샘플 코드를 도시한다.
방법 addPageArea(x, y, width, height)은 페이지 모드에서 프린트 영역을 특정하기 위해 페이지 모드에서의 프린트 영역을 커맨드 버퍼에 부가한다. 이 API 기능 이후에, (addText 방법과 같은) 프린트 데이터 API 기능이 특정되어야 한다. 파라미터 "x"는 0 내지 65535 범위 내의 정수로서 (도트로) 수평축의 원점을 특정하고, 0은 프린터의 프린트가능한 영역의 좌측 종단이다. 파라미터 "y"는 0 내지 65535 범위 내의 정수로서 (도트로) 수직축의 원점을 특정하고, 0은 용지 공급이 수행되지 않은 위치이다. 파라미터 "width"는 0 내지 65535 범위 내의 정수로서 프린트 영역의 폭을 (도트로) 특정한다. 도 96은 원점(100, 50), 200 도트의 폭, 및 30 도트의 높이를 갖는 프린트 영역을 특정하고 문자 "ABCDE"를 프린트하기 위한 샘플 코드를 도시한다.
페이지 모드 프린트 방향 설정을 커맨드 버퍼에 부가하기 위한(즉, 페이지 모드에서 프린트 방향을 특정하기 위한) 방법은 신택스, addPageDirection(dir)를 따른다. 이 기능은 회전이 필요하지 않으면 생략될 수 있다. 파라미터 "dir"는 페이지 모드에서 프린트 방향을 특정하는 스트링이다. 도 97은 방법 addPageDirection의 파라미터 "dir"에 대한 몇몇 예를 도시한다. 도 98은 문자 "ABCDE"를 시계 방향으로 90도 회전시켜 프린트하기 위한 샘플 코드를 도시한다.
페이지 모드 프린트 위치 설정 영역을 커맨드 버퍼에 부가하기 위한(즉, addPageArea 방법에 의해 특정된 영역 내의 프린트 개시 위치(좌표)를 특정하기 위한) 방법은 신택스 addPagePosition(x, y)를 포함한다. 파라미터 "x"는 (도트로) 수평 프린트 위치를 특정하는 0 내지 65535 범위 내의 정수이다. 파라미터 "y"는 (도트로) 수직 프린트 위치를 특정하는 0 내지 65535 범위 내의 정수이다. 도 99는 addPageArea 방법에 의해 특정된 영역 내의 프린트 개시 위치로 (50, 30)를 특정하고 문자 "ABCDE"를 프린트하기 위한 샘플 코드를 도시한다.
페이지 모드에서 라인 드로잉을 커맨드 버퍼에 부가하기 위한(즉, 페이지 모드에서 라인 드로잉하기 위한) 방법은 신택스, addPageLine(x1, y1, x2, y2, style)를 따른다. 파라미터 "x1"는 (도트로) 라인의 수평 개시 위치를 특정하는 0 내지 65535 범위 내의 정수이다. 파라미터 "y1"는 (도트로) 라인의 수직 개시 위치를 특정하는 0 내지 65535 범위 내의 정수이다. 파라미터 "x2"는 (도트로) 라인의 수평 종단 위치를 특정하는 0 내지 65535 범위 내의 정수이다. 파라미터 "y2"는 (도트로) 라인의 수직 종단 위치를 특정하는 0 내지 65535 범위 내의 정수이다. 파라미터 "style"는 라인 타입을 특정하는 스트링이다. 도 100은 방법 addPageLine에서 "style" 파라미터의 예를 도시한다. 도 101은 개시 위치(100, 0)와 종단 위치(500, 0) 사이에서 얇은 실선을 드로잉하기 위한 샘플 코드를 도시한다.
페이지 모드에서 사각형 드로잉을 커맨드 버퍼에 부가하기 위한(즉, 페이지 모드에서 사각형을 드로잉하기 위한) 방법은 신택스, addPageRectangle(x1, y1, x2, y2, style)를 따른다. 파라미터 x1는 (도트로) 라인의 수평 개시 위치를 특정하는 0 내지 65535 범위 내의 정수이다. 파라미터 y1는 (도트로) 라인의 수직 개시 위치를 특정하는 0 내지 65535 범위 내의 정수이다. 파라미터 x2는 (도트로) 라인의 수평 종단 위치를 특정하는 0 내지 65535 범위 내의 정수이다. 파라미터 y2는 (도트로) 라인의 수직 종단 위치를 특정하는 0 내지 65535 범위 내의 정수이다. 파라미터 "style"는 라인 타입을 특정하는 스트링이다. 도 102는 방법 addPageRectangle에서 "style" 파라미터의 예를 도시한다. 도 103은 개시 위치(100, 0)와 종단 위치(500, 200)를 그 꼭지점으로서 갖는 사각형을 얇은 이중선으로 드로잉하기 위한 샘플 코드를 도시한다.
용지 절단을 커맨드 버퍼에 부가하기 위한(즉, 용지 절단을 설정/작동하기 위한) 방법은 신택스 addCut(type)를 따르며, 파라미터 "type"는 용지 절단 타입을 특정하는 스트링이다. 도 104는 방법 addCut에 대한 샘플 타입을 도시한다. 도 105는 공급 절단 동작을 수행하기 위한 샘플 코드를 도시한다.
드로어 킥을 커맨드 버퍼에 부가하기 위한 방법은 신택스 addPulse(drawer, time)를 포함한다. 파라미터 "drawer"는 드로어 킥 커넥터를 특정하는 스트링이다. 도 106은 방법 addCut에 대한 파라미터 "drawer"의 예를 도시한다. 파라미터 "time"는 드로어 킥 신호의 온(ON) 시간(즉, 지속 기간)을 특정하는 선택적인 파라미터 스트링이다. 도 107은 방법 addCut에 대한 파라미터 "time"의 예를 도시한다. 도 108은 100msec 펄스 신호를 드로어 킥 커넥터의 핀 "2"에 전송하기 위한 샘플 코드를 도시한다.
버저의 턴 온을 커맨드 버퍼에 부가하기 위한(즉, 버저를 설정하기 위한) 방법은 신택스 addSound(pattern, repeat)를 따른다. 파라미터 "pattern"는 버저 패턴을 특정하는 선택적인 스트링이다. 도 109는 버저 패턴의 예를 도시한다. 파라미터 "repeat"는 반복 횟수를 특정하는 선택적인 스트링이다. 도 110은 방법 addSound에서 파라미터 "repeat"를 어떻게 설정하는지의 예를 도시한다. 도 111은 사운드 패턴 "A"를 3회 반복하기 위한 샘플 코드를 도시한다.
커맨드를 커맨드 버퍼에 부가하기 위한(즉, ESC/POS 커맨드를 전송하기 위한) 방법은 신택스 addCommand(data)를 포함하고, "data"는 ESC/POS 커맨드를 문자 스트링으로서 특정하는 선택적인 스트링이다.
ePOS-Print Builder object에 의해 생성된 프린트 문서를 획득하기 위한 방법은 신택스 toString()를 포함한다. 도 112는 방법 toString()의 사용을 도시하는 샘플 코드를 도시한다.
하프톤 속성은 하프톤 프로세싱 방법에 의해 구현되고, object 타입은 "string"이다. 도 113은 모노크롬(2톤) 프린팅에 적용될 하프톤 프로세싱 방법의 특정을 도시한다. 디폴트 값은 HALFTONE_DITHER이다. 도 114는 하프톤 타입을 에러 디퓨전으로서 설정하기 위한 샘플 코드를 도시한다.
휘도 보정은 감마 값을 설정함으로써 설정될 수 있다. 0.1 내지 10.0 범위의 감마 값은 휘도 보정 값에 대해 특정된다(즉, 이용가능하다). 도 115는 휘도를 2.2로서 설정하기 위한 샘플 코드를 도시한다.
ePOS-Print Builder object의 방법에 의해 통상적으로 추가되는 커맨드는 추가 또는 삭제를 위해 이 속성으로부터 직접 동작할 수 있다. 도 116은 커맨드 버퍼를 클리어하고 이를 초기 상태로 리셋하기 위한 샘플 코드를 도시한다.
ePOS-Print Builder object에 대한 구성자는 새로운 ePOS-Print Builder object를 생성하고 이를 초기화한다. 프린터를 제어하고 전송 결과 또는 통신 스테이터스를 모니터링하기 위해 ePOS-Print Builder object를 이용하여 생성된 프린트 문서를 전송하기 위한 방법은 신택스 ePOSPrint(address)를 포함하며, "address"는 프린트 문서가 전송되는 프린터의 URL(즉, 네트워크 어드레스)을 특정하는 선택적인 스트링이다. 도 117은 ePOSPrint(address)의 사용을 도시하는 샘플 코드를 도시한다.
send 방법은 ePOS-Print Builder object를 이용하여 생성된 프린트 문서를 전송한다. 이것은 신택스 send(request)를 포함하며, "request"는 프린트 문서를 특정하는 스트링이다. 도 118은 send(request) 방법의 사용을 도시하는 샘플 코드를 도시한다.
open 방법은 스테이터스 이벤트 동작을 인에이블한다. 이것은 이벤트를 이용하는 어드레스 속성에 의해 특정된 프린터의 스테이터스를 전송하고, 간격 속성에 의해 특정된 간격에서 스테이터스를 업데이트한다. 이것은 신택스 open()를 포함한다. 도 119는 open() 방법의 사용을 도시하는 샘플 코드를 도시한다.
close() 방법은 스테이터스 이벤트 동작을 디스에이블한다. 도 120은 close() 방법의 사용을 도시하는 샘플 코드를 도시한다.
어드레스 속성은 프린팅을 위해 사용될 프린터의 URL을 특정하는데 사용된다. 도 121은 어드레스 속성의 사용의 예를 도시한다.
인에이블된 속성은 스테이터스 이벤트 동작에 대한 인에이블된/디스에이블된 설정을 유지하는 불린 값이다. 스테이터스 이벤트 동작에 대한 인에이블된/디스에이블된 설정은 논리 값을 이용하여 유지된다. 이것은 판독 전용이다. 디폴트 값은 거짓(false)이다. 도 122는 인에이블된 속성을 이용하는 예를 도시한다.
간격 속성은 스테이터스를 업그레이드하는 간격을 특정한다. 스테이터스를 업그레이드하는 간격은 밀리초로 특정된다. 이것은 3000ms(3초)의 디폴트 값, 및 1000ms의 최소 값(1초 이상)을 갖는다. 무효의 값이 특정되는 경우, 3000ms인 것으로 가정한다. 도 123은 간격 속성을 이용하여 예를 도시한다.
스테이터스 속성은 프린터의 스테이터스를 제공한다. 이것은 프린터로부터 가장 최근에 획득된 스테이터스이고, 판독 전용이다. 도 124는 스테이터스 속성을 이용하는 예를 도시한다.
onreceive 이벤트는 콜백 기능을 등록하고 응답 메시지 수신 이벤트를 획득하는 속성이다. 이것은 신택스 Function(response)를 포함한다. 콜백 기능의 파라미터는 파라미터로서 응답을, 명칭으로서 응답 메시지를, 객체 타입으로서 객체를 포함한다. 도 125는 응답 객체의 몇몇 속성을 도시한다. 도 126은 성공의 값을 도시한다. 도 127은 코드의 값을 도시한다. 도 128은 스테이터스의 값을 도시한다. 도 129는 프린트 문서를 생성하고 전송하고, 프린트 결과를 메시지 박스에 디스플레이하기 위한 샘플 코드를 도시한다.
onerror 이벤트 속성은 콜백 기능을 등록하고 통신 에러 이벤트를 획득한다. 이것은 신택스 Function(error)를 포함한다. 도 130은 에러 객체의 몇몇 속성을 열거한다. 도 131은 프린트 문서를 생성하여 전송하고, 통신 에러가 발생하는 경우 메시지 박스에 HTTP 스테이터스 코드를 디스플레이하기 위한 샘플 코드를 도시한다.
onstatuschange 이벤트는 스테이터스 변화 이벤트를 획득하기 위한 콜백 기능을 등록한다. 이것은 신택스 Function(status)를 포함한다. 도 132는 onstatuschange 속성을 이용하는 예를 도시한다.
ononline 이벤트는 온라인 이벤트를 획득하기 위한 콜백 기능을 등록한다. 이것은 신택스 Function()를 포함한다. 도 133은 ononline 속성을 이용하는 예를 도시한다.
onoffline 이벤트는 오프라인 이벤트를 획득하기 위한 콜백 기능을 등록한다. 이것의 신택스도 Function()이다. 도 134는 onoffline 속성을 이용하는 예를 도시한다.
onpoweroff 이벤트는 비응답 이벤트를 획득하기 위한 콜백 기능을 등록한다. 이것의 신택스도 Function()이다. 도 135는 onpoweroff 이벤트를 이용하는 예를 도시한다.
oncoverok 이벤트는 커버 폐쇄 이벤트를 획득하기 위한 콜백 기능을 등록한다. 이것의 신택스도 Function()이다. 도 136은 oncoverok 이벤트를 이용하는 예를 도시한다.
oncoveropen 이벤트는 커버 개방 이벤트를 획득하기 위한 콜백 기능을 등록한다. 이것의 신택스도 Function()이다. 도 137은 oncoveropen 이벤트를 이용하는 예를 도시한다.
onpaperok 이벤트는 용지 유지 이벤트를 획득하기 위한 콜백 기능을 등록한다. 이것의 신택스도 Function()이다. 도 138은 onpaperok 이벤트를 이용하는 예를 도시한다.
onpapernearend 이벤트는 용지 근접 종단 이벤트를 획득하기 위한 콜백 기능을 등록한다. 이것의 신택스도 Function()이다. 도 139는 onpapernearend 이벤트를 이용하는 예를 도시한다.
onpaperend 이벤트는 용지 종단 이벤트를 획득하기 위한 콜백 기능을 등록한다. 이것의 신택스도 Function()이다. 도 140은 onpaperend 이벤트를 이용하는 예를 도시한다.
ondrawerclosed 이벤트는 드로어 폐쇄 이벤트를 획득하기 위한 콜백 기능을 등록한다. 이것의 신택스도 Function()이다. 도 141은 ondrawerclosed 이벤트를 이용하는 예를 도시한다.
ondraweropen 이벤트는 드로어 개방 이벤트를 획득하기 위한 콜백 기능을 등록한다. 이것의 신택스도 Function()이다. 도 142는 ondraweropen 이벤트를 이용하는 예를 도시한다.
이하에 몇몇 ePOS-Print-Canvas API 기능을 설명한다. 도 143은 ePOS-Print-Canvas API의 몇몇 구성요소의 리스트를 도시한다.
ePOS-Print-Canvas API 객체는 HTML5-Canvas에서 렌더링되는 프린트 이미지를 프린트하고 프린트 결과 또는 통신 스테이터스를 모니터링한다. ePOS-Print-Canvas API 객체에 대한 구성자는 새로운 ePOS-Print-Canvas API 객체를 생성하고 이를 초기화하는데 사용된다. 신택스는 CanvasPrint(address)이며, "address"는 어드레스 속성(프린팅을 위해 사용될 프린터의 URL)을 특정하는 선택적인 스트링이다. 도 144는 새로운 ePOS-Print-Canvas API 객체의 생성을 도시하는 샘플 코드이다.
프린트 방법은 HTML5-Canvas에서 렌더링되는 이미지를 프린트한다. 이것은 하프톤 및 휘도 속성의 설정에 따라 HTML5-Canvas의 RGBA 풀 컬러 이미지에서의 특정된 범위를 래스터 이미지 데이터로 변환한다. 이미지에서의 하나의 픽셀은 하나의 프린터 도트와 같다. 이미지가 임의의 투명한 컬러를 포함하는 경우, 이미지의 배경 컬러는 백색인 것으로 가정한다. 프린트 방법은 신택스 print(canvas, cut, mode)를 포함한다. 파라미터 "canvas"는 프린트될 HTML5-Canvas 객체를 특정한다. 파라미터 "cut"는 용지를 절단할지를 설정하는 선택적인 불린이다. 도 145는 파라미터 "cut"의 예를 도시한다. 파라미터 "mode"는 컬러 모드를 특정하는 선택적인 스트링이다. 도 146은 파라미터 "mode"의 예를 도시한다. 도 147은 Canvas(ID='myCanvas')를 프린트하기 위한 샘플 코드를 도시한다.
개시 방법은 스테이터스 이벤트 동작을 인에이블한다. 이것은 이벤트를 이용하는 어드레스 속성에 의해 특정된 프린터의 스테이터스를 전송하고, 간격 속성에 의해 특정된 간격에서 스테이터스를 업데이트한다. 이것은 신택스, open()를 포함한다. 도 148은 open() 방법의 사용을 도시하는 샘플 코드이다.
종료 방법은 스테이터스 이벤트 동작을 디스에이블한다. 이것은 신택스, close()를 포함한다. 도 149는 close() 방법의 사용을 도시하는 샘플 코드이다.
어드레스 속성은 프린팅을 위해 사용될 프린터의 URL을 특정한다. 도 150은 어드레스 속성의 사용을 도시하는 샘플 코드이다.
인에이블된 속성은 스테이터스 이벤트 동작에 대해 인에이블된/디스에이블된 설정을 유지한다. 이것은 불린 타입이고, 스테이터스 이벤트 동작에 대한 인에이블된/디스에이블된 설정은 논리 불린 값을 이용하여 유지된다. 이것은 판독 전용이며, 디폴트 값은 거짓이다. 도 151은 인에이블된 속성의 사용을 도시하는 샘플 코드이다.
간격 속성은 스테이터스를 업그레이드하는 간격을 특정한다. 스테이터스를 업그레이드하는 간격은 밀리초로 특정된다. 디폴트 값은 3000ms(3초)이고, 1000ms의 최소 값(1초 이상)을 갖는다. 무효의 값이 특정되는 경우, 디폴트로 3000ms인 것으로 가정한다. 도 152는 간격 속성의 사용을 도시하는 샘플 코드이다.
스테이터스 속성은 프린터의 스테이터스를 제공한다. 이것은 프린터로부터 가장 최근에 획득된 스테이터스이다. 이것은 판독 전용이고, 0의 디폴트 값을 갖는다. 도 153은 스테이터스 속성의 사용을 도시하는 샘플 코드이다.
하프톤 프로세싱 방법은 모노크롬(2톤) 프린팅에 적용되는 하프톤 속성을 특정한다. 디폴트 값은 HALFTONE_DITHER이다. 도 154는 몇몇 하프톤 속성을 도시한다. 도 155는 하프톤 속성의 사용을 도시하는 샘플 코드이다.
휘도 속성은 감마 값을 이용하여 설정된다. 보다 구체적으로, 0.1 내지 10.0 범위의 감마 값이 휘도 보정 값으로서 특정된다. 디폴트 값은 1.0이다. 도 156은 휘도 속성의 설정을 도시하는 샘플 코드이다.
onreceive 이벤트는 콜백 기능을 등록하고 응답 메시지 수신 이벤트를 획득하는 속성이다. 이것은 신택스 Function(response)를 포함한다. 콜백 기능의 파라미터는 파라미터로서 응답을, 명칭으로서 응답 메시지를, 객체 타입으로서 객체를 포함한다. 도 157은 응답 객체의 몇몇 속성을 도시한다. 도 158은 성공의 값을 도시한다. 도 159는 코드의 값을 도시한다. 도 160은 스테이터스의 값을 도시한다. 도 161은 Canvas(ID=myCanvas)를 프린트하고, 프린트 결과를 메시지 박스에 디스플레이하기 위한 샘플 코드를 도시한다.
onerror 이벤트 속성은 콜백 기능을 등록하고 통신 에러 이벤트를 획득한다. 이것은 신택스 Function(error)를 포함한다. 도 162는 에러 객체의 몇몇 속성을 열거한다. 도 163은 통신 에러가 발생하는 경우, Canvas(ID=myCanvas)를 프린트하고, HTTP 스테이터스 코드를 메시지 박스에 디스플레이하기 위한 샘플 코드를 도시한다.
onstatuschange 이벤트는 스테이터스 변경 이벤트를 획득하기 위해 콜백 기능을 등록한다. 이것은 신택스 Function(status)를 포함한다. 도 164는 onstatuschange 이벤트의 사용을 도시하는 샘플 코드이다.
ononline 이벤트는 online 이벤트를 획득하기 위해 콜백 기능을 등록한다. 이것은 신택스 Function()를 포함한다. 도 165는 ononline 속성의 사용의 예를 도시한다.
onoffline 이벤트는 offline 이벤트를 획득하기 위해 콜백 기능을 등록한다. 그 신택스는 또한 Function()이다. 도 166은 onoffline 속성의 사용의 예를 도시한다.
onpoweroff 이벤트는 비응답 이벤트를 획득하기 위해 콜백 기능을 등록한다. 그 신택스는 또한 Function()이다. 도 167은 onpoweroff 이벤트의 사용의 예를 도시한다.
oncoverok 이벤트는 커버 폐쇄 이벤트를 획득하기 위해 콜백 기능을 등록한다. 그 신택스는 또한 Function()이다. 도 168은 oncoverok 이벤트의 사용의 예를 도시한다.
oncoveropen 이벤트는 커버 개방 이벤트를 획득하기 위해 콜백 기능을 등록한다. 그 신택스는 또한 Function()이다. 도 169는 oncoveropen 이벤트의 사용의 예를 도시한다.
onpaperok 이벤트는 용지 유지 이벤트를 획득하기 위해 콜백 기능을 등록한다. 그 신택스는 또한 Function()이다. 도 170은 onpaperok 이벤트의 사용의 예를 도시한다.
onpapernearend 이벤트는 용지 근접 종단 이벤트를 획득하기 위해 콜백 기능을 등록한다. 그 신택스는 또한 Function()이다. 도 171은 onpapernearend 이벤트의 사용의 예를 도시한다.
onpaperend 이벤트는 용지 종단 이벤트를 획득하기 위해 콜백 기능을 등록한다. 그 신택스는 또한 Function()이다. 도 172는 onpaperend 이벤트의 사용의 예를 도시한다.
ondrawerclosed 이벤트는 드로어 폐쇄 이벤트를 획득하기 위해 콜백 기능을 등록한다. 그 신택스는 또한 Function()이다. 도 173a는 ondrawerclosed 이벤트의 사용의 예를 도시한다.
ondraweropen 이벤트는 드로어 개방 이벤트를 획득하기 위해 콜백 기능을 등록한다. 그 신택스는 또한 Function()이다. 도 173b는 ondraweropen 이벤트의 사용의 예를 도시한다.
바람직하게, 본 발명은 ePOS-Print 에디터를 더 포함한다. 후술하는 설명은 본 발명에 따라 ePOS-Print 에디터를 어떻게 사용할지를 설명한다. 이 툴은 ePOS-Print API 및 샘플 코드를 마음대로 생성하게 한다. 후술하는 ePOS-Print 에디터는 본 발명에 따라 웹 애플리케이션을 개발하는데 사용될 수 있다.
바람직하게는, 본 발명의 ePOS-Print 에디터는 웹 브라우저 환경 내에서 동작한다. 웹 브라우저는 모든 이용가능한 프린트 API 방법/객체를 이용하기 위해 HTML5-Canvas를 지원하는 것이 바람직하다. 따라서 웹 브라우저는 다음과 같은(또는 유사한) 웹 브라우저, 즉, Windows Internet Explorer 9 또는 이후의 버전, Mozilla Firefox 13 또는 이후의 버전, Google Chrome 19 또는 이후의 버전, Apple Safari 5.1.7 또는 이후의 버전, 및 iOS 5.1에서의 iPad Safari 또는 이후의 버전 중에서 선택되는 것이 바람직하다.
필요하다면, ePOS Print 에디터는 (전술한 바와 같은) 서버 또는 지능 모듈, 또는 TM 지능 프린터로 유지된다(즉, 저장되고 그로부터 액세스됨). 예를 들어, IP 네트워크상에서의 본 ePOS Print 에디터의 메인 페이지(즉, "index html", 또는 홈 페이지)를 액세스하기 위해, 웹 브라우저에 http://[(웹 브라우저 IP 어드레스), 또는 (지능 모듈 IP 어드레스), 또는 (TM 지능 프린터 IP 어드레스)]/editor/index.html와 같은 에디터의 네트워크 어드레스를 입력할 수 있다. 따라서, 지능 모듈 또는 TM 지능 프린터에 대해 액세스하는 경우, 상술한 바와 같이, 내장된 프린트 API를 갖는 웹 페이지 애플리케이션을 생성하기 위해 텍스트 편집(보다 구체적으로, ePOS Print 편집)을 제공하도록 기능할 수 있다.
ePOS Print 에디터를 이용하여, 원하는 기능을 선택하기 위해 그래픽 사용자 인터페이스, 즉, GUI를 이용함으로써 커스텀화된 ePOS-Print API 또는 커스텀화된 ePOS-Print-Canvas에 대해 원하는 기능을 기술하고, 에디터로 하여금 필요한 스크립트 코드를 자동으로 생성하게 할 수 있다. 에디터는 프린트 아웃이 어떻게 보일지에 대한 스텐실(stencil) 또는 레이아웃을 그래픽 형태로 "드로잉"하거나 또는 도시하기 위해 GUI를 이용함으로써 또한 사용될 수 있고, 또한 에디터는 원하는 결과의 표시 및 기능을 달성하기 위해 필요한 스크립트 코드를 생성할 수 있다.
도 174는 본 발명에 따른 ePOS-Print 에디터에 대한 샘플 메인 페이지(즉, index.htm 또는 홈 페이지)를 도시한다. 바람직하게는, ePOS-Print 에디터는 웹 브라우저(161)의 어드레스 필드(163)에서 ePOS Print 에디터(195)의 IP 어드레스를 입력함으로써 웹 브라우저(161)를 통해 액세스된다. ePOS Print 에디터의 메인 페이지는 기능 타입에 의해 에디터의 능력을 분류하는 다수의 탭(165a 내지 165f)을 포함한다. 예를 들어, 탭(165a)은 Main Edit 영역 또는 윈도우(167)를 불러오는 "Edit" 기능을 선택한다. 탭(165b)은 현재 실행하고 있는 프로젝트가 어떻게 수행될지를 프리뷰하기 위한 "Preview" 기능을 제공한다. API 탭(165c)은 사용자의 필요를 달성하기 위해 구축될 수 있는 모델 API 코드를 디스플레이할 수 있다. 이와 달리, API 탭은 공통의 사용자 필요를 수용하는 다수의 사전 정의된 프린트 API의 선택을 제공한다. 또한 이와 달리, "API"(165c)는 현재의 프로젝트에 대해 스크립트 코드를 디스플레이하는 윈도우를 불러올 수 있다. 탭(165d)은 "XML"으로 레이블링되고 XML 프린트 파일을 보고 편집하는데 사용될 수 있다. 예를 들어, 프로젝트를 프리뷰하고 있는 경우, XML 탭(165d)은 현재의 프로젝트의 XML 프린트 문서를 불러올 수 있다. 또한 이와 달리, 또 다른 편집을 위해 기존의 XML 프린트 문서를 불러올 수 있다. 본 ePOS Print 에디터에 의해 생성되는 스크립트 코드를 나타내는 것 이외에, 다른 실시예에서 API 탭(165c) 또는 XML 탭(165d) 중 하나는 또한 사용자가 코드를 수동으로 편집하게 할 수 있다. 프린트 탭(165e)은 스크린상에서 볼 수 있거나 또는 접속된 프린터에 전송되는 현재의 코드의 모의 실행의 프린트 아웃을 생성함으로써 현재의 작업을 프린트하거나, 또는 현재의 작업을 테스트하기 위해 프린터 옵션을 불러온다. 설정 탭(165f)은 타겟 프린터의 모듈, 지능 모듈 또는 TM 지능 프린터의 IP 어드레스, 타겟 프린터의 디바이스 ID, 타임 아웃 설정, 및/또는 프린터의 스테이터스를 모니터링할지 여부를 선택하는 것과 같은 옵션 선택과 같은 실행을 위해 요구되는 설정을 입력하도록 한다.
Main Edit 영역(167)은 본 발명에 따른 프린트 API에 프로그램될 수 있는 상이한 편집 기능 선택(즉, 기능 아이콘 또는 소프트웨어 "버튼"을 통해 선택가능한)의 선택을 제공한다. 이들 기능은 더 세부 분류된다.
예를 들어, 제 1 서브카테고리(169)는 대부분의 프린트 문서가 사용할 수 있는 대부분의 공통 동작을 제공한다. 제 1 서브카테고리는 "Common"으로 레이블링되고, "Align", "Linespc" 및 "Rotate"와 같은 기능을 포함한다. Align 기능은 (좌측 정렬, 중심 정렬, 우측 정렬 및 커스텀화된 정렬과 같은) 텍스트 및/또는 그래픽에 대해 원하는 정렬을 특정한다. Linespc 기능은 도트로 또는 인치 및/또는 센티미터와 같은 치수의 단위로 원하는 라인 간격을 특정하게 한다. Rotate 기능은 텍스트 및/또는 그래픽에 대해 원하는 회전 배향을 특정한다. Rotate 기능은 90°, 180°또는 270°와 같은 고정된 선택으로 분할되거나, 또는 0°내지 360°의 범위 내에서 사용자 특정될 수 있다.
제 2 서브카테고리(171)는 텍스트 관련 기능을 제공하고 "Text"로 레이블링된다. 텍스트 서브카테고리는 "Lang", "Font", "Position", "Smooth", "Size", "Double", "Style" 및 "Text"와 같은 기능을 포함한다. Lang 기능은 프린트 아웃을 위한 특정의 언어를 특정하도록 기능한다. 예를 들어, 일본어, 영어, 스페인어, 독일어 등 중에서 선택할 수 있다. Font 기능은 인스톨된 폰트 옵션의 라이브러리로부터 특정의 폰트를 특정한다. Position 기능은 좌측 경계(또는 [용지의 고정 크기의 시트(sheets)에서 프린트하는 경우] 우측 경계 또는 상부 경계 또는 하부 경계)로부터 얼마나 멀리 떨어져 텍스트 프린팅이 개시하는지를 특정한다. 알려져 있는 바와 같이, 텍스트는 특정의 폰트 선택의 크기에 따라 이상한 모습(pixilated look)을 취할 수 있다. Smooth 기능은 이 들쭉날쭉한 이상한 모습을 제거하고 부드러운 에지를 텍스트에 제공한다. Size 기능은 특정의 텍스트에 대한 크기를 특정한다. Double 기능은 2배 크기로 프린트되어야 하는 텍스트를 특정하는 신속한 방식을 제공한다. Style 기능은 특정의 텍스트 스타일, 즉, 언더라인, 볼드체, 이탤릭체, 컬러 반전 등을 특정한다. Text 기능은 특정된 텍스트를 프린트하는 영역을 특정하고 및/또는 프린트될 텍스트를 특정한다.
제 3 서브카테고리(173)는 용지 공급 관련 기능을 제공하고 "Paper Feed"로 레이블링된다. Paper-Feed 서브카테고리는 "By Unit", "By Line", 및 "LF"와 같은 기능을 포함한다. "By Unit" 기능은 도트, 인치, 및/또는 센티미터와 같은 치수 단위에 의해 용지 공급의 양을 특정한다. "By Line" 기능은 라인의 수(즉, 라인 당 증분)fh 용지 공급의 양을 특정한다. "LF" 기능은 새로운 라인(즉, 캐리지 리턴 기능 타이핑과 유사한 방식으로 한 라인만큼 증분)을 제공한다.
제 4 서브카테고리(175)는 이미지 관련 기능을 제공하고 "Image"로 레이블링된다. Image 서브카테고리는 "Image" 및 "NV Logo"와 같은 기능을 포함한다. "Image" 기능은 사용자가 제공한 이미지를 삽입하거나 사용자가 드로잉 소프트웨어 툴을 이용하여 라인, 원, 직사각형 등과 같은 기본 형상을 포함하는 새로운 이미지를 생성하기(즉, 정의하기) 위한 기능을 또한 제공할 수 있다. "NV Logo" 기능은 프린터에 이미 저장된 어드레스가능한 이미지에 의존하고, 어드레스, 또는 로컬 ID에 의해 이들 이미지 중 선택된 하나를 콜업(call up)한다. 즉, NV Logo 이미지의 어드레스는 프린터 내의 (바람직하게는) 비휘발성 메모리의 로컬(즉, 내부) 메모리 공간 내의 특정의 저장된 이미지를 식별하는 ID 코드일 수 있다. 통상적으로, NV Logo 이미지는 컴퍼니 로고의 이미지이지만, 이들은 로고만으로 제한되지 않는다.
제 5 서브카테고리(177)는 바코드 관련 기능을 제공하고 "Bar Code"로 레이블링된다. "Bar Code" 서브카테고리는 "Barcode" 및 "Symbol"와 같은 기능을 포함한다. "Barcode" 기능은 (사용자가 특정한 타입의) 선형 바코드를 인코딩한다. 즉, 사용자는 인코딩될 정보를 제공하고, 제공된 정보를 인코딩하는 선형 바코드를 생성하기 위해 "Barcode" 기능을 선택할 수 있다. Barcode 기능은 정의된 선형 바코드의 크기 및 위치와 같은 옵션을 더 포함할 수 있다. "Symbol" 기능은 QR 코드와 같은 특정의 타입의 매트릭스(즉, 2차원) 바코드를 인코딩한다. 또한, 사용자는 인코딩될 정보(텍스트 및/또는 그래픽)를 제공하고, 제공된 정보를 인코딩하는 매트릭스 바코드를 생성하기 위해 "Symbol" 기능을 선택할 수 있다. "Symbol" 기능은 정의된 매트릭스 바코드의 크기 및 위치와 같은 옵션을 더 포함할 수 있다.
제 6 서브카테고리(179)는 페이지 모드 관련 기능을 제공하고 "Page Mode"로 레이블링된다. "Page Mode" 서브카테고리는 "Start", "Area", "Direction", "Position", 및 "End"와 같은 기능을 포함한다. "Start" 기능은 페이지 모드 영역의 개시 위치를 특정할 수 있고, "End" 기능은 페이지 모드 영역의 종단 위치를 특정할 수 있다. "Position" 기능은 페이지 모드 프린팅 영역이 위치해야 하는 프린팅 영역 내의 위치를 특정할 수 있다. "Area" 기능은 페이지 모드 영역에 대해 특정의 영역(즉, 2차원 영역)을 특정할 수 있다. 마지막으로, "Direction" 기능은 페이지 모드 영역의 도시된 콘텐츠에 대한 배향을 특정할 수 있다. 예를 들어, 페이지 모드가 수평으로 배치된 텍스트를 포함하는 경우, "Direction" 기능은 수직 방향을 따라 동일한 텍스트를 프린트하는데 사용될 수 있다.
제 7 서브카테고리(181)는 제 1 내지 제 6 서브카테고리에 포함되지 않는 모든 나머지 기능을 함께 그룹화할 수 있고 "Other"로 레이블링된다. 현재의 예에서, "Other" 서브카테고리는 "Cut", "Drawer", "Buzzer", 및 "Cmd"와 같은 기능을 포함한다. "Cmd" 기능은 프린터에 전송될 커맨드를 특정한다. 프린터가 용지 절단기, 드로어 및 버저를 갖는 POS 프린터라고 가정하면, "Cut" 커맨드는 프린터가 프린트하는 프린트 매체(즉, 용지)를 절단하기 위한 커맨드를 송출하고, 드로어 옵션은 (작동될 특정의 드로어 래치 커넥터를 개별적으로 식별할 수 있는) 프린터의 드로어를 킥 오픈하기 위한 커맨드를 삽입하고, 버저는 특정된 지속 기간 동안 특정의 버저 패턴 및 특정된 수의 반복된 버징 동작으로 프린터가 그 버저를 작동하기 위한 커맨드를 정의한다.
도 175는 본 발명에 따른 ePOS Print 에디터(195)의 "Setting" 탭(165f)의 선택으로부터 초래되는 Setting 스크린을 도시한다. Setting 스크린은 타겟 프린터의 모델을 입력하거나 선택하기 위한 프린터 모델 필드(183)를 제공한다. 또한 지능 모듈 또는 TM 지능 프린터의 IP 어드레스를 입력하도록 IP-Address 필드(185)가 제공된다. Device-ID 필드(187)는 타겟 프린터에 할당된 ID 명칭일 수 있는 타겟 프린터의 디바이스 ID를 수신한다. Print-Timeout 필드(189)에서 시도되는 프린트 동작에 대해 (밀리초의) 타임 아웃을 설정할 수 있다. 프린터의 스테이터스를 모니터링할지 여부를 선택하기 위해 선택 버튼(191)이 또한 제공된다. 도 176은 Setting 스크린에 의해 제공되는 옵션의 몇몇을 요약하는 테이블을 도시한다.
도 177은 본 발명에 따른 ePOS Print 에디터의 Edit 스크린의 다른 뷰로서, 보다 작은 뷰를 도시한다. 본 Edit 스크린은 도 177이 추가적으로 Edit 영역(193)을 도시하는 것을 제외하고 도 174의 Edit 스크린과 유사하다. Main Menu 영역(167)은 상술한 바와 같이, 이용가능한 기능을 디스플레이한다. Edit 영역(193)의 하부에 아이콘을 추가하기 위해 "아이콘을 클릭(즉, Main Menu 영역(167)으로부터 소프트웨어 버튼을 선택)"할 수 있다. Edit 영역(193)내의 어느 곳에나 아이콘을 삽입하기 위해 아이콘을 또한 드래그(또는 이동)할 수 있다. Edit 영역(193) 내의 아이콘의 위치는 최종 스크립트 코드 파일 내의 관련 코드의 위치(즉, 순서)를 특정한다. 기능 아이콘(또는 요소)을 위치시킨 후에, 필요에 따라, 이를 구성한다. 예를 들어, NV 로고가 Edit 영역(167)에 부가되면, 선택될 이미지를 식별하는 키 코드를 입력함으로써 구성된다. Edit 영역(193) 내의 동일한 기능 아이콘의 다수의 예를 가질 수 있음이 이해될 것이다. 따라서, Edit 영역(193)은 메뉴 영역에서 선택되는 기능(즉, 요소)을 디스플레이한다. 임의의 시점에서, 이들 요소는 그 실행 순서를 변경하기 위해 Edit 영역(193) 내에서 드래그 업 또는 다운될 수 있다. 각각의 요소는 그 우측 측면에서 "X" 버튼이 주어지고, 그 "X" 버튼을 이용하여 임의의 요소가 삭제될 수 있다. 임포트(import) 옵션(197)으로 ePOS-Print Editor는 과거에 저장된 XML 데이터를 임포트할 수 있다. Clear 옵션(199)은 Edit 영역(193) 내의 편집된 세부 사항을 삭제한다.
Selecting Preview 탭(165b)은 도 174에 도시된 바와 같이, 프리뷰 이미지를 제공한다. 도 178은 본 발명에 따른 ePOS Print 에디터의 샘플 프리뷰 이미지를 도시한다. 이것은 프린트된 문서의 프리뷰(101)를 제공한다.
프린터가 접속되면, Print 탭(165e)을 선택함으로써 실제의 프린팅은 코드를 테스트할 수 있다. 도 179는 Print 탭이 선택된 본 ePOS-Print 에디터의 샘플 뷰를 도시한다. Print 탭(165e)은 프리뷰 이미지의 XML 프린트 문서를 보기 위해 사용되거나, 또는 XML 프린트 문서를 임포트하는데 사용될 수 있다. 예를 들어, Print 탭(165e)을 이용하여 기존의 XML 프린트 문서를 오픈하고, 복사에 의해 XML 프린트 문서의 콘텐츠를 저장할 수 있다. ePOS-Print XML 문서는 (ePOS Print XML) 전송될 Data 섹션에 디스플레이된다. Send 옵션을 선택하여 데이터를 프린터에 전송하고 프린팅을 수행한다. 정보 섹션은 프린트 스테이터스를 디스플레이한다. Clear 옵션을 선택하여 정보 박스에서 콘텐츠를 삭제한다.
도 180은 본 발명에 따른 임포트 스트린을 도시한다. 임포트될 ePOS-Print XML 프린트 문서는 "Data to be import (ePOS-Print XML)" 섹션으로 전달되고 체크된다. "Apply" 옵션을 선택하여 ePOS-Print XML 프린트 문서를 임포트한다. 정보 섹션은 임의의 임포트된/필요로 하는 정보를 디스플레이한다. "Close" 옵션은 임포트 스크린을 닫는다.
본 발명의 바람직한 실시예에서, 도 174에 도시된 바와 같이, API 탭(165c)을 선택하면 ePOS-Print 샘플 코드가 제공된다. 도 181은 선택된 API 탭을 갖는 본 ePOS Print 에디터의 샘플 뷰를 도시한다. 사용자는 그 자신의 코드 파일 또는 Edit Area으로 샘플 코드를 복사함으로써 샘플 코드를 이용할 수 있다.
본 발명은 몇몇 특정의 실시예와 관련하여 기술되었으나, 당 분야에서 통상의 지식을 가진 자라면 전술한 설명의 관점에서 다수의 추가적인 대체예, 수정예 및 변형예가 명백할 것이다. 따라서, 본 명세서에서 기술된 본 발명은 첨부되는 청구범위의 사상 및 범위 내에 해당하는 바와 같이 모든 이러한 대체예, 수정예, 응용예 및 변형예를 포함하는 것으로 의도된다.

Claims (19)

  1. 웹 브라우저에 의해 실행되는 웹 애플리케이션에서 문서를 생성하고, 프린터에 상기 문서를 전송하고, 네트워크를 통해 상기 프린터의 스테이터스(status)를 획득하는 방법으로서, 상기 방법은,
    상기 프린터에 접속하도록 구성되고, 네트워크 어드레스를 설정하고, 상기 네트워크를 통해 상기 문서를 수신하고, 상기 문서를 상기 프린터에 전송하도록 구성되는 지능 모듈(intelligent module)을 제공하는 단계와,
    (i) 상기 지능 모듈의 상기 네트워크 어드레스를 지정하도록 구성된 어드레스 속성 요소(address property-element)와, (ii) 상기 프린터의 하나 이상의 스테이터스를 체크하도록 구성된 스테이터스 이벤트 요소(status event-element)와, (iii) 상기 스테이터스 이벤트 요소의 동작을 인에이블(enable)하도록 구성된 개시 방법 요소(open method-element)를 포함하는 애플리케이션 프로그램 인터페이스(application program interface)(즉, API)를 상기 웹 애플리케이션에 내장하는 단계와,
    상기 지능 모듈의 상기 네트워크 어드레스를 상기 어드레스 속성 요소에 설정하는 단계와,
    상기 개시 방법 요소를 이용하여 상기 스테이터스 이벤트 요소의 동작을 인에이블하여 상기 프린터의 특정된 스테이터스를 수신하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 API는 상기 스테이터스 이벤트 요소의 동작을 디스에이블(disable)하도록 구성된 종료 방법 요소(close method-element)를 더 포함하며, 웹 애플리케이션에서 문서를 생성하는 상기 방법은 상기 종료 방법 요소를 이용하여 상기 스테이터스 이벤트 요소를 디스에이블하는 단계를 더 포함하는
    방법.
  3. 제 1 항에 있어서,
    상기 API는 상기 프린터의 상기 스테이터스의 업그레이딩(upgrading) 사이의 시간 간격을 특정하는 간격 속성 요소(interval property-element)를 포함하며, 웹 애플리케이션에서 문서를 생성하는 상기 방법은 상기 시간 간격을 상기 간격 속성 요소에 설정하는 단계를 더 포함하는
    방법.
  4. 제 1 항에 있어서,
    상기 API는 상기 프린터로부터 최후에 획득된 스테이터스를 특정하는 스테이터스 속성 요소를 포함하는
    방법.
  5. 제 1 항에 있어서,
    상기 프린터의 디바이스 식별자를 설정하는 단계를 더 포함하며, 상기 어드레스 속성 요소는 상기 체크된 스테이터스가 수신되는 상기 프린터의 상기 디바이스 식별자를 지정하도록 더 구성되는
    방법.
  6. 제 1 항에 있어서,
    상기 웹 애플리케이션은 상기 지능 모듈에서 유지되고, 상기 웹 브라우저는 상기 지능 모듈로부터 상기 웹 애플리케이션을 액세스하는
    방법.
  7. 제 1 항에 있어서,
    상기 웹 애플리케이션은 웹 서버에서 유지되고, 상기 웹 브라우저는 상기 웹 서버로부터 상기 웹 애플리케이션을 액세스하는
    방법.
  8. 제 1 항에 있어서,
    상기 하나 이상의 스테이터스는 상기 프린터가 온라인인지 또는 오프라인인지를 표시하는 스테이터스를 포함하는
    방법.
  9. 제 1 항에 있어서,
    상기 프린터는 커버를 갖고, 상기 하나 이상의 스테이터스는 상기 커버가 개방인지 또는 폐쇄인지를 표시하는 스테이터스를 포함하는
    방법.
  10. 제 1 항에 있어서,
    상기 API는,
    상기 프린터를 제어하는 커맨드를 커맨드 버퍼에 부가하도록 구성되고, 상기 커맨드 버퍼 내의 커맨드에 따라 상기 문서를 생성하는 제 1 방법 요소와,
    상기 네트워크를 통해 상기 생성된 문서를 상기 지능 모듈에 전송하도록 구성되는 제 2 방법 요소를 더 포함하며,
    웹 애플리케이션에서 문서를 생성하는 상기 방법은,
    상기 웹 애플리케이션에 내장된 상기 제 1 방법 요소를 사용하여 상기 문서를 생성하는 단계와,
    상기 웹 애플리케이션에 내장된 상기 제 2 방법 요소를 사용하여, 상기 어드레스 속성 요소에 의해 지정된 상기 네트워크 어드레스를 갖는 상기 지능 모듈에 상기 문서를 전송하는 단계와,
    상기 지능 모듈이 상기 수신한 문서를 상기 프린터에 전송하는 단계를 포함하는
    방법.
  11. 제 10 항에 있어서,
    상기 프린터가 그 수신된 문서를 상기 프린터 내의 용지 매체상에 인쇄하는 단계를 더 포함하는
    방법.
  12. 제 11 항에 있어서,
    상기 스테이터스 이벤트 요소에 의해 체크된 상기 프린터의 상기 하나 이상의 스테이터스는 상기 용지 매체의 공급이 종료되었는지를 표시하는 스테이터스를 포함하는
    방법.
  13. 제 10 항에 있어서,
    상기 프린터는 드로어(drawer)를 갖고,
    상기 커맨드 버퍼에 부가된 상기 프린터를 제어하는 상기 커맨드 중 하나는 그 드로어를 킥 오픈(kick open)하도록 상기 프린터에 지시하는 드로어 킥(drawer-kick) 커맨드인
    방법.
  14. 제 13 항에 있어서,
    상기 프린터의 상기 하나 이상의 스테이터스는 상기 드로어가 개방인지 또는 폐쇄인지를 표시하는 스테이터스를 포함하는
    방법.
  15. 웹 브라우저에 의해 실행되는 웹 애플리케이션에서 문서를 생성하고, 프린터에 상기 문서를 전송하고, 네트워크를 통해 상기 프린터의 스테이터스를 획득하는 시스템으로서, 상기 시스템은,
    상기 프린터에 접속하도록 구성되고, 네트워크 어드레스를 설정하도록 구성된 지능 모듈과,
    상기 네트워크를 통해 상기 지능 모듈에 접속된 웹 서버와,
    상기 웹 애플리케이션에 내장된 애플리케이션 프로그램 인터페이스(API)를 포함하며,
    상기 웹 애플리케이션은 상기 웹 서버에서 유지되고,
    상기 API는, (i) 상기 지능 모듈의 상기 네트워크 어드레스를 지정하도록 구성된 어드레스 속성 요소와, (ii) 상기 프린터의 하나 이상의 스테이터스를 체크하도록 구성된 스테이터스 이벤트 요소와, (iii) 상기 스테이터스 이벤트 요소의 동작을 인에이블하도록 구성된 개시 방법 요소를 포함하며,
    상기 개시 방법 요소가 상기 스테이터스 이벤트 요소의 동작을 인에이블한 후에 상기 스테이터스 이벤트 요소에 의해 지정된 상기 프린터의 상기 스테이터스가, 상기 어드레스 속성 요소에 의해 지정된 상기 지능 모듈로부터 상기 웹 브라우저에 전송되는
    시스템.
  16. 제 15 항에 있어서,
    상기 프린터는 커버를 갖고,
    상기 프린터의 상기 하나 이상의 스테이터스는 상기 커버가 개방인지 또는 폐쇄인지를 표시하는 스테이터스를 포함하는
    시스템.
  17. 제 15 항에 있어서,
    상기 API는,
    (i) 상기 프린터를 제어하는 커맨드를 커맨드 버퍼에 부가하도록 구성되고, 상기 커맨드 버퍼 내의 커맨드에 따라 상기 문서를 생성하는 제 1 방법 요소와,
    (ii) 상기 네트워크를 통해 상기 문서를 상기 지능 모듈에 전송하도록 구성되는 제 2 방법 요소를 더 포함하며,
    상기 문서는 상기 제 1 방법 요소에 의해 생성되고, 상기 제 2 방법 요소에 의해, 상기 어드레스 속성 요소에 의해 지정된 상기 네트워크 어드레스를 갖는 상기 지능 모듈에 전송되는
    시스템.
  18. 제 17 항에 있어서,
    상기 프린터에 드로어가 접속되고, 커맨드 버퍼 내에 부가된 상기 프린터를 제어하는 상기 커맨드 중 하나는 그 드로어를 킥 오픈하도록 상기 프린터에 지시하는 드로어 킥 커맨드인
    시스템.
  19. 제 18 항에 있어서,
    상기 프린터의 상기 하나 이상의 스테이터스는 상기 드로어가 개방인지 또는 폐쇄인지를 표시하는 스테이터스를 포함하는
    시스템.
KR1020157006540A 2012-08-14 2013-08-08 Epos 프린팅 KR101600248B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261683009P 2012-08-14 2012-08-14
US61/683,009 2012-08-14
PCT/JP2013/071943 WO2014027678A1 (en) 2012-08-14 2013-08-08 Epos printing

Publications (2)

Publication Number Publication Date
KR20150043466A KR20150043466A (ko) 2015-04-22
KR101600248B1 true KR101600248B1 (ko) 2016-03-04

Family

ID=49213039

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157006540A KR101600248B1 (ko) 2012-08-14 2013-08-08 Epos 프린팅

Country Status (7)

Country Link
US (6) US9098226B2 (ko)
EP (1) EP2740024A1 (ko)
JP (2) JP6156394B2 (ko)
KR (1) KR101600248B1 (ko)
CN (1) CN104508622B (ko)
IN (1) IN2014DN03284A (ko)
WO (1) WO2014027678A1 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930896B1 (en) * 2010-07-23 2015-01-06 Amazon Technologies, Inc. Data anonymity and separation for user computation
US10846244B1 (en) * 2012-05-10 2020-11-24 Majid Amani System for providing an alternative control interface to specialty devices
US10354101B1 (en) * 2012-05-10 2019-07-16 Majid Amani System for providing an alternative control interface to specialty devices
JP6253234B2 (ja) * 2013-01-21 2017-12-27 スター精密株式会社 データ送信システムおよびデータ送信用プログラム
JP6325796B2 (ja) * 2013-11-06 2018-05-16 キヤノン株式会社 情報処理端末およびその制御方法、並びにプログラム
JP6378645B2 (ja) * 2014-06-13 2018-08-22 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
JP6360370B2 (ja) * 2014-06-30 2018-07-18 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム
JP6525517B2 (ja) * 2014-06-30 2019-06-05 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
JP6488569B2 (ja) * 2014-06-30 2019-03-27 ブラザー工業株式会社 サーバ、および、コンピュータプログラム
US9876819B2 (en) * 2014-08-14 2018-01-23 Banff Cyber Technologies Pte Ltd Method and system for restoring websites
US9542676B2 (en) * 2014-11-13 2017-01-10 Seiko Epson Corporation Host device, printing system, and data processing method
US20160182604A1 (en) * 2014-12-19 2016-06-23 Zih Corp. Method for enabling communication between a user device browser and a local device
JP6424661B2 (ja) * 2015-02-12 2018-11-21 セイコーエプソン株式会社 制御装置、制御システム、及び、制御装置の制御方法
JP2016177436A (ja) * 2015-03-19 2016-10-06 株式会社リコー 情報処理装置、プログラム、情報処理システムおよび印刷システム
JP6468102B2 (ja) * 2015-07-14 2019-02-13 株式会社リコー 情報処理装置、印刷システム、情報処理方法、印刷方法及びプログラム
CN105022596A (zh) * 2015-07-16 2015-11-04 安徽水利水电职业技术学院 一种离线一体式的智能照片打印装置及其照片打印方法
WO2017129254A1 (en) * 2016-01-29 2017-08-03 Hewlett-Packard Development Company, L P Error diffusion
CN105912284A (zh) * 2016-05-09 2016-08-31 上海携程商务有限公司 打印机的监控方法及系统
US20180032483A1 (en) * 2016-07-29 2018-02-01 Seiko Epson Corporation Information processing device, control method of an information processing device, and storage medium
CN106598510B (zh) * 2016-11-18 2019-09-20 福建星网视易信息系统有限公司 兼容两种打印方式的方法及装置
JP6911403B2 (ja) * 2017-03-10 2021-07-28 日本電気株式会社 情報処理装置
US10769560B1 (en) 2017-05-10 2020-09-08 Massachusetts Mutual Life Insurance Company Systems and methods for chatbot applications tracking user stress levels
JP6759152B2 (ja) * 2017-05-24 2020-09-23 キヤノン株式会社 画像処理装置、方法、プログラム及びシステム
CN109388354B (zh) * 2017-08-02 2021-11-12 精工爱普生株式会社 服务器系统、终端装置及它们的工作方法、存储介质
JP7039305B2 (ja) 2018-01-30 2022-03-22 キヤノン株式会社 システムおよびそれを用いる方法、情報処理装置およびそれを用いる方法、およびプログラム
JP2019164445A (ja) * 2018-03-19 2019-09-26 株式会社リコー 情報処理装置、情報処理方法、プログラム、及び画像形成システム
JP7234687B2 (ja) 2019-02-27 2023-03-08 ブラザー工業株式会社 モジュール及びプログラム
JP7263837B2 (ja) 2019-02-27 2023-04-25 ブラザー工業株式会社 プログラム、アプリケーション、情報処理装置
JP7234688B2 (ja) * 2019-02-27 2023-03-08 ブラザー工業株式会社 プログラム、アプリケーション、情報処理装置
JP7298241B2 (ja) * 2019-03-28 2023-06-27 ブラザー工業株式会社 サポートプログラム、情報処理装置、および印刷方法
CN110210455B (zh) * 2019-06-18 2022-03-01 石家庄捷弘科技有限公司 一种打印内容格式化提取方法
JP7446815B2 (ja) * 2019-12-27 2024-03-11 キヤノン株式会社 プログラム及び制御方法
US11327698B2 (en) * 2020-06-25 2022-05-10 Zebra Technologies Corporation Method, system and apparatus for cloud-based printing
JP7295829B2 (ja) 2020-06-27 2023-06-21 淳史 岩崎 無人航空機用回転球体フレームの振動防止かつ衝撃緩衝装置その2
US20220383285A1 (en) * 2021-05-28 2022-12-01 Walmart Apollo, Llc Systems and methods of managing hardware systems in a retail point-of-sale management network
US20220383284A1 (en) * 2021-05-28 2022-12-01 Walmart Apollo, Llc Systems and methods of implementing a distributed retail point-of-sale hardware management network
KR20230032442A (ko) * 2021-08-31 2023-03-07 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 범용 프린터 드라이버를 위한 자동 프린터 선택
US20230185954A1 (en) * 2021-12-15 2023-06-15 Bank Of America Corporation Transmission of Sensitive Data in a Communication Network
CN114780044A (zh) * 2022-04-26 2022-07-22 北京太格时代自动化系统设备有限公司 一种高速铁路牵引变电所工作票打印方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110299110A1 (en) 2010-03-16 2011-12-08 Google Inc. Cloud-based print service
US20120050795A1 (en) 2010-08-27 2012-03-01 Canon Kabushiki Kaisha Print job management system and control method thereof, information processing apparatus, and print server

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6654378B1 (en) * 1992-03-18 2003-11-25 Broadcom Corp. Transaction control system including portable data terminal and mobile customer service station
WO1997043720A1 (en) * 1996-05-14 1997-11-20 Ricoh Company, Ltd. Java printer
JP4086360B2 (ja) * 1997-04-24 2008-05-14 キヤノン株式会社 印刷制御システム
US6222634B1 (en) * 1997-07-11 2001-04-24 International Business Machines Corporation Apparatus and method for printing related web pages
US6327045B1 (en) * 1997-09-18 2001-12-04 Microsoft Corporation Computer network
EP2284688B1 (en) * 1999-03-18 2015-02-25 Seiko Epson Corporation Information processing apparatus for controlling a printer, control method and storage medium carrying computer program
US6880126B1 (en) * 1999-08-03 2005-04-12 International Business Machines Corporation Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data
JP4543458B2 (ja) * 1999-10-29 2010-09-15 セイコーエプソン株式会社 出力システム、出力装置、ホスト装置、これらの制御方法、および、情報記録媒体
US7685514B1 (en) * 2000-05-25 2010-03-23 International Business Machines Corporation Method and system for incorporation of graphical print techniques in a web browser
US20020083438A1 (en) * 2000-10-26 2002-06-27 So Nicol Chung Pang System for securely delivering encrypted content on demand with access contrl
US7424509B2 (en) * 2001-06-04 2008-09-09 Hewlett-Packard Development Company, L.P. System and method for printing from a web application
US6829060B2 (en) * 2001-10-30 2004-12-07 Hewlett-Packard Development Company, L.P. Web-based imaging service providing manual duplexing
US7600685B2 (en) * 2001-12-17 2009-10-13 Zih Corp. XML printer system with RFID capability
US7307745B2 (en) * 2002-01-21 2007-12-11 Canon Kabushiki Kaisha Web-based print server and client
US20040012816A1 (en) * 2002-03-08 2004-01-22 Masahiro Minowa Printing system, printer, printer driver, POS system, colorization setup device, printing control method, colorization setup method, program, and storage medium for storing the program
US20030225894A1 (en) 2002-03-25 2003-12-04 Tatsuo Ito Image forming apparatus including web service functions
JP4130108B2 (ja) 2002-03-25 2008-08-06 株式会社リコー Webサービス機能を有する画像形成装置
US20040028045A1 (en) * 2002-08-09 2004-02-12 Jonathan Cheng Data transmission method for portable communication apparatus
US20040080546A1 (en) * 2002-10-25 2004-04-29 Fritz Terry M. Print menu macros for printing devices
JP2004151953A (ja) * 2002-10-30 2004-05-27 Oki Data Corp 動作状態通知方法および画像形成システム及びデータ処理装置
US20040130744A1 (en) * 2003-01-03 2004-07-08 Vincent Wu Online print with driverless web print server
US7580143B2 (en) * 2003-03-19 2009-08-25 Ricoh Company, Ltd. Image forming apparatus, image forming method, and information processing apparatus for conducting print instruction thereto
JP4281414B2 (ja) * 2003-05-22 2009-06-17 セイコーエプソン株式会社 バーコードまたは二次元コードの印刷システム、バーコードまたは二次元コードのフォント設定方法、およびバーコードまたは二次元コードのフォント設定プログラム
JP4827388B2 (ja) 2003-07-31 2011-11-30 キヤノン株式会社 通信システム、情報処理装置、印刷制御方法、及びプログラム
US20050138117A1 (en) * 2003-12-18 2005-06-23 Samsung Electronics Co., Ltd. Method and system for pushing notifications to networked device
US20060178943A1 (en) * 2005-01-07 2006-08-10 Rollinson Joseph R Food order fulfillment system deploying a universal in-store point-of-sale (POS) for preparation and pickup scheduling
US7884958B2 (en) * 2005-04-15 2011-02-08 Seiko Epson Corporation Printer system, printer, and image registration method
KR100535442B1 (ko) * 2005-04-18 2005-12-09 주식회사 빅솔론 프린팅 장치, 상기 프린팅 장치의 제어 방법 및 상기프린팅 장치를 이용한 데이터 처리 장치
US8209688B2 (en) * 2005-10-31 2012-06-26 Xerox Corporation Enterprise Java Bean (EJB) based enterprise printing architecture
WO2007075719A2 (en) * 2005-12-16 2007-07-05 Pisafe, Inc. Method and system for creating and using barcodes
JP4066383B2 (ja) * 2006-07-06 2008-03-26 シチズンホールディングス株式会社 通信装置および通信制御方法、並びに当該通信装置を備えたプリンタ
US8775930B2 (en) * 2006-07-07 2014-07-08 International Business Machines Corporation Generic frequency weighted visualization component
US8040356B2 (en) * 2007-03-30 2011-10-18 Microsoft Corporation Color management user interface
US8270013B2 (en) * 2007-09-27 2012-09-18 Ricoh Company, Limited Printing system, printing method, and computer program product
US20090106456A1 (en) * 2007-10-19 2009-04-23 Urs Muller Method and apparatus for interactions of web applications with the local host environment
JP5228547B2 (ja) * 2008-03-13 2013-07-03 セイコーエプソン株式会社 プリンタの制御方法およびプリンタシステムの制御方法、並びにプリンタ
US20100225955A1 (en) * 2009-03-03 2010-09-09 Almen Kevin D Print Button Widget
US20100299588A1 (en) * 2009-05-21 2010-11-25 Michael Joseph Dattilo Method and system for providing interaction between a host system and web pages
US20100309508A1 (en) * 2009-06-03 2010-12-09 Kamath Harish B Network print-related service
NZ596755A (en) * 2009-06-08 2014-03-28 Sato Chishiki Zaisan Kenkyusyo System and method for injecting run-time programming code in a printing device
US8289551B2 (en) * 2009-08-03 2012-10-16 Ricoh Company, Ltd. Approach for processing print data without a client print driver
JP5783672B2 (ja) * 2009-08-04 2015-09-24 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US8547575B2 (en) * 2010-03-09 2013-10-01 Ricoh Company, Ltd Printer discovery within a web page
US8953181B2 (en) * 2010-04-20 2015-02-10 Ricoh Company, Ltd. Virtual print job preview and validation
JP5761923B2 (ja) * 2010-04-28 2015-08-12 キヤノン株式会社 印刷システム、情報処理装置及びその方法
JP2012048457A (ja) * 2010-08-26 2012-03-08 Canon Inc 印刷サーバ装置、印刷装置、情報処理方法及びプログラム
JP5609544B2 (ja) 2010-10-29 2014-10-22 セイコーエプソン株式会社 画像入力システム、コンテンツサーバー、仲介サーバー、および、画像入力方法
JP5713641B2 (ja) * 2010-11-16 2015-05-07 キヤノン株式会社 印刷中継システム、および印刷中継システムの制御方法、およびプログラム
US8817281B2 (en) * 2011-01-31 2014-08-26 Canon Kabushiki Kaisha Print setting server, document processing server, print system, and print setting method
CN102693100B (zh) 2011-02-10 2015-06-24 精工爱普生株式会社 网络系统、接口板、网络系统的打印控制方法
JP5709632B2 (ja) * 2011-04-27 2015-04-30 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
US8570572B2 (en) * 2011-05-26 2013-10-29 Xerox Corporation Method and apparatus for printing web-based content via cloud print service
JP5800579B2 (ja) * 2011-05-31 2015-10-28 キヤノン株式会社 情報処理装置、印刷制御方法及びコンピュータプログラム
JP5743723B2 (ja) * 2011-06-03 2015-07-01 キヤノン株式会社 印刷システム、サービス処理方法、及びプログラム
JP5885410B2 (ja) * 2011-06-29 2016-03-15 キヤノン株式会社 プルプリントシステム、プリントサーバおよびその制御方法、並びにプログラム
JP5843605B2 (ja) * 2011-06-29 2016-01-13 キヤノン株式会社 印刷制御装置、印刷制御方法、情報処理システム、情報処理装置、情報処理方法およびコンピュータプログラム
JP5751961B2 (ja) * 2011-07-11 2015-07-22 キヤノン株式会社 画像表示装置によって投射された画像を印刷する印刷システムおよびプログラム
JP5149430B2 (ja) * 2011-07-28 2013-02-20 株式会社 ディー・エヌ・エー 画像処理方法、ファイル変換方法、及び、ファイル変換プログラム
US8806574B2 (en) * 2011-10-05 2014-08-12 Hewlett-Packard Development Company, L.P. System and method for policy conformance in a web application
US9041955B2 (en) * 2011-10-27 2015-05-26 Hewlett-Packard Development Company, L.P. Printing system and methods using a printer server homepage from a print server
US20130298005A1 (en) 2012-05-04 2013-11-07 Motorola Mobility, Inc. Drawing HTML Elements

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110299110A1 (en) 2010-03-16 2011-12-08 Google Inc. Cloud-based print service
US20120050795A1 (en) 2010-08-27 2012-03-01 Canon Kabushiki Kaisha Print job management system and control method thereof, information processing apparatus, and print server

Also Published As

Publication number Publication date
US10089560B2 (en) 2018-10-02
IN2014DN03284A (ko) 2015-07-10
US20160142568A1 (en) 2016-05-19
KR20150043466A (ko) 2015-04-22
US9483224B2 (en) 2016-11-01
US20140049790A1 (en) 2014-02-20
CN104508622B (zh) 2017-05-17
US9277064B2 (en) 2016-03-01
JP2017168140A (ja) 2017-09-21
US20170017865A1 (en) 2017-01-19
EP2740024A1 (en) 2014-06-11
JP6156394B2 (ja) 2017-07-12
US20140049791A1 (en) 2014-02-20
JP6384571B2 (ja) 2018-09-05
US9098226B2 (en) 2015-08-04
US20150234628A1 (en) 2015-08-20
US20150271346A1 (en) 2015-09-24
US9052863B2 (en) 2015-06-09
JP2015531087A (ja) 2015-10-29
US10032096B2 (en) 2018-07-24
CN104508622A (zh) 2015-04-08
WO2014027678A1 (en) 2014-02-20

Similar Documents

Publication Publication Date Title
KR101600248B1 (ko) Epos 프린팅
US10402809B2 (en) Point-of-sale printer interpreting a markup language from a client device to control a scanner using scanner-control commands
CN106055290B (zh) 图像处理设备和图像处理方法
WO2012049958A1 (en) Information processing apparatus, information processing method, and storage medium storing a program thereof
JP2009065655A (ja) 携帯形データ記憶媒体の存在を表示するシステムおよび方法

Legal Events

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

Payment date: 20190201

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200205

Year of fee payment: 5