PrintServiceLookup
PrintServiceLookup
특정 유형의 인쇄 서비스(일반적으로 프린터에 해당)를 조회(lookup)하는 서비스를 제공하는 추상 클래스예요.
본문
javax.print 패키지에 속하는 추상 클래스로, java.lang.Object를 상속해요. 여러 구현이 동시에 설치될 수 있어요. 모든 구현은 찾은 프린터를 PrintService 인스턴스로 설명할 수 있어야 해요. 일반적으로 이 서비스 클래스의 구현은 JAR 파일에서 자동으로 발견되고(SPI JAR 파일 명세 참고), 기본 생성자로 인스턴스화할 수 있어야 해요.
응용 프로그램은 이 추상 클래스의 정적 메서드만 사용해요. 인스턴스 메서드는 하위 클래스의 서비스 공급자가 구현하고, 설치된 모든 조회 클래스의 결과 통합은 이 클래스의 정적 메서드가 보고해요.
PrintServiceLookup 구현자는 SecurityManager.checkPrintJobAccess()를 확인해 신뢰할 수 없는 코드의 접근을 차단하는 것이 권장돼요. 이 권장 정책을 따르면 신뢰할 수 없는 코드는 인쇄 서비스를 찾지 못할 수 있어요. 다운로드된 애플릿이 가장 흔한 신뢰할 수 없는 코드의 예시예요.
보안 관리자가 설치되어 있고 checkPrintJobAccess()가 접근을 거부하면, registerService(PrintService)로 등록된 서비스는 조회 결과에 포함되지 않아요.
public abstract class PrintServiceLookup extends Object
lookupPrintServices
public static final PrintService[] lookupPrintServices(DocFlavor flavor,
AttributeSet attributes)
지정된 DocFlavor를 인쇄할 수 있는 인쇄 서비스를 찾아요.
- 파라미터
flavor: 인쇄할 flavor.null이면 이 제약을 사용하지 않아요. - 파라미터
attributes: 인쇄 서비스가 지원해야 하는 속성.null이면 이 제약을 사용하지 않아요. - 반환값: 지정된 flavor 속성을 지원하는 인쇄 서비스를 나타내는
PrintService객체들의 배열. 일치하는 서비스가 없으면 길이가 0이에요.
lookupMultiDocPrintServices
public static final MultiDocPrintService[] lookupMultiDocPrintServices(
DocFlavor[] flavors, AttributeSet attributes)
지정된 모든 doc flavor를 담은 MultiDoc을 인쇄할 수 있는 MultiDoc 인쇄 서비스를 찾아요. 요소들이 서로 다른 flavor일 수 있는 MultiDoc을 인쇄할 수 있는 서비스를 찾는 데 유용해요. 조회 서비스가 더 효율적으로 처리할 수 있어요.
- 파라미터
flavors: 인쇄할 flavor들.null이거나 비어 있으면 이 제약을 사용하지 않아요. - 반환값: 일치하는
MultiDocPrintService객체들의 배열. 일치하는 서비스가 없으면 길이가 0이에요.
lookupDefaultPrintService
public static final PrintService lookupDefaultPrintService()
이 환경의 기본 인쇄 서비스를 찾아요. null을 반환할 수 있어요. 여러 조회 서비스가 각각 기본값을 지정하면 선택되는 서비스는 정확히 정의되지 않지만, 보통 설치된 서비스보다 플랫폼 네이티브 서비스가 기본으로 반환돼요. 명확한 플랫폼 네이티브 기본 서비스가 없으면 구현에 따라 가장 먼저 찾은 서비스가 기본이 돼요. javax.print.defaultPrinter 속성을 설정해 알고리즘을 덮어쓸 수 있어요.
registerServiceProvider
public static boolean registerServiceProvider(PrintServiceLookup sp)
조회 서비스를 구현하는 클래스를 응용 프로그램이 명시적으로 등록할 수 있게 해요. 등록은 VM 호출 사이에 유지되지 않아요. 이미 등록되었거나 등록할 수 없으면 false를 반환해요.
- 반환값: 새 조회 서비스가 새로 등록되면
true, 그렇지 않으면false
registerService
public static boolean registerService(PrintService service)
인쇄 서비스를 구현하는 클래스의 인스턴스를 응용 프로그램이 직접 등록할 수 있게 해요. StreamPrintService 인스턴스와 함께 호출하면 안 되는데, 항상 등록에 실패하고 false를 반환해요.
- 반환값: 서비스가 새로 등록되면
true, 그렇지 않으면false
인스턴스 메서드 (서비스 공급자용)
응용 프로그램이 직접 호출하지 않는 추상 메서드들이에요. getPrintServices(DocFlavor, AttributeSet), getPrintServices(), getMultiDocPrintServices(DocFlavor[], AttributeSet), getDefaultPrintService()가 있어요. 서비스 공급자가 구현하고, 이 클래스의 정적 메서드가 사용해요. getDefaultPrintService()는 이 조회 서비스의 기본 PrintService를 반환하고, 기본값이 없으면 null을 반환해요.