DocPrintJob
DocPrintJob (문서 인쇄 작업)
DocPrintJob 인터페이스는 일련의 작업 속성(job attributes)을 사용해 지정된 문서를 인쇄할 수 있는 인쇄 작업을 나타내요. 이 인터페이스를 구현하는 객체는 인쇄 서비스(print service)에서 얻어요.
본문
메서드
getPrintService(): 이 인쇄 작업 객체가 바인딩된PrintService객체를 결정해요.getAttributes(): 이 인쇄 작업의 인쇄 속성 집합을 얻어요. 반환된 속성 집합 객체는 수정 불가이며,getAttributes()호출 시점의 "스냅샷"이에요. 즉 나중에 속성이 바뀌어도 반환 집합의 내용은 갱신되지 않아요. 값 변경을 감지하려면getAttributes()를 다시 호출해 이전과 비교하거나, 인쇄 작업 이벤트 리스너를 등록해요. 반환 값은 빈 집합일 수 있지만null이어선 안 돼요.addPrintJobListener(PrintJobListener listener): 이 인쇄 작업 중 발생하는 이벤트 리스너를 등록해요.listener가null이면 예외를 던지지 않고 아무것도 하지 않아요. 이미 등록된 리스너면 다시 등록돼요.removePrintJobListener(PrintJobListener listener): 이 인쇄 작업에서 리스너를 제거해요. 이전에 추가되지 않은 리스너면 아무 기능도 하지 않고 예외도 던지지 않아요.listener가null이면 예외 없이 아무것도 하지 않아요.addPrintJobAttributeListener(PrintJobAttributeListener listener, PrintJobAttributeSet attributes): 지정된 속성의 변경 리스너를 등록해요.listener가null이면 예외 없이 아무것도 하지 않아요. 지정된 집합이 비어 있으면 속성 업데이트가 보고되지 않아요. 속성 집합이null이면 작업이 지원하는 모든 동적 속성을 듣는다는 뜻이에요.removePrintJobAttributeListener(PrintJobAttributeListener listener): 이 인쇄 작업에서 속성 리스너를 제거해요.
print
void print(Doc doc, PrintRequestAttributeSet attributes) throws PrintException
지정된 작업 속성으로 문서를 인쇄해요. 이 메서드는 주어진 인쇄 작업에 대해 한 번만 호출해야 해요. 다시 호출해도 새 작업이 프린터에 스풀링되지 않아요. print 메서드가 반환될 때 인쇄가 아직 완료되지 않았을 수 있는데, 인쇄가 비동기적으로(어쩌면 다른 스레드에서) 일어날 수 있기 때문이에요. 성공·실패를 모니터링하려는 애플리케이션은 PrintJobListener를 등록해요.
doc는 반드시 이 인쇄 작업이 지원하는 flavor여야 해요. attributes가 null이면 기본 속성이 사용돼요. PrintException이 던져지며, 문서 flavor가 지원되지 않으면 FlavorException, 속성 중 하나 이상이 유효하지 않으면 AttributeException을 더 정확히 설명하는 인터페이스를 추가로 구현할 수 있어요.