JavaScript API 참조
Important
최신 인쇄 플랫폼은 Windows에서 프린터와 통신하는 데 선호되는 수단입니다. 프린터 장치 개발을 위해 Windows 10 및 11의 인쇄 환경을 사용자 지정하려면 MICROSOFT의 IPP 받은 편지함 클래스 드라이버와 PSA(인쇄 지원 앱)를 사용하는 것이 좋습니다.
자세한 내용은 인쇄 지원 앱 디자인 가이드참조하세요.
제조업체는 여기에 제공된 JavaScript API를 Bidi XML 파일과 함께 사용하여 인쇄 디바이스에 대한 USB 연결을 통해 Bidi에 대한 지원을 제공할 수 있습니다.
인쇄 장치와의 USB Bidi 통신에 대한 자세한 내용은 USB Bidi Extender를 참조 하세요.
USB를 통해 비디
getSchemas 메서드
이 메서드는 \Printer.Consumables.YellowInk:Level과 같은 Bidi GET 쿼리를 처리합니다. JavaScript 코드는 USB 버스를 사용하여 프린터에 대한 쿼리를 수행하고 돌아올 때 응답을 읽을 수 있습니다.
통사론
function getSchemas(scriptContext, printerStream, schemaRequests, printerBidiSchemaResponses);
매개 변수(getSchemas 메서드)
scriptContext [in] 관련 속성 모음에 대한 액세스를 제공하는 IPrinterScriptContext 개체입니다. printerStream
[in] USB 버스에 대한 읽기 및 쓰기 액세스를 허용하는 IPrinterScriptableSequentialStream 개체입니다. schemaRequests
[in] 요청된 모든 Bidi 쿼리 문자열을 포함하는 배열 개체입니다. printerBidiSchemaResponses
[out] 스크립트가 쿼리 키에 대한 모든 응답을 저장하는 데 사용하는 개체입니다.
반환 값(getSchemas 메서드)
반환 값 | 설명 |
---|---|
0 | 스크립트가 성공적으로 완료되었습니다. |
1 | 연결된 디바이스가 일부 요청된 정보를 제공할 준비가 되지 않았습니다. 인쇄 시스템에서 처리 중에 추가된 모든 Requery 키를 사용하여 함수를 다시 호출해야 임을 나타냅니다. |
setSchema 메서드
이 메서드는 Bidi SET 작업을 처리합니다. 스크립트는 들어오는 Bidi 스키마 값을 결정하여 디바이스에서 데이터를 설정하거나 깨끗한 잉크 헤드와 같은 디바이스에서 일부 작업을 수행할 수 있습니다.
디바이스가 지정된 데이터를 처리할 준비가 되지 않은 경우 메서드는 대기 기간 후에 호출을 다시 시도해야 함을 나타내기 위해 값 1을 반환할 수 있습니다.
매개 변수(setSchema 메서드)
scriptContext [in] 관련 속성 모음에 대한 액세스를 제공하는 IPrinterScriptContext 개체입니다. printerStream
[in] USB 버스에 대한 읽기 및 쓰기 액세스를 허용하는 IPrinterScriptableSequentialStream 개체입니다. printerBidiSchemaElement
[in] 설정할 Bidi 스키마 값과 연결된 모든 데이터를 포함하는 IPrinterBidiSchemaElement 개체입니다.
반환 값(setSchema 메서드)
반환 값 | 설명 |
---|---|
0 | 스크립트가 성공적으로 완료되었습니다. |
1 | 연결된 디바이스가 일부 요청된 정보를 제공할 준비가 되지 않았습니다. 제공된 printerBidiSchemaElement를 사용하여 인쇄 시스템에서 함수를 다시 호출해야 임을 나타냅니다. |
getStatus 메서드
이 메서드는 디바이스가 인쇄되는 동안 프린터에서 원치 않는 상태를 가져오는 데 사용됩니다. 이 함수는 인쇄하는 동안에만 호출됩니다. 디바이스는 이 스크립트가 Bidi 스키마 값으로 해석할 수 있는 데이터를 읽기 채널에 제공해야 합니다. 디바이스에 대한 쓰기 채널은 인쇄 데이터에 의해 차단되므로 여기서는 원치 않는 상태만 지원됩니다.
이 메서드는 인쇄하는 동안 반복적으로 호출됩니다. 디바이스는 사용할 수 있고 스크립트에서 이해할 수 있는 경우에만 데이터를 반환할 것으로 예상됩니다. 디바이스가 원치 않는 상태를 지원하지 않거나 이 함수를 다시 호출할 필요가 없는 경우 스크립트는 USBMon의 getStatus 실행 스레드가 성공적으로 종료되도록 지시하는 값 2를 반환해야 합니다.
매개 변수(getStatus 메서드)
scriptContext [in] 관련 속성 모음에 대한 액세스를 제공하는 IPrinterScriptContext 개체입니다. printerStream
[in] USB 버스에 대한 읽기 액세스를 허용하는 IPrinterScriptableSequentialStream 개체입니다. printerBidiSchemaResponses
[out] 스크립트가 쿼리 키에 대한 모든 응답을 저장하는 데 사용하는 개체입니다.
반환 값(getStatus 메서드)
반환 값 | 설명 |
---|---|
0 | 스크립트가 성공적으로 완료되었습니다. |
2 | 연결된 디바이스는 더 이상 원치 않는 상태를 지원하지 않으며 이 함수를 다시 호출하면 안 됩니다. |
startPrintJob 메서드
USBMon은 StartDocPort 중에 이 메서드를 호출합니다. startPrintJob을 호출하면 드라이버가 인쇄 스트림을 수정하거나 인쇄 디바이스가 작업을 인쇄하는 동안 사용되는 호스트 기반 요청/응답 프로토콜을 구현할 수 있습니다. 작업 컨텍스트 개체는 제조업체의 JavaScript 코드가 작업 속성을 관리하고 영구 데이터 스트림에 액세스할 수 있도록 함수에 전달됩니다. 인쇄 데이터는 처리할 JavaScript 코드에 대한 JavaScript 배열로 전달됩니다. startPrintJob 은 다음과 같은 방법으로 프린터 디바이스에 대한 액세스도 제공합니다.
인쇄 스트림을 통해
USBMon이 처리할 수 있도록 Bidi 스키마 응답을 반환할 수 있는 개체를 통해
구문(startPrintJob 메서드)
function startPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);
매개 변수(startPrintJob 메서드)
jobScriptContext [in] 제조업체의 JavaScript 코드에서 작업 속성 모음 및 영구 데이터 스트림에 액세스할 수 있도록 하는 IPrinterScriptUsbJobContext 개체입니다. printerStream
[in] 제조업체의 JavaScript 코드가 인쇄 디바이스에 데이터를 읽고 쓰는 데 사용할 수 있는 IPrinterScriptableSequentialStream 개체입니다. printerBidiSchemaResponses
[out] 제조업체의 JavaScript 코드에서 Bidi 스키마 값 변경/업데이트를 반환하는 데 사용할 수 있는 IPrinterBidiSchemaResponses 개체입니다.
반환 값(startPrintJob 메서드)
반환 값 | 설명 |
---|---|
0 | 성공. |
1 | 실패 – 작업 컨텍스트 개체를 정리하고 인쇄 스풀러에 오류 코드를 반환합니다. |
writePrintData 메서드
USBMon은 writePort 중에 이 메서드를 호출합니다. writePrintData를 호출하면 드라이버가 인쇄 스트림을 수정하거나 인쇄 디바이스가 작업을 인쇄하는 동안 사용되는 호스트 기반 요청/응답 프로토콜을 구현할 수 있습니다. 작업 컨텍스트 개체는 제조업체의 JavaScript 코드가 작업 속성을 관리하고 영구 데이터 스트림에 액세스할 수 있도록 메서드에 전달됩니다. 인쇄 데이터는 처리할 JavaScript 코드에 대한 JavaScript 배열로 전달됩니다. writePrintData 는 다음과 같은 방법으로 프린터 디바이스에 대한 액세스도 제공합니다.
인쇄 스트림을 통해
USBMon이 처리할 수 있도록 Bidi 스키마 응답을 반환할 수 있는 개체를 통해
function writePrintData(jobScriptContext, writePrintDataProgress, printData, printerStream, printerBidiSchemaResponses);
Parameters(writePrintData 메서드)
jobScriptContext [in] 제조업체의 JavaScript 코드에서 작업 속성 모음 및 영구 데이터 스트림에 액세스할 수 있도록 하는 IPrinterScriptUsbJobContext 개체입니다. writePrintDataProgress
[in] 제조업체의 JavaScript 코드가 인쇄 디바이스에 데이터를 읽고 쓰는 데 사용할 수 있는 IPrinterScriptableSequentialStream 개체입니다. printData
[in] 현재 인쇄 데이터의 JavaScript 배열인 IDispatch 개체입니다. printData 매개 변수를 사용하면 JavaScript 코드에서 데이터를 jobScriptContext의 데이터 스트림 중 하나에 캐싱하거나 printerStream을 통해 프린터로 보내기 전에 데이터를 조작할 수 있습니다. printerStream
[in] 제조업체의 JavaScript 코드가 인쇄 디바이스에 데이터를 읽고 쓰는 데 사용할 수 있는 IPrinterScriptableSequentialStream 개체입니다. printerBidiSchemaResponses
[out] 제조업체의 JavaScript 코드에서 Bidi 스키마 값 변경 또는 업데이트를 반환하는 데 사용할 수 있는 IPrinterBidiSchemaResponses 개체입니다.
반환 값(writePrintData 메서드)
반환 값 | 설명 |
---|---|
0 | 성공. printData(인쇄 데이터 스트림)에서 처리된 바이트 수는 writePrintDataProgress를 통해 반환됩니다. |
1 | 실패 – 인쇄 스풀러에 오류 코드를 반환합니다. |
2 | 다시 시도 - printerBidiSchemaResponses에서 Bidi 스키마 업데이트(Bidi 이벤트 포함)를 처리한 다음 JavaScript 함수를 다시 호출하여 제조업체의 코드에서 데이터 처리를 계속할 수 있도록 합니다. printData(인쇄 데이터 스트림)에서 처리된 바이트 수는 writePrintDataProgress를 통해 반환됩니다. |
3 | DeviceBusy – 디바이스 통신 채널이 현재 데이터를 허용하지 않습니다. 이는 실패를 나타내지 않습니다. USBMon은 디바이스가 사용 중임을 스풀러에 알리고 나중에 함수를 다시 호출해야 합니다. printData(인쇄 데이터 스트림)에서 처리된 바이트 수는 writePrintDataProgress를 통해 반환됩니다. |
4 | AbortTheJob – 디바이스가 작업을 계속 처리할 수 없거나 사용자가 인쇄 장치의 전면 패널을 사용하여 작업을 취소했습니다. USBMon이 인쇄 작업을 중단하라는 메시지를 받으면 반환하기 전에 인쇄 스풀러에 정보를 전달하여 작업을 중단합니다. |
endPrintJob 메서드
USBMon은 endDocPort 중에 이 메서드를 호출합니다. endPrintJob을 호출하면 드라이버가 인쇄 스트림을 수정하거나 인쇄 디바이스가 작업을 인쇄하는 동안 사용되는 호스트 기반 요청/응답 프로토콜을 구현할 수 있습니다. 작업 컨텍스트 개체는 제조업체의 JavaScript 코드에서 다음을 수행할 수 있도록 메서드에 전달됩니다.
지속된 인쇄 데이터 처리 완료
인쇄 스트림을 통해 프린터 디바이스에 액세스
USBMon이 처리할 수 있도록 Bidi 스키마 응답을 전달할 수 있는 개체에 액세스
function endPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);
Parameters(endPrintJob 메서드)
jobScriptContext [in] 제조업체의 JavaScript 코드에서 작업 속성 모음 및 영구 데이터 스트림에 액세스할 수 있도록 하는 IPrinterScriptUsbJobContext 개체입니다. printerStream
[in] 제조업체의 JavaScript 코드가 인쇄 디바이스에 데이터를 읽고 쓰는 데 사용할 수 있는 IPrinterScriptableSequentialStream 개체입니다. printerBidiSchemaResponses
[out] 제조업체의 JavaScript 코드에서 Bidi 스키마 값 변경 또는 업데이트를 반환하는 데 사용할 수 있는 IPrinterBidiSchemaResponses 개체입니다.
반환 값(endPrintJob 메서드)
반환 값 | 설명 |
---|---|
0 | 성공 – 작업 컨텍스트 개체를 정리하고 인쇄 스풀러로 성공을 반환합니다. |
1 | 실패 – 작업 컨텍스트 개체를 정리하고 인쇄 스풀러에 오류 코드를 반환합니다. |
2 | 다시 시도 - printerBidiSchemaResponses에서 Bidi 스키마 업데이트(Bidi 이벤트 포함)를 처리한 다음 JavaScript 함수를 다시 호출하여 제조업체의 JavaScript 코드가 데이터 처리를 계속할 수 있도록 합니다. |
보조 USB를 통해 Bidi
디바이스가 보조 USB 인터페이스를 지원하는 경우 디바이스는 requestStatus 메서드 외에도 이전 섹션에서 설명한 getSchemas 및 setSchema 메서드를 사용할 수 있습니다.
requestStatus 메서드
이 메서드는 v4 드라이버의 매니페스트 파일에 BidiUSBStatusInterface 지시문이 지정된 경우 getStatus 대신 호출됩니다. requestStatus 는 디바이스가 인쇄되는 동안 인쇄 장치에서 상태를 가져오는 데 사용됩니다.
다음 다이어그램에서는 BIDiUSBStatusInterface 지시문이 지정되고 통신이 대체 USB 인터페이스를 통해 라우팅되는 시나리오를 보여 주는 USB Bidi 확장 아키텍처의 개요를 제공합니다.
requeststatus 메서드를 사용하는 usb bidi extender 아키텍처입니다.
이 메서드는 인쇄하는 동안 반복적으로 호출됩니다. 디바이스는 사용할 수 있고 스크립트에서 이해할 수 있는 경우에만 데이터를 반환할 것으로 예상됩니다. 디바이스가 요청된 상태를 지원하지 않거나 이 메서드를 다시 호출할 필요가 없는 경우 스크립트는 USBMon의 getStatus 실행 스레드가 성공적으로 종료되도록 지시하는 값 2를 반환해야 합니다.
매개 변수(requestStatus 메서드)
scriptContext [in] 관련 속성 모음에 대한 액세스를 제공하는 IPrinterScriptContext 개체입니다. printerStream
[in] USB 버스에 대한 읽기 및 쓰기 액세스를 허용하는 IPrinterScriptableSequentialStream 개체입니다. printerBidiSchemaResponses
[out] 스크립트가 쿼리 키에 대한 모든 응답을 저장하는 데 사용하는 개체입니다.
반환 값(requestStatus 메서드)
반환 값 | 설명 |
---|---|
0 | 스크립트가 성공적으로 완료되었습니다. |
2 | 연결된 디바이스는 더 이상 요청된 상태를 지원하지 않으며 이 함수를 다시 호출하면 안 됩니다. |