public class DocFlavor extends Object implements Serializable, Cloneable
DocFlavor
封装了一个类对象指定的格式,打印数据提供给
DocPrintJob
。”医生”是一个短的、容易发音的术语,意思是“一张打印数据。“打印数据格式,或“医生的味道”,包括两点:
Class.getName()
方法返回。(为byte[]
类名称是"[B"
,为char[]
是"[C"
。)一个DocPrintJob
通过接口Doc
手段获取打印数据,Doc
对象让DocPrintJob
确定DOC风味客户端可以提供。一个Doc
对象也让DocPrintJob
获得DOC风味的代表类的一个实例,从中DocPrintJob
得到实际打印数据。
对于客户端格式化的打印数据,客户决定不打印数据格式。例如,客户可能有一个JPEG编码的图像,HTML代码的URL,或磁盘文件包含纯文本的一些编码,可能是从外部来源获得的,而需要一种方法来描述数据的格式打印服务。
doc风味的表示级为JPS DocPrintJob
从客户端获得一个序列的字符或字节的管道。doc风味的MIME类型是一个标准的媒体类型告诉如何解释字符或字节序列。在一系列的标准媒体类型,看到互联网数字分配机构(IANA的)的Media Types Directory。接口提供了两Doc
实用操作,getReaderForText
和getStreamForBytes()
,帮助Doc
对象的客户提取客户端格式化打印数据。
对于客户端格式化的打印数据,打印数据表示类通常是以下的一种(虽然允许其他表示类):
char[]
)--打印数据组成的Unicode字符数组中。String
--打印数据组成的Unicode字符的字符串。java.io.Reader
)--打印数据由Unicode字符从流到流前读。byte[]
)--打印数据组成的数组中的字节。字节是字符编码的文件的MIME类型指定的味道。如果MIME类型不指定一个字符集,默认的字符集是US-ASCII。java.io.InputStream
)--打印数据包括从流到流的结尾读字节。字节是字符编码的文件的MIME类型指定的味道。如果MIME类型不指定一个字符集,默认的字符集是US-ASCII。URL
)--打印数据包括从URL位置读取的字节。字节是字符编码的文件的MIME类型指定的味道。如果MIME类型不指定一个字符集,默认的字符集是US-ASCII。当表示类是一个链接时,打印服务本身就直接从它的网址地址访问和下载文档,而不涉及客户端。该服务可能是在不同的环境中执行的网络打印服务的某种形式。这意味着你不应该使用一个网址打印数据的味道来打印一个文件在一个受限制的网址,客户端可以看到,但打印机看不到。这也意味着你不应该使用一个网址打印数据的味道来打印一个文件存储在一个本地文件,不提供在一个独立的客户端访问的网址。例如,一个文件,不提供一个HTTP服务器或FTP服务器。要打印这样的文档,让客户端在网址或文件上打开一个输入流,并使用输入流数据的味道。
字节打印数据在DOC风味的MIME类型不包括charset
参数,java打印服务实例假设默认设置的US-ASCII字符。这是按照RFC 2046,这表示默认的字符集是US-ASCII。注意,US-ASCII是UTF-8,所以未来可能扩大如果未来的RFC支持UTF-8作为默认兼容的方式。
注意,这不同于java运行时的行为解释为文本数据的字节流。假设默认的编码为用户的区域设置。因此,当假脱机文件在本地编码一个java打印服务是正确指定编码的重要。开发商在英语地区的工作尤其应该意识到这一点,作为他们的平台,相当于默认MIME字符集编码。通过这种巧合,特定的情况下,可能会工作,而不指定的平台数据的编码。
java虚拟机的每一个实例都有一个默认的字符编码的虚拟机启动时确定,通常取决于区域设置的字符集被底层的操作系统使用。在分布式环境中,没有保证两个虚拟机共享相同的默认编码。因此,客户要想流平台编码的文本数据从主机平台java打印服务实例必须显式声明的字符集和不依赖于默认。
首选的形式是官方IANA主要名称编码。应用流文本数据应该指定MIME类型的字符集,这需要获得编码主机平台的数据(如文件)存储在该平台的编码。一个字符对应这适用于一个docflavor MIME类型可以从DocFlavor.hostEncoding
这可能不是原IANA名字取得但保证是由VM的理解。常见的香料,预定docflavors *主机可以使用。
看到在java平台支持的字符编码的更多信息 character encodings。
java打印服务API没有定义任何强制性支持docflavors。然而,这里有一些,一个java打印服务实例可能客户端格式化打印数据支持的MIME类型的例子。嵌套类在类声明docflavor预定义的静态恒docflavor对象这些例子DOC的味道;类docflavor的构造函数可用于创建任意文件的味道。
MIME-Type | 描述 |
---|---|
"text/plain" |
Plain text in the default character set (US-ASCII) |
"text/plain; charset=xxx" |
Plain text in character set xxx |
"text/html" |
HyperText Markup Language in the default character set (US-ASCII) |
"text/html; charset=xxx" |
HyperText Markup Language in character set xxx |
一般来说,预格式化文本打印数据设置在面向字符的表示类(字符数组,字符串,读者)或在一个面向字节(字节数组,表示类InputStream,URL)。
MIME-Type | 描述 |
---|---|
"application/pdf" |
Portable Document Format document |
"application/postscript" |
PostScript document |
"application/vnd.hp-PCL" |
Printer Control Language document |
总的来说,格式化的PDL打印数据以字节表示的类提供(字节数组,InputStream,URL)。
MIME-Type | 描述 |
---|---|
"image/gif" |
Graphics Interchange Format image |
"image/jpeg" |
Joint Photographic Experts Group image |
"image/png" |
Portable Network Graphics image |
总的来说,格式化的图像打印数据以字节表示的类提供(字节数组,InputStream,URL)。
MIME-Type | 描述 |
---|---|
"application/octet-stream" |
The print data format is unspecified (just an octet stream) |
打印机决定如何解释打印数据;这个“自动检测”作品是依赖于实现的方式。在一般情况下,预先设定自动打印数据是以字节表示的类提供(字节数组,InputStream,URL)。
对于服务格式化打印数据,java打印服务实例确定打印数据格式。doc风味的表征类表示一个接口的方法调用的DocPrintJob
确定待印内容--比如渲染图像接口或java打印接口。doc风味的MIME类型的特殊价值"application/x-java-jvm-local-objectref"
指示客户端将到实现该接口的类的对象表示为java提供参考。MIME类型只是一个占位符;重要的是打印数据表示的类。
对于服务格式化的打印数据,打印数据表示类通常是以下的一类(虽然允许其他表示类)。嵌套类在类声明docflavor预定义的静态恒docflavor对象这些例子DOC的味道;类docflavor的构造函数可用于创建任意文件的味道。
RenderableImage
对象。打印机调用接口方法获得的图像被打印。Printable
。打印机调用该接口中的方法,以获得要打印的页,一个由一个。对于每一页,打印机提供一个图形上下文,以及客户机在该图形上下文中所绘制的任何打印。Pageable
实现接口的对象。打印机调用该接口中的方法,以获得要打印的页,一个由一个。对于每一页,打印机提供一个图形上下文,以及客户机在该图形上下文中所绘制的任何打印。("text/plain", "java.io.InputStream")
("text/plain; charset=us-ascii", "java.io.InputStream")
("text/plain; charset=utf-8", "java.io.InputStream")
("application/x-java-jvm-local-objectref", "java.awt.image.renderable.RenderableImage")
一个java打印服务实例可以支持任何其他文件的口味(或没有)除了上述强制性的,在执行的选择。
上述文件口味是可取的所以印刷客户可以依靠的是能够在任何JPS打印机打印,无论哪个医生口味打印机支持。如果打印机不支持客户端的首选DOC的味道,客户至少可以打印纯文本,或客户可以将其数据在渲染图像和打印的图像。
此外,每一个java打印服务实例必须满足这些要求处理纯文本打印数据:
客户端必须自己执行上述要求所不能解决的所有纯文本打印数据格式。
在包装javax.print.data类docflavor相似类DataFlavor
。DataFlavor
类中不使用java打印服务(JPS)API的三个原因,都源自于让JPS API被其他印刷服务的API,这可能需要运行在java文件不包含所有的java平台共享,标准版。
java.awt.datatransfer.DataFlavor
实施不保证等效数据口味会有相同的序列化表示。docflavor,可用于服务的需要。java.awt.datatransfer.DataFlavor
实施包括人类像样的名字作为序列化表示部分。这是不适合作为服务匹配约束的一部分。docflavor类的序列化表示使用下面的MIME类型字符串的正则形式。因此,与MIME类型不相同,但两个对等的DOC的味道(具有相同的规范形式)可以认为是相等的。
docflavor类的序列化表示还包含完全限定的名称表示类(一个字符串),而不是表示类本身(一个类对象)。这允许客户端检查医生口味java打印服务实例支持无需加载表示类,这可能是有问题的资源有限的客户。
Modifier and Type | Class and Description |
---|---|
static class |
DocFlavor.BYTE_ARRAY
类docflavor.byte_array提供预定义的静态常量docflavor对象例如DOC香料使用一个字节数组(
byte[] )作为打印数据表示的类。
|
static class |
DocFlavor.CHAR_ARRAY
类docflavor.char_array提供预定义的静态常量docflavor对象例如DOC香料使用字符数组(
char[] )作为打印数据表示的类。
|
static class |
DocFlavor.INPUT_STREAM
类docflavor.input_stream提供预定义的静态常量docflavor对象例如DOC香料使用的字节流(
java.io.InputStream )作为打印数据表示的类。
|
static class |
DocFlavor.READER
类docflavor.reader提供预定义的静态常量docflavor对象例如DOC香料使用字符流(
java.io.Reader )作为打印数据表示的类。
|
static class |
DocFlavor.SERVICE_FORMATTED
类docflavor.service_formatted提供预定义的静态常量docflavor对象例如DOC口味服务格式化打印数据。
|
static class |
DocFlavor.STRING
类docflavor.string提供预定义的静态常量docflavor对象例如DOC香料使用字符串(
java.lang.String )作为打印数据表示的类。
|
static class |
DocFlavor.URL
类docflavor.url提供预定义的静态常量docflavor对象。
|
Modifier and Type | Field and Description |
---|---|
static String |
hostEncoding
表示主机操作系统编码的字符串。
|
Constructor and Description |
---|
DocFlavor(String mimeType, String className)
构建了从给定的MIME类型和表示类命名一个新的DOC风味物。
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj)
确定此文档的味道对象是否等于给定的对象。
|
String |
getMediaSubtype()
返回此对象的媒体类型(DOC的味道从MIME类型)。
|
String |
getMediaType()
返回此对象的媒体类型(DOC的味道从MIME类型)。
|
String |
getMimeType()
返回基于范式这个文档对象的MIME类型串味。
|
String |
getParameter(String paramName)
返回一个
String 代表一个MIME参数。
|
String |
getRepresentationClassName()
返回此文档香味对象表示类的名称。
|
int |
hashCode()
返回此文档味道对象的哈希代码。
|
String |
toString()
这
DocFlavor 转换为字符串。
|
public static final String hostEncoding
public DocFlavor(String mimeType, String className)
mimeType
- MIME媒体类型字符串。
className
完全合格表示类的名称。
NullPointerException
-(unchecked异常抛出
mimeType
)如果是null或
className
是空的。
IllegalArgumentException
-(unchecked例外)如果
mimeType
不遵守语法一个MIME媒体类型字符串抛出。
public String getMimeType()
public String getMediaType()
public String getMediaSubtype()
public String getParameter(String paramName)
String
代表一个MIME参数。MIME类型可以包括参数是可选的。文本类型字符集是一个常用的例子。这个方便的方法将如果在这种味道的MIME类型指定返回指定参数的值。
paramName
-参数的名称。此名称在执行匹配之前,在内部转换为规范的小写格式。
NullPointerException
如果paramName是空的。
public String getRepresentationClassName()
public String toString()
DocFlavor
转换为字符串。
public int hashCode()
hashCode
方法重写,继承类
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public boolean equals(Object obj)
DocFlavor
实例,有一个MIME类型相当于文档风味对象的MIME类型(即MIME类型具有相同的媒体类型、媒体类型、参数),并具有相同的表示形式的类名文档风味的对象。因此,如果两DOC风味对象的MIME类型是相同的除了评论,他们都是相同的。然而,随着“text/plain”和“text/plain MIME类型文件的风味物;字符集= US-ASCII”被认为是不平等的,尽管它们代表相同的媒体类型(因为纯文本的默认字符集是US-ASCII)。
equals
方法重写,继承类
Object
obj
对象测试。
obj
味道真,否则为假。
Object.hashCode()
,
HashMap
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.