JavaTM Platform
Standard Ed. 6

javax.print
클래스 DocFlavor

java.lang.Object 
  상위를 확장 javax.print.DocFlavor
모든 구현된 인터페이스:
Serializable , Cloneable
직계의 기존의 서브 클래스:
DocFlavor.BYTE_ARRAY , DocFlavor.CHAR_ARRAY , DocFlavor.INPUT_STREAM , DocFlavor.READER , DocFlavor.SERVICE_FORMATTED , DocFlavor.STRING , DocFlavor.URL


public class DocFlavor
extends Object
implements Serializable , Cloneable

DocFlavor 클래스는, 인쇄 데이터 DocPrintJob 에의 제공 형식을 지정하는 객체를 캡슐화합니다. 「Doc」는, 인쇄 데이터의 일부를 의미하는, 짧게 발음하기 쉬운 용어입니다. 인쇄 데이터 형식인 「doc 후레이바」는, 이하의 2 개로 구성됩니다.

DocPrintJob 는,Doc 인터페이스를 사용해 인쇄 데이터를 가져옵니다. DocPrintJob 는,Doc 객체를 사용해, 클라이언트가 제공 가능한 doc 후레이바를 판별할 수 있습니다. 또,DocPrintJob 는,Doc 객체를 사용해, doc 후레이바의 표현 클래스의 인스턴스를 취득할 수도 있습니다. DocPrintJob 는, 이 인스턴스로부터 인감 도장쇄데이터를 가져옵니다.  


클라이언트 형식의 인쇄 데이터

인쇄 데이터는, 클라이언트 형식의 인쇄 데이터와 서비스 형식의 인쇄 데이터의 2 개의 카테고리에 크게 나눌 수가 있습니다.  

클라이언트 형식의 인쇄 데이터의 경우, 클라이언트는 인쇄 데이터 형식을 인식 또는 판별합니다. 예를 들어, 클라이언트는, JPEG 로 encode 된 이미지, HTML 코드의 URL, 또는 어떤 것인가의 인코딩의 plaintext 파일을 포함한 디스크 파일을 (외부 소스로부터 취득하는 등 해) 보관 유지할 수가 있어 인쇄 서비스에 데이터 형식을 기술하는 수단을 필요로 합니다.  

doc 후레이바의 표현 클래스는, JPS DocPrintJob 의 안녕 제트입니다. 이 표현 클래스를 사용해, 클라이언트로부터 문자 또는 바이트 순서를 취득할 수 있습니다. doc 후레이바의 MIME 타입은, 문자 또는 바이트 순서의 해석 방법을 지정하는, 어떤 것인가의 표준 미디어 타입입니다. 표준 미디어 타입의 리스트에 대해서는, Internet Assigned Numbers Authority (IANA)의 「Media Types Directory」 를 참조해 주세요. 인터페이스 Doc 는,Doc 객체의 클라이언트가 클라이언트 형식의 인쇄 데이터를 추출할 때에 이용 가능한 2 개의 유틸리티 조작,getReaderForTextgetStreamForBytes() 를 제공합니다.  

일반적으로, 클라이언트 형식의 인쇄 데이터는, 다음의 어떤 것인가의 인쇄 데이터 표현 클래스가 됩니다 (다른 표현 클래스도 사용 가능).


디폴트 및 플랫폼의 인코딩

doc 후레이바의 MIME 타입에 charset 파라미터가 포함되지 않는 바이트 인쇄 데이터의 경우, Java Print Service 인스턴스는, US-ASCII 캐릭터 세트가 디폴트로 설정되어 있는 것이라고 판단 합니다. 이것은, 디폴트 캐릭터 세트를 US-ASCII 로 한다고 하는,RFC 2046 에 근거하는 동작입니다. US-ASCII 는 UTF-8 의 부분집합이기 (위해)때문에, 장래 RFC 에 의해 UTF-8 가 디폴트로서 승인되었을 경우, US-ASCII 가 호환성을 유지하면서 확장될 가능성이 있습니다.  

또, 이것은, 바이트 스트림을 텍스트 데이터로서 해석하는 경우의 Java 실행시의 동작과는 다른 경우가 있습니다. 이 경우에는, 사용자의 로케일의 디폴트 인코딩이라고 판단되기 (위해)때문에입니다. 이 때문에, 로컬 인코딩의 파일을 Java Print Service 에 spool 하는 경우에는, 인코딩을 정확하게 지정하는 것이 중요합니다. 특히, 영어 로케일로 작업을 실시하는 개발자는, 스스로의 플랫폼 인코딩이 디폴트 MIME 캐릭터 세트에 대응하고 있으므로, 이 점을 의식할 필요가 있습니다. 경우에 따라서는, 플랫폼 데이터의 인코딩을 지정하지 않아도 동작하는 것이 있기 때문에입니다.  

Java 가상 머신의 각 인스턴스는, 가상 머신의 기동시로 결정되는 디폴트 캐릭터 세트를 보관 유지합니다. 또, 일반적으로, 기본 operating system가 사용하는 로케일 및 캐릭터 세트에 의존합니다. 분산환경에서는, 2 개의 VM 가 같은 디폴트 인코딩을 공유하는 것은 보증되지 않습니다. 이 때문에, 플랫폼에서 encode 된 텍스트 데이터를, 호스트 플랫폼으로부터 Java Print Service 인스턴스에 스트림 처리하는 클라이언트는, 캐릭터 세트를 명시적으로 선언해, 디폴트에 의존하지 않게 할 필요가 있습니다.  

우선되는 형식은, 인코딩의 정식적 IANA primary명입니다. 텍스트 데이터를 스트림 처리하는 어플리케이션은, 캐릭터 세트를 항상 MIME 타입으로 지정할 필요가 있습니다. 이 때문에, 호스트 플랫폼의 인코딩으로 보존된 데이터 (파일 등)에 관한, 플랫폼의 인코딩을 취득할 필요가 있습니다. 이것에 대응해, DocFlavor 의 MIME 타입에서의 사용에 적절한 CharSet 는,DocFlavor.hostEncoding 로부터 취득할 수 있습니다. 이것은, 항상 primary IANA 명이라고 하는 것은 아닙니다만, 확실히 이 가상 머신에 의해 이해됩니다. 일반적인 후레이바의 경우, 정의 끝난 *HOST DocFlavors 를 사용할 수 있습니다.  

Java 플랫폼에서 지원되는 캐릭터 세트의 자세한 것은,「캐릭터 세트」 를 참조해 주세요.  


추천 되는 DocFlavor

Java Print Service API 는, 강제적으로 지원되는 DocFlavor 를 정의하지 않습니다. 다만, Java Print Service 인스턴스가, 클라이언트 형식의 인쇄 데이터로 지원 가능한 MIME 타입의 예를 몇개인가 가리킵니다. DocFlavor 클래스 내부에서 상자가 된 클래스는, 이러한 샘플 doc 후레이바의 경우, 정의 끝난 static 정수 DocFlavor 객체를 선언합니다. DocFlavor 클래스의 생성자 을 사용해, 임의의 doc 후레이바를 작성할 수 있습니다.