JavaTM 2
Platform
Std.  Ed.  v1. 4.0

javax.print
클래스 DocFlavor

java.lang.Object 
  |
  +--javax.print.DocFlavor
모든 구현 인터페이스:
Cloneable , Serializable
직계의 기존의 서브 클래스:
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 개로 구성됩니다.

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


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

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

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

doc 후레이바의 표현 클래스는 JPS DocPrintJob 의 안녕 제트입니다. 이 표현 클래스를 사용해, 클라이언트로부터 캐릭터 또는 바이트 순차 순서를 취득할 수 있습니다. doc 후레이바의 MIME 타입은 캐릭터 또는 바이트 순차 순서의 해석 방법을 지정하는 어떤 것인가의 표준 미디어 타입입니다. 표준 미디어 타입의 리스트에 대해서는 Internet Assigned Numbers Authority (IANA)의 「Media Types Directory」 를 참조해 주세요. 인터페이스 DocDoc 오브젝트의 클라이언트가 클라이언트 형식의 인쇄 데이터를 추출할 때에 이용 가능한 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 프라이머리명입니다. 텍스트 데이터를 스트림 처리하는 어플리케이션은 캐릭터 세트를 항상 MIME 타입으로 지정할 필요가 있습니다. 이 때문에, 호스트 플랫폼의 인코딩으로 보존된 데이터 (파일 등)에 관한, 플랫폼의 인코딩을 취득할 필요가 있습니다. 이것에 대응해, DocFlavor 의 MIME 타입에서의 사용에 적절한 CharSet 는 DocFlavor.hostEncoding 로부터 취득할 수 있습니다. 이것은 항상 프라이머리 IANA 명이라고 하는 것은 아닙니다만, 확실히 이 가상 머신에 의해 이해됩니다. 일반적인 후레이바의 경우, 정의 끝난 *HOST DocFlavors 를 사용할 수 있습니다.

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


추천 되는 DocFlavor

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


서비스 형식의 인쇄 데이터

서비스 형식의 인쇄 데이터의 경우, Java Print Service 인스턴스가 인쇄 데이터 형식을 판별합니다. doc 후레이바의 표현 클래스가 가리키는 인터페이스 (표현 가능한 이미지 인터페이스나 Java 2 로 인쇄 가능한 인터페이스등)의 메소드가,DocPrintJob 에 의해 불려 가 인쇄하는 내용이 결정됩니다. doc 후레이바의 MIME 타입은 특수한 값 "application/x-java-jvm-local-objectref" 가 됩니다. 이 값은 표현 클래스로서 명명된 인터페이스를 구현하는 클라이언트가 Java 오브젝트에의 참조를 제공하는 것을 나타냅니다. 이 MIME 타입은 단순한 플레이스홀더이며, 중요한 것은 인쇄 데이터 표현 클래스입니다.

서비스 형식의 인쇄 데이터의 경우, 인쇄 데이터 표현 클래스는 (다른 표현 클래스를 이용 가능한 경우에서도) 통상다음의 어떤 것인가가 됩니다. DocFlavor 클래스 내부에서 상자가 된 클래스는 이러한 샘플 doc 후레이바의 경우, 정의 끝난 static 정수 DocFlavor 오브젝트를 선언합니다. DocFlavor 클래스의 constructor를 사용해, 임의의 doc 후레이바를 작성할 수 있습니다.



정의 끝난 doc 후레이바

Java Print Service 인스턴스에는 다음의 인쇄 데이터 형식 및 인쇄 데이터 표현 클래스를 서포트하는 것은요구되고 있지 않습니다. 실제, 이 클래스를 사용하는 개발자는 이러한 정의가 끝난 doc 후레이바에 대응하는 문서 타입을 특정의 인쇄 서비스가 서포트하고 있다고는절대로 상정하지 말아 주세요. 항상 인쇄 서비스에 조회를 실시해, 서포트하는 doc 후레이바를 판별해 주세요. 다만, 이러한 doc 후레이바를 서포트하는 인쇄 서비스를 보관 유지하는 개발자는 여기서 작성된 정의 끝난 단독 인스턴스를 참조하는 것을 추천합니다.

Java Print Service 인스턴스는 상기의 필수 doc 후레이바에 가세해 임의의 doc 후레이바를 서포트 가능합니다 (필수의 doc 후레이바인 만큼 한정하는 일도 가능).

상기의 doc 후레이바의 서포트가 추천 되고 있기 (위해)때문에, 인쇄를 실시하는 클라이언트는 프린터가 서포트하는 doc 후레이바에 관계없이, 임의의 JPS 프린터에 인쇄 가능하다라고 판단해 서로 지장있습니다. 프린터가 클라이언트의 우선 doc 후레이바를 서포트하지 않는 경우, 클라이언트는 적어도 plaintext는 인쇄할 수 있습니다. 또, 데이터를 표현 가능한 이미지로 변환하고 나서 이미지를 인쇄하는 일도 가능합니다.

각 Java Print Service 인스턴스는 다음에 나타내는 plaintext 인쇄 데이터의 처리 요건도 채울 필요가 있습니다.

클라이언트는 상기의 요건에 포함되지 않는 모든 plaintext 인쇄 데이터의 서식 설정을 실행할 필요가 있습니다.

설계의 근거

javax.print.data 패키지내의 DocFlavor 클래스는 DataFlavor 클래스에 유사하고 있습니다. Java Print Service (JPS) API 에서는 DataFlavor 클래스는 다음의 3 개의 이유로써 사용되지 않습니다. 이러한 이유는 모두, JSP API 를 공유 가능한 다른 인쇄 서비스 API 가, Java 2 Standard Edition 의 모든 것을 포함하지 않는 Java 프로파일상에서 실행되는 경우가 있는 것에 유래하고 있습니다.

  1. JPS API 는 AWT 를 서포트하지 않는 Java 프로파일로 사용하도록(듯이) 설계되고 있다

  2. java.awt.datatransfer.DataFlavor 클래스의 구현은 등가인 데이타후레이바가 같은 직렬화 표현을 보관 유지하는 것을 프로텍션하지 않는다. DocFlavor 를 서비스로 사용하는 것으로, 등가인 데이타후레이바가 같은 직렬화 표현을 보관 유지하는 것이 프로텍션된다

  3. java.awt.datatransfer.DataFlavor 클래스의 구현에는 판독 가능한 이름이 직렬화 표현의 일부에 포함된다. 이것은 서비스 일치 제약의 일부로서는 부적절하다

DocFlavor 클래스의 직렬화 표현은 다음에 나타내는 정규의 형식의 MIME 타입 캐릭터 라인을 사용합니다. 이 때문에, 동일하지 않게 등가 (정규 형식이 같다)의 MIME 타입을 보관 유지하는 2 개의 doc 후레이바는 동일하다고 볼 수가 있습니다.

DocFlavor 클래스의 직렬화 표현에는 표현 클래스 (Class 오브젝트)는 아니고 표현 클래스 (String 오브젝트)의 완전 수식 클래스명도 포함됩니다. 클라이언트는 이 클래스명을 이용하는 것으로, 표현 클래스를 로드하는 일 없이, Java Print Service 인스턴스가 서포트하는 doc 후레이바를 검증할 수 있습니다. 클라이언트의 사용 가능한 리소스가 한정되어 있는 경우, 표현 클래스의 로드에서 문제가 발생하는 경우가 많기 때문에, 이것은 유용한 방법입니다.

관련 항목:
직렬화 된 형식

중첩된 클래스의 개요
static class DocFlavor.BYTE_ARRAY
          DocFlavor.BYTE_ARRAY 클래스는 사전 정의된 static 정수 DocFlavor 오브젝트를 제공합니다.
static class DocFlavor.CHAR_ARRAY
          DocFlavor.CHAR_ARRAY 클래스는 사전 정의된 static 정수 DocFlavor 오브젝트를 제공합니다.
static class DocFlavor.INPUT_STREAM
          DocFlavor.INPUT_STREAM 클래스는 사전 정의된 static 정수 DocFlavor 오브젝트를 제공합니다.
static class DocFlavor.READER
          DocFlavor.READER 클래스는 사전 정의된 static 정수 DocFlavor 오브젝트를 제공합니다.
static class DocFlavor.SERVICE_FORMATTED
          DocFlavor.SERVICE_FORMATTED 클래스는 정의 끝난 static 정수 DocFlavor 오브젝트 (예, 서비스 형식의 인쇄 데이터용 doc 후레이바)를 제공합니다.
static class DocFlavor.STRING
          DocFlavor.STRING 클래스는 정의 끝난 static 정수 DocFlavor 오브젝트를 제공합니다.
static class DocFlavor.URL
          DocFlavor.URL 클래스는 사전 정의된 static 정수 DocFlavor 오브젝트를 제공합니다.
 
필드의 개요
static String hostEncoding
          호스트 operating system의 인코딩을 나타내는 캐릭터 라인입니다.
 
생성자의 개요
DocFlavor (String  mimeType, String  className)
          지정된 MIME 타입 및 표현 클래스명으로부터 신규 doc 후레이바오브제크트를 구축합니다.
 
메소드의 개요
 boolean equals (Object  obj)
          이 doc 후레이바오브제크트가 지정된 오브젝트에 동일한지 어떤지를 판별합니다.
 String getMediaSubtype ()
          이 doc 후레이바오브제크트의 미디어 아류형을 (MIME 타입으로부터) 돌려줍니다.
 String getMediaType ()
          이 doc 후레이바오브제크트의 미디어 타입을 (MIME 타입으로부터) 돌려줍니다.
 String getMimeType ()
          이 doc 후레이바오브제크트의 MIME 타입 캐릭터 라인을, 정규의 형식에서 돌려줍니다.
 String getParameter (String  paramName)
          MIME 파라미터를 나타내는 String 를 돌려줍니다.
 String getRepresentationClassName ()
          이 doc 후레이바오브제크트의 표현 클래스의 이름이 돌려주어집니다.
 int hashCode ()
          이 doc 후레이바오브제크트의 해시 코드를 돌려줍니다.
 String toString ()
          이 DocFlavor 를 캐릭터 라인으로 변환합니다.
 
클래스 java.lang. Object 에서 상속받은 메소드
clone , finalize , getClass , notify , notifyAll , wait , wait , wait
 

필드의 상세

hostEncoding

public static final String  hostEncoding
호스트 operating system의 인코딩을 나타내는 캐릭터 라인입니다. 이것은 RFC 2278: IANA Charset Registration Procedures 」에 기재된 규칙에 따릅니다. 다만, Java 플랫폼의 이전의 버젼과의 호환성을 유지하기 위해(때문에), 히스토리명이 돌려주어지는 점이 다릅니다. 메소드로부터 돌려주어지는 값은 값을 돌려주는 가상 머신 및 DocFlavor 로 사용하는 경우인 만큼 유효합니다. 이것은 실행하는 VM 내의,"HOST" 가 정의 끝난 DocFlavor 모두에게 대응하는 캐릭터 세트입니다.

생성자의 상세

DocFlavor

public DocFlavor(String  mimeType,
                 String  className)
지정된 MIME 타입 및 표현 클래스명으로부터 신규 doc 후레이바오브제크트를 구축합니다. 지정된 MIME 타입은 정규의 형식에 변환되어 내부에 저장됩니다.

파라미터:
mimeType - MIME 미디어 타입 캐릭터 라인
className - 완전 지정의 표현 클래스명
예외:
NullPointerException - (체크되지 않는 예외) mimeType 또는 className 가 null 의 경우에 슬로우 되는 @exception IllegalArgumentException (체크되지 않는 예외) mimeType 가 MIME 미디어 타입 캐릭터 라인의 구문에 따르지 않는 경우에 슬로우 된다
메소드의 상세

getMimeType

public String  getMimeType()
이 doc 후레이바오브제크트의 MIME 타입 캐릭터 라인을, 정규의 형식에서 돌려줍니다. 각 파라미터치는 인용부호로 둘러싸입니다.

반환값:
MIME 타입

getMediaType

public String  getMediaType()
이 doc 후레이바오브제크트의 미디어 타입을 (MIME 타입으로부터) 돌려줍니다.

반환값:
미디어 타입

getMediaSubtype

public String  getMediaSubtype()
이 doc 후레이바오브제크트의 미디어 아류형을 (MIME 타입으로부터) 돌려줍니다.

반환값:
미디어 아류형

getParameter

public String  getParameter(String  paramName)
MIME 파라미터를 나타내는 String 를 돌려줍니다. MIME 타입에는 통상 옵션의 파라미터를 포함할 수가 있습니다. 텍스트 타입의 캐릭터 세트는 샘플로서 자주(잘) 사용됩니다. 이 메소드는 지정된 파라미터의 값이 이 후레이바의 MIME 타입내로 지정되고 있는 경우에, 그 값을 돌려줍니다.

파라미터:
paramName - 파라미터명. 매칭의 실행전에, 이 이름은 내부에서 정규의 소문자 형식에 변환된다
반환값:
MIME 파라미터를 나타내는 캐릭터 라인, 또는 파라미터가 MIME 타입 캐릭터 라인에 존재하지 않는 경우는 null
예외:
throws - paramName 가 null 의 경우에 NullPointerException 가 슬로우 된다

getRepresentationClassName

public String  getRepresentationClassName()
이 doc 후레이바오브제크트의 표현 클래스의 이름이 돌려주어집니다.

반환값:
표현 클래스의 이름

toString

public String  toString()
DocFlavor 를 캐릭터 라인으로 변환합니다.

오버라이드(override):
클래스 Object 내의 toString
반환값:
정규의 형식에 근거하는 MIME 타입 캐릭터 라인. 각 파라미터치는 인용부호로 둘러싸인다. 표현 클래스명인 것을 나타내기 (위해)때문에,"class=" 파라미터가 MIME 타입 캐릭터 라인에 추가된다

hashCode

public int hashCode()
이 doc 후레이바오브제크트의 해시 코드를 돌려줍니다.

오버라이드(override):
클래스 Object 내의 hashCode
반환값:
이 오브젝트의 해시 코드치
관련 항목:
Object.equals(java.lang.Object) , Hashtable

equals

public boolean equals(Object  obj)
이 doc 후레이바오브제크트가 지정된 오브젝트에 동일한지 어떤지를 판별합니다. 지정된 오브젝트가 null 는 아니고,DocFlavor 의 인스턴스이며, 이 doc 후레이바오브제크트의 MIME 타입과 등가인 MIME 타입을 보관 유지하는 (즉, MIME 타입이 같은 미디어 타입, 미디어 아류형, 및 파라미터를 보관 유지한다) 경우, 및 이 doc 후레이바오브제크트와 같은 표현 클래스명을 보관 유지하는 경우, 2 개의 오브젝트는 동일해집니다. 이 때문에, 2 개의 doc 후레이바오브제크트의 MIME 타입이 코멘트를 제외해 동일한 경우, 이것들은 동일하다고 보여집니다. 다만, MIME 타입 "text/plain" 및 "text/plain; charset=US-ASCII" 를 보관 유지하는 2 개의 doc 후레이바오브제크트는 같은 미디어 타입을 나타내는 경우에서도, 동일하다고는 보여지지 않습니다 (plaintext의 디폴트 캐릭터 세트가 US-ASCII 이기 (위해)때문에).

오버라이드(override):
클래스 Object 내의 equals
파라미터:
obj - 판정되는 오브젝트
반환값:
이 doc 후레이바오브제크트가 obj 에 동일한 경우는 true, 그렇지 않은 경우는 false
관련 항목:
Object.hashCode() , Hashtable

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

버그의 보고와 기능의 리퀘스트
이외의 API 레퍼런스 및 개발자용 문서에 대해서는 Java 2 SDK SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Java, Java 2 D, 및 JDBC 는 미국 및 그 외의 나라에 있어서의 미국 Sun Microsystems, Inc. 의 상표 혹은 등록상표입니다.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.