PrintServiceのメソッド

目次

プリンタから情報を取る
(0) lookupPrintServices() Linuxでは Windowsでは
(0) その結論
(1) getSupportedAttributeCategories()・設定可能項目の分類名を得る Linuxでは Windowsでは
(2) getSupportedAttributeValues()・設定可能項目一覧を得る Linuxでは Windowsでは
(3) MediaSizeからMediaSizeNameが得られるかのテスト Linuxでは Windowsでは
(3) のポイントは.getSupportedAttributeValues()
(3) 同様な方法で長形3号のマップを得る Linuxでは Windowsでは
(4) getSupportedAttributeCategories()ちょっと戻って Linuxでは Windowsでは
(5) getSupportedDocFlavors()・指定可能な印刷データ形式 Linuxでは Windowsでは
(6) getAttributes()・PrintServiceAttributeSetを得る Linuxでは Windowsでは
(7) getAttribute()・PrintServiceAttributeSetの個別の値 Linuxでは Windowsでは
(8) getDefaultAttributeValue()・各属性のデフォルトを問う Linuxでは Windowsでは
(9) isAttributeValueSupported()・ISO_A3 を使えるかなど Linuxでは Windowsでは
(10) MediaPrintableArea.class・Media.class だけでなく Linuxでは Linux-2
Windowsでは Windows-2
(11) PrinterResolution.class・Win仮想デバイスのみ使用 Linuxでは Windowsでは
(12) Fidelity.class・Winのみ Linuxでは windows
(13):MediaSize DUMP・(3)で大きさで選別される前のMediaSizeの一覧 Linuxでは windows

プリンタから情報を取る

Java PrintServiceインターフェースのメソッドでプリンタ(ドライバ)から情報を得ることを考える。

特にプリンタで使える用紙についての情報が、Java内だけでは足りない。

今回注目するのは、getSupportedAttributeValues()。これでMediaSizeに登録されているのに、MediaSizeNameにない用紙を PrintRequestAttributeSetに指定することができるようになる。

加えてPrintServiceにある使えそうなメソッドについて試してみる。Linux(Debian9)とWindows10の両方で結果を書き出している。

(0) lookupPrintServices()

まず、番外でlookupPrintServices()メソッド。番外なのは、PrintServiceインターフェースのメソッドでないから。PrinterJobとPrintServiceLookupの両方のクラスにメソッドがある。

lookupの使い方やOSで拾うサービスの数に違いが出る

PrinterJobのもの(2,null,null)、PrintServiceLookupのものを無指定で使った場合(3,null,null)、PrintServiceLookupをMediaSizeNameを指定して制限した場合(3,null,rqset)の3通り

import java.awt.print.*;
import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
import java.time.*;
import java.time.format.*;
/** 
 PrintTest01.java
 2019-05 adachi
*/
public class PrintTest01 {

    public static void main(String[] args) {
        PrintRequestAttributeSet rqset = new HashPrintRequestAttributeSet();
        rqset.add(MediaSizeName.ISO_A4);
        PrintService[] svs = null;

        svs = listPrinters(2,null,null);
        System.out.println("pj's lookup "+svs.length+" services found");

        svs = listPrinters(3,null,null);
        System.out.println("n,n  lookup "+svs.length+" services found");

        svs = listPrinters(3,null,rqset);
        System.out.println("n,rq lookup "+svs.length+" services found");
        
        System.out.println(">> printer list");
        System.out.println("sv.getName()  \t|| sv.toString()");
        for(PrintService sv:svs){
            System.out.println(sv.getName()+"\t||"+sv.toString());
        }
    }
    /**lookupPrintServices() test
     * lookupの使い方やOSで拾うサービスの数に違いが出る */
    public static PrintService[] listPrinters(int way, DocFlavor flv, PrintRequestAttributeSet rqset) {
        PrintService[] svs = null;
        if (way == 2){
            PrinterJob pj = PrinterJob.getPrinterJob();
            svs = pj.lookupPrintServices();
        }else if(way == 3){
            svs = PrintServiceLookup.lookupPrintServices(flv,rqset);
        }
        return svs;
    }
}

結果は制限を加えないものは当然同等。LinuxとWindowsではインストールされているプリンタが異なるが、A4までしか使えないMp493とA3まで使えるPX-1700Fは両方にドライバがあり両方で使っている。

Linuxでは

A3指定するとPX-1700Fのみ検出される。(1の部分)

adachi@debian64:/media/adachi/S1T/java/print01$ java PrintTest01
pj's lookup 7 services found
n,n  lookup 7 services found
n,rq lookup 1 services found
>> printer list
sv.getName()  	|| sv.toString()
EPSON_EPSON_PX-1700F	||IPP Printer : EPSON_EPSON_PX-1700F

A4にすると、プリンタは増える

adachi@debian64:/media/adachi/S1T/java/print01$ javac PrintTest01.java 
adachi@debian64:/media/adachi/S1T/java/print01$ java PrintTest01
pj's lookup 7 services found
n,n  lookup 7 services found
n,rq lookup 7 services found
>> printer list
sv.getName()  	|| sv.toString()
Canon_MP493_A4	||IPP Printer : Canon_MP493_A4
Canon_MP493_chou3	||IPP Printer : Canon_MP493_chou3
Canon_MP493_hagaki	||IPP Printer : Canon_MP493_hagaki
Canon_MP493_hagaki_fuchinashi	||IPP Printer : Canon_MP493_hagaki_fuchinashi
Canon_MP493_series	||IPP Printer : Canon_MP493_series
Canon_MP493_you2	||IPP Printer : Canon_MP493_you2
EPSON_EPSON_PX-1700F	||IPP Printer : EPSON_EPSON_PX-1700F

Canon_MP493は一台だが、デフォルトの用紙の異なる6つのサービスを登録している。

Windowsでは

A3でもたくさん出てくる

PS Z:\java\print01> java PrintTest01
pj's lookup 8 services found
n,n  lookup 8 services found
n,rq lookup 6 services found
>> printer list
sv.getName()  	|| sv.toString()
Microsoft XPS Document Writer	||Win32 Printer : Microsoft XPS Document Writer
Microsoft Print to PDF	||Win32 Printer : Microsoft Print to PDF
EPSON5AE8BC (PX-1700F)	||Win32 Printer : EPSON5AE8BC (PX-1700F)
EPSON PX-1700F	||Win32 Printer : EPSON PX-1700F
Canon MP493 series Printer	||Win32 Printer : Canon MP493 series Printer
Canon Inkjet iP9910	||Win32 Printer : Canon Inkjet iP9910

A4までのはずのMP493もA3で使えることになっている。

A4だとOneNoteとFaxが追加になって増える。Microsoft...と共に仮想的なサービスのようだ。

PS Z:\java\print01> java PrintTest01
pj's lookup 8 services found
n,n  lookup 8 services found
n,rq lookup 8 services found
>> printer list
sv.getName()     sv.toString()
OneNote	||Win32 Printer : OneNote
Microsoft XPS Document Writer	||Win32 Printer : Microsoft XPS Document Writer
Microsoft Print to PDF	||Win32 Printer : Microsoft Print to PDF
Fax	||Win32 Printer : Fax
EPSON5AE8BC (PX-1700F)	||Win32 Printer : EPSON5AE8BC (PX-1700F)
EPSON PX-1700F	||Win32 Printer : EPSON PX-1700F
Canon MP493 series Printer	||Win32 Printer : Canon MP493 series Printer
Canon Inkjet iP9910	||Win32 Printer : Canon Inkjet iP9910

(0)その結論

lookupPrintServices(null,rqset)でのA3指定はLinuxで有効だがWindowsでは無視される

Windowsで出てくる仮想的なサービスを簡単に見分ける方法がない。

(1) get­Supported­Attribute­Categories() 設定可能項目の分類名を得る

ここからPrinterServiceのメソッド

Attributeにはカテゴリーに分けられて属性が入っている。属性といえば、Key-Valueの組み合わせのように感ずるが、格納先がAttributeSetなので、厳密には値だけ。しかし、値はあるクラスのインスタンスなので、クラスがKey, インスタンスがValueのような位置づけになっている

説明が、

Class<?>[] 	getSupportedAttributeCategories()
  この印刷サービスのジョブ設定時に、クライアントが指定可能な印刷属性カテゴリを判別します。

使ったのは

Class[] ctgs = sv.getSupportedAttributeCategories();

サービスのリストをとった前のプログラムを流用したのでわかりにくいかもしれない。printCateg(PrintService sv)というメソッドの部分が今回の出力をしている部分。全部のプリンタで調べるのは長いので、Canon_MP493_series という名前のプリンタだけ調べるている。LinuxとWindowsでカテゴリの名前が異なるが、共通部分があった。

import java.awt.print.*;
import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
import java.time.*;
import java.time.format.*;
/** 
 PrintTest01.java
 2019-05 adachi
*/
public class PrintTest01 {

    public static void main(String[] args) {
        PrintRequestAttributeSet rqset = new HashPrintRequestAttributeSet();
        rqset.add(MediaSizeName.ISO_A4);
        PrintService[] svs = listPrinters(2,null,null);
        System.out.println("pj's lookup "+svs.length+" services found");
        svs = listPrinters(3,null,null);
        System.out.println("n,n  lookup "+svs.length+" services found");
        svs = listPrinters(3,null,rqset);
        System.out.println("n,rq lookup "+svs.length+" services found");
        
        System.out.println(">> printer list");
        PrintService pr1 = null;
        for(PrintService sv:svs){
            System.out.println(sv.getName());
            if(sv.getName().contains("Canon_MP493_series")) pr1=sv; //linux
            if(sv.getName().contains("Canon MP493 series")) pr1=sv; //win
                                    //アンダースコアのあるなしの違い
        }
        printCateg(pr1);
    }
    public static PrintService[] listPrinters(
            int way, DocFlavor flv, PrintRequestAttributeSet rqset) {
        PrintService[] svs = null;
        if (way == 2){
            PrinterJob pj = PrinterJob.getPrinterJob();
            svs = pj.lookupPrintServices();
        }else if(way == 3){
            svs = PrintServiceLookup.lookupPrintServices(flv,rqset);
        }
        return svs;
    }
    public static void printCateg(PrintService sv){
        System.out.println(">> category list");
        System.out.println("> "+sv.getName());
        Class[] ctgs = sv.getSupportedAttributeCategories();
        for(Class ctg:ctgs){
           System.out.println(ctg);
        }
    }
}

Linuxでは

Linux,Windowsでは異なるカテゴリもある。を付けたのはよく見るクラス。

>> category list
> Canon_MP493_series
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Finishings
class javax.print.attribute.standard.JobSheets
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.NumberUp
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Sides
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.Chromaticity

Windowsでは

>> category list
> Canon MP493 series Printer
class javax.print.attribute.standard.JobName
class javax.print.attribute.standard.RequestingUserName
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Fidelity
class javax.print.attribute.standard.SheetCollate
class sun.print.SunAlternateMedia
class javax.print.attribute.standard.Chromaticity
class javax.print.attribute.standard.Sides
class javax.print.attribute.standard.PrintQuality

(2)get­Supported­Attribute­Values()

if(job==2){
    System.out.println(">>("+job+") printerSupportedAtrributes DUMP");
    Media[] meds = (Media[])pr1.getSupportedAttributeValues(Media.class, null, null);
    for (Media med : meds) {
        System.out.print(med.getValue());
        System.out.print(",\t"+ med.getClass());
        System.out.println(",\t"+ med.toString()); 
    }//for
}//if

Canon_MP493_seriesの用紙だけを調べています。

説明としては、

Object getSupportedAttributeValues(Class<? extends Attribute> category,
                                   DocFlavor flavor,
                                   AttributeSet attributes)

MediaというクラスはAttributeインタフェースを持ちます。MediaSizeNameクラスの親クラスです。

戻値はObjectなので何でもありですが、Media.classを引数にすると、MediaSizeNameやMediaTrayやMediaNameのインスタンスの配列が返ります。

そこでキャストしてから、代入します。

Media[] meds = (Media[])pr1.getSupportedAttributeValues(Media.class, null, null);

ここで、pr1はCanon_MP493_seriesです。

med.getValue() Mediaの値は実際には intです。MediaSizeから値を取り出すkeyなのでしょう
med.getClass() Class はJavax....の他に sun....がある。
med.toString() MediaSizeNameのフィールド名といっていいのか

Linuxでは

>>(2) printerSupportedAtrributes DUMP
40,	class javax.print.attribute.standard.MediaSizeName,	na-letter
41,	class javax.print.attribute.standard.MediaSizeName,	na-legal
42,	class javax.print.attribute.standard.MediaSizeName,	executive
48,	class javax.print.attribute.standard.MediaSizeName,	japanese-postcard
4,	class sun.print.CustomMediaSizeName,	CD - 5 inch
5,	class sun.print.CustomMediaSizeName,	CD - 3 inch
6,	class sun.print.CustomMediaSizeName,	CD - Custom
7,	class sun.print.CustomMediaSizeName,	3x5
8,	class sun.print.CustomMediaSizeName,	3.5x4.7
18,	class javax.print.attribute.standard.MediaSizeName,	iso-b7
18,	class javax.print.attribute.standard.MediaSizeName,	iso-b7
11,	class sun.print.CustomMediaSizeName,	2x6
12,	class sun.print.CustomMediaSizeName,	4x6
12,	class sun.print.CustomMediaSizeName,	4x6
14,	class sun.print.CustomMediaSizeName,	4.5x6
15,	class sun.print.CustomMediaSizeName,	Epson 4x6 Photo Paper (tear-off borders)
140,	class sun.print.CustomMediaSizeName,	148x105 mm label
17,	class sun.print.CustomMediaSizeName,	4x8
18,	class sun.print.CustomMediaSizeName,	4.7x7
71,	class javax.print.attribute.standard.MediaSizeName,	na-5x7
71,	class javax.print.attribute.standard.MediaSizeName,	na-5x7
21,	class sun.print.CustomMediaSizeName,	5x8
22,	class sun.print.CustomMediaSizeName,	6x6
23,	class sun.print.CustomMediaSizeName,	6x8
24,	class sun.print.CustomMediaSizeName,	6x8.5
64,	class javax.print.attribute.standard.MediaSizeName,	na-6x9-envelope
72,	class javax.print.attribute.standard.MediaSizeName,	na-8x10
72,	class javax.print.attribute.standard.MediaSizeName,	na-8x10
45,	class javax.print.attribute.standard.MediaSizeName,	invoice
29,	class sun.print.CustomMediaSizeName,	5x5
30,	class sun.print.CustomMediaSizeName,	8x8
31,	class sun.print.CustomMediaSizeName,	8x10.75
32,	class sun.print.CustomMediaSizeName,	8x12
33,	class sun.print.CustomMediaSizeName,	8.5x12
4,	class javax.print.attribute.standard.MediaSizeName,	iso-a4
142,	class sun.print.CustomMediaSizeName,	210x148 mm label
6,	class javax.print.attribute.standard.MediaSizeName,	iso-a6
7,	class javax.print.attribute.standard.MediaSizeName,	iso-a7
8,	class javax.print.attribute.standard.MediaSizeName,	iso-a8
9,	class javax.print.attribute.standard.MediaSizeName,	iso-a9
10,	class javax.print.attribute.standard.MediaSizeName,	iso-a10
33,	class sun.print.CustomMediaSizeName,	8.5x12
16,	class javax.print.attribute.standard.MediaSizeName,	iso-b5
17,	class javax.print.attribute.standard.MediaSizeName,	iso-b6
139,	class sun.print.CustomMediaSizeName,	125x88 mm label
19,	class javax.print.attribute.standard.MediaSizeName,	iso-b8
20,	class javax.print.attribute.standard.MediaSizeName,	iso-b9
21,	class javax.print.attribute.standard.MediaSizeName,	iso-b10
27,	class javax.print.attribute.standard.MediaSizeName,	jis-b5
28,	class javax.print.attribute.standard.MediaSizeName,	jis-b6
29,	class javax.print.attribute.standard.MediaSizeName,	jis-b7
30,	class javax.print.attribute.standard.MediaSizeName,	jis-b8
31,	class javax.print.attribute.standard.MediaSizeName,	jis-b9
32,	class javax.print.attribute.standard.MediaSizeName,	jis-b10
38,	class javax.print.attribute.standard.MediaSizeName,	iso-c5
55,	class sun.print.CustomMediaSizeName,	B6-C4
57,	class sun.print.CustomMediaSizeName,	C6 landscape
637,	class sun.print.CustomMediaSizeName,	C6 landscape
55,	class javax.print.attribute.standard.MediaSizeName,	iso-designated-long
59,	class sun.print.CustomMediaSizeName,	C7-6
640,	class sun.print.CustomMediaSizeName,	C7-6 landscape
61,	class sun.print.CustomMediaSizeName,	C7
642,	class sun.print.CustomMediaSizeName,	C7 landscape
63,	class sun.print.CustomMediaSizeName,	C8
644,	class sun.print.CustomMediaSizeName,	C8 landscape
65,	class sun.print.CustomMediaSizeName,	C9
646,	class sun.print.CustomMediaSizeName,	C9 landscape
67,	class sun.print.CustomMediaSizeName,	C10
648,	class sun.print.CustomMediaSizeName,	C10 landscape
69,	class sun.print.CustomMediaSizeName,	EA5
46,	class javax.print.attribute.standard.MediaSizeName,	folio
71,	class sun.print.CustomMediaSizeName,	Crown Quarto
72,	class sun.print.CustomMediaSizeName,	Large Crown Quarto
73,	class sun.print.CustomMediaSizeName,	Crown Octavo
74,	class sun.print.CustomMediaSizeName,	Large Crown Octavo
45,	class javax.print.attribute.standard.MediaSizeName,	invoice
76,	class sun.print.CustomMediaSizeName,	Royal Octavo
77,	class sun.print.CustomMediaSizeName,	Small paperback
78,	class sun.print.CustomMediaSizeName,	Penguin small paperback
74,	class sun.print.CustomMediaSizeName,	Large Crown Octavo
48,	class javax.print.attribute.standard.MediaSizeName,	japanese-postcard
48,	class javax.print.attribute.standard.MediaSizeName,	japanese-postcard
49,	class javax.print.attribute.standard.MediaSizeName,	oufuko-postcard
83,	class sun.print.CustomMediaSizeName,	Japanese long envelope #3
84,	class sun.print.CustomMediaSizeName,	Japanese long envelope #4
665,	class sun.print.CustomMediaSizeName,	Japanese long envelope #4 landscape
86,	class sun.print.CustomMediaSizeName,	Japanese Western-style envelope #4
87,	class sun.print.CustomMediaSizeName,	Japanese Western-style envelope #6
668,	class sun.print.CustomMediaSizeName,	Japanese Western-style envelope #6 landscape
60,	class javax.print.attribute.standard.MediaSizeName,	na-number-10-envelope
90,	class sun.print.CustomMediaSizeName,	A2 Invitation
92,	class sun.print.CustomMediaSizeName,	Monarch Envelope landscape
672,	class sun.print.CustomMediaSizeName,	Monarch Envelope landscape
93,	class sun.print.CustomMediaSizeName,	4x5 3/8
94,	class sun.print.CustomMediaSizeName,	4x7
95,	class sun.print.CustomMediaSizeName,	Wide 101.6x180.6
8,	class sun.print.CustomMediaSizeName,	3.5x4.7
97,	class sun.print.CustomMediaSizeName,	Credit Card
98,	class sun.print.CustomMediaSizeName,	Japanese Business Card
99,	class sun.print.CustomMediaSizeName,	Wide Postcard
46,	class javax.print.attribute.standard.MediaSizeName,	folio
12,	class sun.print.CustomMediaSizeName,	4x6
102,	class sun.print.CustomMediaSizeName,	1.00x4.00 in label
103,	class sun.print.CustomMediaSizeName,	1.31x4.00 in label
104,	class sun.print.CustomMediaSizeName,	0.56x3.44 in label
105,	class sun.print.CustomMediaSizeName,	3.19x3.50 in label
106,	class sun.print.CustomMediaSizeName,	1.00x2.63 in label
687,	class sun.print.CustomMediaSizeName,	2.00x1.00 in label
688,	class sun.print.CustomMediaSizeName,	2.00x1.50 in label
109,	class sun.print.CustomMediaSizeName,	2.00x4.00 in label
110,	class sun.print.CustomMediaSizeName,	2.25x5.50 in label
691,	class sun.print.CustomMediaSizeName,	3.00x2.00 in label
112,	class sun.print.CustomMediaSizeName,	3.00x3.00 in label
693,	class sun.print.CustomMediaSizeName,	3.19x1.75 in label
694,	class sun.print.CustomMediaSizeName,	3.50x2.00 in label
695,	class sun.print.CustomMediaSizeName,	4.00x2.00 in label
696,	class sun.print.CustomMediaSizeName,	4.00x3.00 in label
117,	class sun.print.CustomMediaSizeName,	4.00x4.00 in label
118,	class sun.print.CustomMediaSizeName,	4.00x5.00 in label
119,	class sun.print.CustomMediaSizeName,	4.00x6.50 in label
17,	class sun.print.CustomMediaSizeName,	4x8
121,	class sun.print.CustomMediaSizeName,	4.00x13.00 in label
702,	class sun.print.CustomMediaSizeName,	6.00x2.00 in label
703,	class sun.print.CustomMediaSizeName,	6.00x3.00 in label
704,	class sun.print.CustomMediaSizeName,	6.00x4.00 in label
705,	class sun.print.CustomMediaSizeName,	6.00x5.00 in label
22,	class sun.print.CustomMediaSizeName,	6x6
32,	class sun.print.CustomMediaSizeName,	8x12
708,	class sun.print.CustomMediaSizeName,	8.50x6.00 in label
40,	class javax.print.attribute.standard.MediaSizeName,	na-letter
130,	class sun.print.CustomMediaSizeName,	2.50x3.13 in label
131,	class sun.print.CustomMediaSizeName,	0.50x1.75 in label
132,	class sun.print.CustomMediaSizeName,	1.75x3.00 in label
133,	class sun.print.CustomMediaSizeName,	0.75x5.75 label
714,	class sun.print.CustomMediaSizeName,	44x31 mm label
715,	class sun.print.CustomMediaSizeName,	62x44 mm label
716,	class sun.print.CustomMediaSizeName,	74x52 mm label
717,	class sun.print.CustomMediaSizeName,	88x62 mm label
718,	class sun.print.CustomMediaSizeName,	105x74 mm label
719,	class sun.print.CustomMediaSizeName,	125x88 mm label
720,	class sun.print.CustomMediaSizeName,	148x105 mm label
721,	class sun.print.CustomMediaSizeName,	176x125 mm label
722,	class sun.print.CustomMediaSizeName,	210x148 mm label
143,	class sun.print.CustomMediaSizeName,	8x5+8x4
724,	class sun.print.CustomMediaSizeName,	Custom
4,	class sun.print.CustomMediaTray,	Rear tray

Windowsでは

>>(2) printerSupportedAtrributes DUMP
40,	class javax.print.attribute.standard.MediaSizeName,	na-letter
41,	calss javax.print.attribute.standard.MediaSizeName,	na-legal
5,	calss javax.print.attribute.standard.MediaSizeName,	iso-a5
4,	calss javax.print.attribute.standard.MediaSizeName,	iso-a4
27,	calss javax.print.attribute.standard.MediaSizeName,	jis-b5
111,	calss sun.print.Win32MediaSize,	KG
77,	calss sun.print.Win32MediaSize,	US 4x8
71,	calss javax.print.attribute.standard.MediaSizeName,	na-5x7
72,	calss javax.print.attribute.standard.MediaSizeName,	na-8x10
78,	calss sun.print.Win32MediaSize,	L判
88,	calss sun.print.Win32MediaSize,	2L判
48,	calss javax.print.attribute.standard.MediaSizeName,	japanese-postcard
49,	calss javax.print.attribute.standard.MediaSizeName,	oufuko-postcard
60,	calss javax.print.attribute.standard.MediaSizeName,	na-number-10-envelope
55,	calss javax.print.attribute.standard.MediaSizeName,	iso-designated-long
112,	calss sun.print.Win32MediaSize,	長形3号
113,	calss sun.print.Win32MediaSize,	長形4号
114,	calss sun.print.Win32MediaSize,	洋形4号
57,	calss javax.print.attribute.standard.MediaSizeName,	monarch-envelope
79,	calss sun.print.Win32MediaSize,	名刺
80,	calss sun.print.Win32MediaSize,	ワイド 101.6x180.6mm
115,	calss sun.print.Win32MediaSize,	レターノビ (拡大縮小)
44,	calss javax.print.attribute.standard.MediaSizeName,	tabloid
116,	calss sun.print.Win32MediaSize,	13.5x17 (拡大縮小)
52,	calss javax.print.attribute.standard.MediaSizeName,	c
117,	calss sun.print.Win32MediaSize,	A4ノビ (拡大縮小)
3,	calss javax.print.attribute.standard.MediaSizeName,	iso-a3
118,	calss sun.print.Win32MediaSize,	A3ノビ (拡大縮小)
2,	calss javax.print.attribute.standard.MediaSizeName,	iso-a2
26,	calss javax.print.attribute.standard.MediaSizeName,	jis-b4
25,	calss javax.print.attribute.standard.MediaSizeName,	jis-b3
119,	calss sun.print.Win32MediaSize,	四切 (拡大縮小)
120,	calss sun.print.Win32MediaSize,	半切 (拡大縮小)
122,	calss sun.print.Win32MediaSize,	ユーザー定義用紙...
86,	calss sun.print.Win32MediaSize,	US 5x7
87,	calss sun.print.Win32MediaSize,	六切
49,	calss sun.print.Win32MediaSize,	往復はがき
89,	calss sun.print.Win32MediaSize,	洋形6号
121,	calss sun.print.Win32MediaSize,	B3 (拡大縮小)
1,	calss sun.print.Win32MediaTray,	Automatic-Feeder

(3) Media­SizeからMedia­Size­Nameが得られるかのテスト

やはり流用なので醜いが、前のサービスを引数にprintCateg(PrintService sv)を呼ぶ代わりに、printerSupportedAtrributes(PrintService sv)を呼んで MediaSizeNameを得る。

printerSupportedAtrributes(PrintService printer)はプログラム内部のstaticメソッドで長形3号の大きさ(120x235)に合うMediaSizeNameを返す。

JavaのMediaSizeNameに登録されていない長形3号が得られるという所が大事。

戻ってきたMediaSizeNameをPrintRequestAttributeSetに加えて、プリンタダイアログを出すとその用紙サイズが初期値になっている。というもの。

import java.awt.print.*;
import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
import java.time.*;
import java.time.format.*;
/** 
 PrintTest01.java
 2019-05 adachi
*/
public class PrintTest01 {

    public static void main(String[] args) {
        PrintRequestAttributeSet rqset = new HashPrintRequestAttributeSet();
        rqset.add(MediaSizeName.ISO_A4);
        PrintService[] svs = listPrinters(2,null,null);
        System.out.println("pj's lookup "+svs.length+" services found");
        svs = listPrinters(3,null,null);
        System.out.println("n,n  lookup "+svs.length+" services found");
        svs = listPrinters(3,null,rqset);
        System.out.println("n,rq lookup "+svs.length+" services found");
        
        System.out.println(">> printer list");
        PrintService pr1 = null;
        for(PrintService sv:svs){
            System.out.println(sv.getName());
            if(sv.getName().contains("Canon_MP493_series")) pr1=sv; //linux
            if(sv.getName().contains("Canon MP493 series")) pr1=sv; //win
        }
        //printCateg(pr1);
        MediaSizeName msn = printerSupportedAtrributes(pr1);
        System.out.println(msn.toString());
        rqset.add(msn);
        PrintService service = ServiceUI.printDialog(
            null, 200, 200, svs, pr1, null, rqset);
        if (service != null) {
            //DocPrintJob dpj = service.createPrintJob();
            //Printable pable = new SomethingPrintable05();
            //Doc doc = new SimpleDoc(pable, flv, null);
            System.out.println(service + ">> selected");
        }

    }
    public static PrintService[] listPrinters(
            int way, DocFlavor flv, PrintRequestAttributeSet rqset) {
        PrintService[] svs = null;
        if (way == 2){
            PrinterJob pj = PrinterJob.getPrinterJob();
            svs = pj.lookupPrintServices();
        }else if(way == 3){
            svs = PrintServiceLookup.lookupPrintServices(flv,rqset);
        }
        return svs;
    }
    public static void printCateg(PrintService sv){
        System.out.println(">> category list");
        System.out.println("> "+sv.getName());
        Class[] ctgs = sv.getSupportedAttributeCategories();
        for(Class ctg:ctgs){
           System.out.println(ctg);
        }
    }

    public static MediaSizeName printerSupportedAtrributes(PrintService printer) {
        MediaSizeName retmsn = null;
        Media[] meds = (Media[])printer.getSupportedAttributeValues(Media.class, null, null);
        for (Media med : meds) {
            if(med instanceof MediaSizeName){
                MediaSizeName msn = (MediaSizeName)med;
                MediaSize ms = MediaSize.getMediaSizeForName(msn);
                if(ms!=null){
                    float msx = ms.getX(MediaSize.MM);
                    float msy = ms.getY(MediaSize.MM);
                    float msxi = ms.getX(MediaSize.INCH);
                    float msyi = ms.getY(MediaSize.INCH);
                    // MediaSizeName msn = ms.getMediaSizeName();
                    if(2>Math.abs(msx-120) && 2>Math.abs(msy-235)){
                        System.out.println(msx+" "+msy+" : "+msn.toString());
                        retmsn = msn;
                    }//g
                 }
            }
        }
        return retmsn;
    }
}

Linuxでは

adachi@debian64:/media/adachi/S1T/java/print01$ java PrintTest01
pj's lookup 7 services found
n,n  lookup 7 services found
n,rq lookup 7 services found
>> printer list
Canon_MP493_A4
Canon_MP493_chou3
Canon_MP493_hagaki
Canon_MP493_hagaki_fuchinashi
Canon_MP493_series
Canon_MP493_you2
EPSON_EPSON_PX-1700F
119.944 234.95 : Japanese long envelope #3
Japanese long envelope #3

Windowsでは

PS Z:\java\print01> java PrintTest01
pj's lookup 8 services found
n,n  lookup 8 services found
n,rq lookup 8 services found
>> printer list
OneNote
Microsoft XPS Document Writer
Microsoft Print to PDF
Fax
EPSON5AE8BC (PX-1700F)
EPSON PX-1700F
Canon MP493 series Printer
Canon Inkjet iP9910
120.0 235.0 : 長形3号
長形3号

(3)のポイントは.get­Supported­Attribute­Values()

(Media[])pr1.get­Supported­Attribute­Values(Media.class, null, null);で得られたMediaは、 MediaSizeNameかMediaTrayかMediaNameのどれかですから、MediaSizeNameのときだけ取り出して、キャストしてMediaSizeNameに代入します。

これからMediaSize.getMediaSizeForName()メソッドでMediaSizeを求めます。

サービス(プリンタ)から得られたものから探しているので、長形3号も入っている可能性があります。

MediaSizeのインスタンスから縦横の長さを求め、(120x235)に近いかを確認します。

インチも用意しましたが、探す値がインチでなければmmで十分でしょう。

とりあえず差が2mm以内ということでチェックしています。

見つかったら、対応するMediaSizeNameを返します。

複数見つかったらあとの方のMediaSizeNameが返ります。

Linuxでは 119.944 234.95 : Japanese long envelope #3 
Windowsでは 120.0 235.0 : 長形3号 

同じプリンタですが、呼び名が異なります。

(3) 同様な方法で長形3号のマップを得る

プログラムはPrintTest04.javaだが、他の結果に使ったメソッドが残っている。

サービスのリストから、長形3号の大きさに対応するプリンタを探し、サービス->MediaSizeNameのマップとして返す。

マップにする理由はプリンタによりMediaSizeNameが異なるから。

マップから配列を作ってプリンタの選択肢に、MediaSizeNameはとりあえず0番のものを使用。

今後入れたい機構

1.今後デフォルトプリンタがあればそれを初期値にする。

2.選択したプリンタによりMediaSizeNameを設定し直す。

import java.awt.print.*;
import java.util.*;
import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
import java.time.*;
import java.time.format.*;
/** 
 PrintTest04.java
 サービスの配列とサイズ(x,y)から
 対応できるサービスとMediaSizeNameのMapを返し、
 2つの配列に分離。MediaSizeNameの[0]をeqsetに追加
 サービスの配列をダイアログに渡す。
 MediaSizeNameが異なるプリンタに切り替える時にはMediaSizeNameも
 変える必要がある。listnerを使えばできるだろうか
 2019-5-27 adachi
 from PrintTest01.java
 1.lookupを比較
 プリンタをCanon MP493 seriesに限定して
 2.Categoryを列挙して比較
 3.service.getSupportedAttributeValues()からMediaを得て
   X,Yから 長形3号を得る
 2019-5-26 adachi
*/
public class PrintTest04 {

    public static void main(String[] args) {
        PrintRequestAttributeSet rqset = new HashPrintRequestAttributeSet();
        rqset.add(MediaSizeName.ISO_A4);
        PrintService[] svs = listPrinters(2,null,null);
        System.out.println("pj's lookup "+svs.length+" services found");
        svs = listPrinters(3,null,null);
        System.out.println("n,n  lookup "+svs.length+" services found");
        svs = listPrinters(3,null,rqset);
        System.out.println("n,rq lookup "+svs.length+" services found");
        
        System.out.println(">> printer list");
        PrintService pr1 = null;
        for(PrintService sv:svs){
            System.out.println(sv.getName());
        }
        //printCateg(pr1);
        Map<PrintService,MediaSizeName> svmap = 
                getSupportedPrinterMap(svs,120f,235f);
        for (Map.Entry<PrintService,MediaSizeName> entry : svmap.entrySet()) {
            System.out.print("printer: "   + entry.getKey().getName()  );
            System.out.println(" MediaSizeName: " + entry.getValue().toString() );
        }//for
        /*
        Set<K> 	keySet()
        Collection<V> 	values()
        String[] y = x.toArray(new String[0]);
        */
        if(svmap.size()>0){
            PrintService[] ssvs = svmap.keySet().toArray(new PrintService[0]);
            MediaSizeName[] smsn = svmap.values().toArray(new MediaSizeName[0]);
            rqset.add(smsn[0]);
            PrintService service = ServiceUI.printDialog(
                null, 200, 200, ssvs, ssvs[0], null, rqset);
            if (service != null) {
                //DocPrintJob dpj = service.createPrintJob();
                //Printable pable = new SomethingPrintable05();
                //Doc doc = new SimpleDoc(pable, flv, null);
                System.out.println(service + ">> selected");
            }//notnull
        }//size>0

    }
    public static Map<PrintService,MediaSizeName> getSupportedPrinterMap(
                  PrintService[] svs, float x, float y){
        Map<PrintService,MediaSizeName> svmap = new LinkedHashMap<>();
        for (PrintService sv : svs) {
            MediaSizeName retmsn = null;
            Media[] meds = (Media[])sv.getSupportedAttributeValues(Media.class, null, null);
            for (Media med : meds) {
                if(med instanceof MediaSizeName){
                    MediaSizeName msn = (MediaSizeName)med;
                    MediaSize ms = MediaSize.getMediaSizeForName(msn);
                    if(ms!=null){
                        float msx = ms.getX(MediaSize.MM);
                        float msy = ms.getY(MediaSize.MM);
                        float msxi = ms.getX(MediaSize.INCH);
                        float msyi = ms.getY(MediaSize.INCH);
                        if(2>Math.abs(msx-x) && 2>Math.abs(msy-y)){
                            System.out.println(msx+" "+msy+" : "+msn.toString());
                            svmap.put(sv,msn);
                        }//abs
                     }//notnull
                }//med
            }//for meds
        }//for svs
        return svmap;
    }//method

    /** 3 */
    public static MediaSizeName printerSupportedAtrributes(PrintService printer) {
        MediaSizeName retmsn = null;
        Media[] meds = (Media[])printer.getSupportedAttributeValues(Media.class, null, null);
        for (Media med : meds) {
            if(med instanceof MediaSizeName){
                MediaSizeName msn = (MediaSizeName)med;
                MediaSize ms = MediaSize.getMediaSizeForName(msn);
                if(ms!=null){
                    float msx = ms.getX(MediaSize.MM);
                    float msy = ms.getY(MediaSize.MM);
                    float msxi = ms.getX(MediaSize.INCH);
                    float msyi = ms.getY(MediaSize.INCH);
                    // MediaSizeName msn = ms.getMediaSizeName();
                    if(2>Math.abs(msx-120) && 2>Math.abs(msy-235)){
                        System.out.println(msx+" "+msy+" : "+msn.toString());
                        retmsn = msn;
                    }//g
                 }
            }
        }
        return retmsn;
    }
    /** 1 */
    public static PrintService[] listPrinters(int way, DocFlavor flv, PrintRequestAttributeSet rqset) {
        PrintService[] svs = null;
        if (way == 2){
            PrinterJob pj = PrinterJob.getPrinterJob();
            svs = pj.lookupPrintServices();
        }else if(way == 3){
            svs = PrintServiceLookup.lookupPrintServices(flv,rqset);
        }
        return svs;
    }
    /** 2 */
    public static void printCateg(PrintService sv){
        System.out.println(">> category list");
        System.out.println("> "+sv.getName());
        Class[] ctgs = sv.getSupportedAttributeCategories();
        for(Class ctg:ctgs){
           System.out.println(ctg);
        }
    }

}

Linuxでは

adachi@debian64:/media/adachi/S1T/java/print01$ java PrintTest04
pj's lookup 7 services found
n,n  lookup 7 services found
n,rq lookup 7 services found
>> printer list
Canon_MP493_A4
Canon_MP493_chou3
Canon_MP493_hagaki
Canon_MP493_hagaki_fuchinashi
Canon_MP493_series
Canon_MP493_you2
EPSON_EPSON_PX-1700F
119.944 234.95 : Japanese long envelope #3
119.944 234.95 : Japanese long envelope #3
119.944 234.95 : Japanese long envelope #3
119.944 234.95 : Japanese long envelope #3
119.944 234.95 : Japanese long envelope #3
119.944 234.95 : Japanese long envelope #3
120.015 234.985 : Envelope 120 x 235 mm
printer: Canon_MP493_A4 MediaSizeName: Japanese long envelope #3
printer: Canon_MP493_chou3 MediaSizeName: Japanese long envelope #3
printer: Canon_MP493_hagaki MediaSizeName: Japanese long envelope #3
printer: Canon_MP493_hagaki_fuchinashi MediaSizeName: Japanese long envelope #3
printer: Canon_MP493_series MediaSizeName: Japanese long envelope #3
printer: Canon_MP493_you2 MediaSizeName: Japanese long envelope #3
printer: EPSON_EPSON_PX-1700F MediaSizeName: Envelope 120 x 235 mm

Windowsでは

PS Z:\java\print01> java PrintTest04
pj's lookup 8 services found
n,n  lookup 8 services found
n,rq lookup 8 services found
>> printer list
OneNote
Microsoft XPS Document Writer
Microsoft Print to PDF
Fax
EPSON5AE8BC (PX-1700F)
EPSON PX-1700F
Canon MP493 series Printer
Canon Inkjet iP9910
120.0 235.0 : 封筒 長形 3 号
120.0 235.0 : 封筒 長形 3 号
120.0 235.0 : 長形3号封筒 120 x 235 mm
120.0 235.0 : 長形3号封筒 120 x 235 mm
120.0 235.0 : 長形3号
120.0 235.0 : 長形3号
printer: Microsoft XPS Document Writer MediaSizeName: 封筒 長形 3 号
printer: Fax MediaSizeName: 封筒 長形 3 号
printer: EPSON5AE8BC (PX-1700F) MediaSizeName: 長形3号封筒 120 x 235 mm
printer: EPSON PX-1700F MediaSizeName: 長形3号封筒 120 x 235 mm
printer: Canon MP493 series Printer MediaSizeName: 長形3号
printer: Canon Inkjet iP9910 MediaSizeName: 長形3号

(4) get­Supported­Attribute­Categories()ちょっと戻って

プリンタごとに違いはないのかの確認

    /** (4)getSupportedAttributeCategories() test
        サポート属性のカテゴリー一覧 */
    public static void printCateg(PrintService sv){
        //System.out.println(">> category list");
        System.out.println("> "+sv.getName());
        Class[] ctgs = sv.getSupportedAttributeCategories();
        for(Class ctg:ctgs){
           System.out.println(ctg);
        }
    }

Linuxでは

>>(4) category list
> Canon_MP493_A4
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Finishings
class javax.print.attribute.standard.JobSheets
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.NumberUp
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Sides
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.Chromaticity
> Canon_MP493_chou3
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Finishings
class javax.print.attribute.standard.JobSheets
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.NumberUp
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Sides
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.Chromaticity
> Canon_MP493_hagaki
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Finishings
class javax.print.attribute.standard.JobSheets
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.NumberUp
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Sides
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.Chromaticity
> Canon_MP493_hagaki_fuchinashi
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Finishings
class javax.print.attribute.standard.JobSheets
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.NumberUp
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Sides
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.Chromaticity
> Canon_MP493_series
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Finishings
class javax.print.attribute.standard.JobSheets
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.NumberUp
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Sides
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.Chromaticity
> Canon_MP493_you2
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Finishings
class javax.print.attribute.standard.JobSheets
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.NumberUp
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Sides
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.Chromaticity
> EPSON_EPSON_PX-1700F
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Finishings
class javax.print.attribute.standard.JobSheets
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.NumberUp
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Sides
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.Chromaticity

Windowsでは

>>(4) category list
> OneNote
class javax.print.attribute.standard.JobName
class javax.print.attribute.standard.RequestingUserName
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Fidelity
class javax.print.attribute.standard.SheetCollate
class sun.print.SunAlternateMedia
class javax.print.attribute.standard.Chromaticity
class javax.print.attribute.standard.PrinterResolution
> Microsoft XPS Document Writer
class javax.print.attribute.standard.JobName
class javax.print.attribute.standard.RequestingUserName
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Fidelity
class javax.print.attribute.standard.SheetCollate
class sun.print.SunAlternateMedia
class javax.print.attribute.standard.Chromaticity
class javax.print.attribute.standard.PrinterResolution
> Microsoft Print to PDF
class javax.print.attribute.standard.JobName
class javax.print.attribute.standard.RequestingUserName
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Fidelity
class javax.print.attribute.standard.SheetCollate
class sun.print.SunAlternateMedia
class javax.print.attribute.standard.Chromaticity
class javax.print.attribute.standard.PrinterResolution
> Fax
class javax.print.attribute.standard.JobName
class javax.print.attribute.standard.RequestingUserName
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Fidelity
class javax.print.attribute.standard.SheetCollate
class sun.print.SunAlternateMedia
class javax.print.attribute.standard.Chromaticity
class javax.print.attribute.standard.Sides
class javax.print.attribute.standard.PrinterResolution
> EPSON5AE8BC (PX-1700F)
class javax.print.attribute.standard.JobName
class javax.print.attribute.standard.RequestingUserName
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Fidelity
class javax.print.attribute.standard.SheetCollate
class sun.print.SunAlternateMedia
class javax.print.attribute.standard.Chromaticity
class javax.print.attribute.standard.Sides
> EPSON PX-1700F
class javax.print.attribute.standard.JobName
class javax.print.attribute.standard.RequestingUserName
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Fidelity
class javax.print.attribute.standard.SheetCollate
class sun.print.SunAlternateMedia
class javax.print.attribute.standard.Chromaticity
class javax.print.attribute.standard.Sides
> Canon MP493 series Printer
class javax.print.attribute.standard.JobName
class javax.print.attribute.standard.RequestingUserName
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Fidelity
class javax.print.attribute.standard.SheetCollate
class sun.print.SunAlternateMedia
class javax.print.attribute.standard.Chromaticity
class javax.print.attribute.standard.Sides
class javax.print.attribute.standard.PrintQuality
> Canon Inkjet iP9910
class javax.print.attribute.standard.JobName
class javax.print.attribute.standard.RequestingUserName
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Fidelity
class javax.print.attribute.standard.SheetCollate
class sun.print.SunAlternateMedia
class javax.print.attribute.standard.Chromaticity
class javax.print.attribute.standard.Sides
class javax.print.attribute.standard.PrintQuality

(5) get­Supported­Doc­Flavors()

DocFlavor[] 	getSupportedDocFlavors()
  このPrintService用のジョブ設定時に、クライアントが指定可能な印刷データ形式を判定します。
    /** (5)getSupportedDocFlavors() test
        サポートフレーバーの一覧 */
    public static void printFlav(PrintService sv){
        //System.out.println(">> Flavor list");
        System.out.println("> "+sv.getName());
        DocFlavor[] flvs = sv.getSupportedDocFlavors();
        for(DocFlavor flv:flvs){
           System.out.println(flv);
        }
    }

Linuxでは

>>(5) Flavor list
> Canon_MP493_A4
application/octet-stream; class="java.io.InputStream"
application/octet-stream; class="java.net.URL"
image/gif; class="java.net.URL"
image/x-portable-anymap; class="[B"
image/x-portable-pixmap; class="java.net.URL"
text/plain; charset="utf-16"; class="java.io.InputStream"
text/html; charset="utf-16"; class="[B"
text/plain; charset="utf-8"; class="java.io.InputStream"
image/x-bitmap; class="java.net.URL"
image/x-xbitmap; class="java.net.URL"
application/postscript; class="java.io.InputStream"
image/tiff; class="java.net.URL"
application/vnd.cups-raw; class="java.net.URL"
text/html; charset="us-ascii"; class="[B"
text/plain; charset="utf-8"; class="[B"
image/x-sgi-rgb; class="java.net.URL"
application/x-perl; class="[B"
text/html; charset="utf-8"; class="java.io.InputStream"
text/plain; charset="us-ascii"; class="[B"
application/vnd.cups-pdf; class="java.net.URL"
text/html; charset="utf-16"; class="java.net.URL"
application/vnd.cups-postscript; class="java.net.URL"
image/x-xpixmap; class="java.io.InputStream"
text/plain; charset="utf-16le"; class="[B"
image/jpeg; class="java.net.URL"
image/x-xwindowdump; class="[B"
text/plain; charset="us-ascii"; class="java.io.InputStream"
application/vnd.cups-postscript; class="java.io.InputStream"
image/x-xbitmap; class="[B"
application/pdf; class="[B"
text/plain; charset="utf-16"; class="java.io.Reader"
text/plain; charset="utf-16be"; class="[B"
application/postscript; class="java.net.URL"
image/x-portable-bitmap; class="java.net.URL"
image/tiff; class="[B"
image/x-photocd; class="java.net.URL"
application/vnd.adobe-reader-postscript; class="[B"
image/x-portable-anymap; class="java.net.URL"
image/pwg-raster; class="[B"
application/pdf; class="java.io.InputStream"
application/pdf; class="java.net.URL"
text/html; charset="us-ascii"; class="java.io.InputStream"
image/x-portable-graymap; class="java.io.InputStream"
application/vnd.adobe-reader-postscript; class="java.net.URL"
application/vnd.cups-pdf-banner; class="java.net.URL"
image/pwg-raster; class="java.io.InputStream"
image/x-portable-graymap; class="java.net.URL"
text/html; charset="utf-16be"; class="java.io.InputStream"
image/jpeg; class="[B"
text/plain; charset="utf-16"; class="[B"
image/x-portable-bitmap; class="[B"
text/plain; charset="utf-16"; class="java.lang.String"
application/vnd.adobe-reader-postscript; class="java.io.InputStream"
text/css; class="java.net.URL"
application/x-shell; class="java.net.URL"
application/x-cshell; class="[B"
image/x-sun-raster; class="[B"
image/png; class="[B"
text/plain; charset="utf-16"; class="[C"
text/css; class="[B"
text/plain; charset="utf-16be"; class="java.io.InputStream"
application/x-csource; class="[B"
image/x-bitmap; class="[B"
image/x-photocd; class="[B"
application/vnd.cups-raster; class="[B"
application/x-perl; class="java.net.URL"
image/gif; class="java.io.InputStream"
application/x-shell; class="java.io.InputStream"
image/x-portable-bitmap; class="java.io.InputStream"
text/html; charset="utf-8"; class="[B"
image/x-sun-raster; class="java.io.InputStream"
text/plain; charset="utf-8"; class="java.net.URL"
image/x-sgi-rgb; class="java.io.InputStream"
application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
application/vnd.cups-raw; class="java.io.InputStream"
text/plain; charset="utf-16le"; class="java.io.InputStream"
application/x-csource; class="java.net.URL"
image/png; class="java.io.InputStream"
application/vnd.cups-pdf-banner; class="[B"
image/x-xwindowdump; class="java.net.URL"
application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
image/x-portable-graymap; class="[B"
text/plain; charset="utf-16le"; class="java.net.URL"
image/urf; class="java.io.InputStream"
text/html; charset="utf-16"; class="java.io.InputStream"
text/html; charset="utf-8"; class="java.net.URL"
application/octet-stream; class="[B"
image/jpeg; class="java.io.InputStream"
application/x-csource; class="java.io.InputStream"
application/vnd.cups-raster; class="java.net.URL"
application/x-perl; class="java.io.InputStream"
image/tiff; class="java.io.InputStream"
application/vnd.cups-pdf-banner; class="java.io.InputStream"
image/x-xbitmap; class="java.io.InputStream"
image/x-portable-pixmap; class="[B"
text/html; charset="utf-16le"; class="java.net.URL"
image/x-bitmap; class="java.io.InputStream"
text/css; class="java.io.InputStream"
application/vnd.cups-raw; class="[B"
image/urf; class="java.net.URL"
image/x-xwindowdump; class="java.io.InputStream"
application/vnd.cups-pdf; class="[B"
image/x-xpixmap; class="[B"
text/html; charset="utf-16le"; class="[B"
application/x-shell; class="[B"
image/png; class="java.net.URL"
text/html; charset="us-ascii"; class="java.net.URL"
application/x-cshell; class="java.io.InputStream"
application/vnd.cups-pdf; class="java.io.InputStream"
image/x-photocd; class="java.io.InputStream"
text/plain; charset="utf-16be"; class="java.net.URL"
text/html; charset="utf-16le"; class="java.io.InputStream"
image/pwg-raster; class="java.net.URL"
image/gif; class="[B"
text/plain; charset="us-ascii"; class="java.net.URL"
image/x-sun-raster; class="java.net.URL"
image/x-xpixmap; class="java.net.URL"
text/plain; charset="utf-16"; class="java.net.URL"
image/x-portable-pixmap; class="java.io.InputStream"
application/postscript; class="[B"
application/x-cshell; class="java.net.URL"
application/vnd.cups-postscript; class="[B"
application/vnd.cups-raster; class="java.io.InputStream"
image/x-sgi-rgb; class="[B"
image/x-portable-anymap; class="java.io.InputStream"
text/html; charset="utf-16be"; class="[B"
text/html; charset="utf-16be"; class="java.net.URL"
image/urf; class="[B"
> Canon_MP493_chou3
application/octet-stream; class="java.io.InputStream"
application/octet-stream; class="java.net.URL"
image/gif; class="java.net.URL"
image/x-portable-anymap; class="[B"
image/x-portable-pixmap; class="java.net.URL"
text/plain; charset="utf-16"; class="java.io.InputStream"
text/html; charset="utf-16"; class="[B"
text/plain; charset="utf-8"; class="java.io.InputStream"
image/x-bitmap; class="java.net.URL"
image/x-xbitmap; class="java.net.URL"
application/postscript; class="java.io.InputStream"
image/tiff; class="java.net.URL"
application/vnd.cups-raw; class="java.net.URL"
text/html; charset="us-ascii"; class="[B"
text/plain; charset="utf-8"; class="[B"
image/x-sgi-rgb; class="java.net.URL"
application/x-perl; class="[B"
text/html; charset="utf-8"; class="java.io.InputStream"
text/plain; charset="us-ascii"; class="[B"
application/vnd.cups-pdf; class="java.net.URL"
text/html; charset="utf-16"; class="java.net.URL"
application/vnd.cups-postscript; class="java.net.URL"
image/x-xpixmap; class="java.io.InputStream"
text/plain; charset="utf-16le"; class="[B"
image/jpeg; class="java.net.URL"
image/x-xwindowdump; class="[B"
text/plain; charset="us-ascii"; class="java.io.InputStream"
application/vnd.cups-postscript; class="java.io.InputStream"
image/x-xbitmap; class="[B"
application/pdf; class="[B"
text/plain; charset="utf-16"; class="java.io.Reader"
text/plain; charset="utf-16be"; class="[B"
application/postscript; class="java.net.URL"
image/x-portable-bitmap; class="java.net.URL"
image/tiff; class="[B"
image/x-photocd; class="java.net.URL"
application/vnd.adobe-reader-postscript; class="[B"
image/x-portable-anymap; class="java.net.URL"
image/pwg-raster; class="[B"
application/pdf; class="java.io.InputStream"
application/pdf; class="java.net.URL"
text/html; charset="us-ascii"; class="java.io.InputStream"
image/x-portable-graymap; class="java.io.InputStream"
application/vnd.adobe-reader-postscript; class="java.net.URL"
application/vnd.cups-pdf-banner; class="java.net.URL"
image/pwg-raster; class="java.io.InputStream"
image/x-portable-graymap; class="java.net.URL"
text/html; charset="utf-16be"; class="java.io.InputStream"
image/jpeg; class="[B"
text/plain; charset="utf-16"; class="[B"
image/x-portable-bitmap; class="[B"
text/plain; charset="utf-16"; class="java.lang.String"
application/vnd.adobe-reader-postscript; class="java.io.InputStream"
text/css; class="java.net.URL"
application/x-shell; class="java.net.URL"
application/x-cshell; class="[B"
image/x-sun-raster; class="[B"
image/png; class="[B"
text/plain; charset="utf-16"; class="[C"
text/css; class="[B"
text/plain; charset="utf-16be"; class="java.io.InputStream"
application/x-csource; class="[B"
image/x-bitmap; class="[B"
image/x-photocd; class="[B"
application/vnd.cups-raster; class="[B"
application/x-perl; class="java.net.URL"
image/gif; class="java.io.InputStream"
application/x-shell; class="java.io.InputStream"
image/x-portable-bitmap; class="java.io.InputStream"
text/html; charset="utf-8"; class="[B"
image/x-sun-raster; class="java.io.InputStream"
text/plain; charset="utf-8"; class="java.net.URL"
image/x-sgi-rgb; class="java.io.InputStream"
application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
application/vnd.cups-raw; class="java.io.InputStream"
text/plain; charset="utf-16le"; class="java.io.InputStream"
application/x-csource; class="java.net.URL"
image/png; class="java.io.InputStream"
application/vnd.cups-pdf-banner; class="[B"
image/x-xwindowdump; class="java.net.URL"
application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
image/x-portable-graymap; class="[B"
text/plain; charset="utf-16le"; class="java.net.URL"
image/urf; class="java.io.InputStream"
text/html; charset="utf-16"; class="java.io.InputStream"
text/html; charset="utf-8"; class="java.net.URL"
application/octet-stream; class="[B"
image/jpeg; class="java.io.InputStream"
application/x-csource; class="java.io.InputStream"
application/vnd.cups-raster; class="java.net.URL"
application/x-perl; class="java.io.InputStream"
image/tiff; class="java.io.InputStream"
application/vnd.cups-pdf-banner; class="java.io.InputStream"
image/x-xbitmap; class="java.io.InputStream"
image/x-portable-pixmap; class="[B"
text/html; charset="utf-16le"; class="java.net.URL"
image/x-bitmap; class="java.io.InputStream"
text/css; class="java.io.InputStream"
application/vnd.cups-raw; class="[B"
image/urf; class="java.net.URL"
image/x-xwindowdump; class="java.io.InputStream"
application/vnd.cups-pdf; class="[B"
image/x-xpixmap; class="[B"
text/html; charset="utf-16le"; class="[B"
application/x-shell; class="[B"
image/png; class="java.net.URL"
text/html; charset="us-ascii"; class="java.net.URL"
application/x-cshell; class="java.io.InputStream"
application/vnd.cups-pdf; class="java.io.InputStream"
image/x-photocd; class="java.io.InputStream"
text/plain; charset="utf-16be"; class="java.net.URL"
text/html; charset="utf-16le"; class="java.io.InputStream"
image/pwg-raster; class="java.net.URL"
image/gif; class="[B"
text/plain; charset="us-ascii"; class="java.net.URL"
image/x-sun-raster; class="java.net.URL"
image/x-xpixmap; class="java.net.URL"
text/plain; charset="utf-16"; class="java.net.URL"
image/x-portable-pixmap; class="java.io.InputStream"
application/postscript; class="[B"
application/x-cshell; class="java.net.URL"
application/vnd.cups-postscript; class="[B"
application/vnd.cups-raster; class="java.io.InputStream"
image/x-sgi-rgb; class="[B"
image/x-portable-anymap; class="java.io.InputStream"
text/html; charset="utf-16be"; class="[B"
text/html; charset="utf-16be"; class="java.net.URL"
image/urf; class="[B"
> Canon_MP493_hagaki
application/octet-stream; class="java.io.InputStream"
application/octet-stream; class="java.net.URL"
image/gif; class="java.net.URL"
image/x-portable-anymap; class="[B"
image/x-portable-pixmap; class="java.net.URL"
text/plain; charset="utf-16"; class="java.io.InputStream"
text/html; charset="utf-16"; class="[B"
text/plain; charset="utf-8"; class="java.io.InputStream"
image/x-bitmap; class="java.net.URL"
image/x-xbitmap; class="java.net.URL"
application/postscript; class="java.io.InputStream"
image/tiff; class="java.net.URL"
application/vnd.cups-raw; class="java.net.URL"
text/html; charset="us-ascii"; class="[B"
text/plain; charset="utf-8"; class="[B"
image/x-sgi-rgb; class="java.net.URL"
application/x-perl; class="[B"
text/html; charset="utf-8"; class="java.io.InputStream"
text/plain; charset="us-ascii"; class="[B"
application/vnd.cups-pdf; class="java.net.URL"
text/html; charset="utf-16"; class="java.net.URL"
application/vnd.cups-postscript; class="java.net.URL"
image/x-xpixmap; class="java.io.InputStream"
text/plain; charset="utf-16le"; class="[B"
image/jpeg; class="java.net.URL"
image/x-xwindowdump; class="[B"
text/plain; charset="us-ascii"; class="java.io.InputStream"
application/vnd.cups-postscript; class="java.io.InputStream"
image/x-xbitmap; class="[B"
application/pdf; class="[B"
text/plain; charset="utf-16"; class="java.io.Reader"
text/plain; charset="utf-16be"; class="[B"
application/postscript; class="java.net.URL"
image/x-portable-bitmap; class="java.net.URL"
image/tiff; class="[B"
image/x-photocd; class="java.net.URL"
application/vnd.adobe-reader-postscript; class="[B"
image/x-portable-anymap; class="java.net.URL"
image/pwg-raster; class="[B"
application/pdf; class="java.io.InputStream"
application/pdf; class="java.net.URL"
text/html; charset="us-ascii"; class="java.io.InputStream"
image/x-portable-graymap; class="java.io.InputStream"
application/vnd.adobe-reader-postscript; class="java.net.URL"
application/vnd.cups-pdf-banner; class="java.net.URL"
image/pwg-raster; class="java.io.InputStream"
image/x-portable-graymap; class="java.net.URL"
text/html; charset="utf-16be"; class="java.io.InputStream"
image/jpeg; class="[B"
text/plain; charset="utf-16"; class="[B"
image/x-portable-bitmap; class="[B"
text/plain; charset="utf-16"; class="java.lang.String"
application/vnd.adobe-reader-postscript; class="java.io.InputStream"
text/css; class="java.net.URL"
application/x-shell; class="java.net.URL"
application/x-cshell; class="[B"
image/x-sun-raster; class="[B"
image/png; class="[B"
text/plain; charset="utf-16"; class="[C"
text/css; class="[B"
text/plain; charset="utf-16be"; class="java.io.InputStream"
application/x-csource; class="[B"
image/x-bitmap; class="[B"
image/x-photocd; class="[B"
application/vnd.cups-raster; class="[B"
application/x-perl; class="java.net.URL"
image/gif; class="java.io.InputStream"
application/x-shell; class="java.io.InputStream"
image/x-portable-bitmap; class="java.io.InputStream"
text/html; charset="utf-8"; class="[B"
image/x-sun-raster; class="java.io.InputStream"
text/plain; charset="utf-8"; class="java.net.URL"
image/x-sgi-rgb; class="java.io.InputStream"
application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
application/vnd.cups-raw; class="java.io.InputStream"
text/plain; charset="utf-16le"; class="java.io.InputStream"
application/x-csource; class="java.net.URL"
image/png; class="java.io.InputStream"
application/vnd.cups-pdf-banner; class="[B"
image/x-xwindowdump; class="java.net.URL"
application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
image/x-portable-graymap; class="[B"
text/plain; charset="utf-16le"; class="java.net.URL"
image/urf; class="java.io.InputStream"
text/html; charset="utf-16"; class="java.io.InputStream"
text/html; charset="utf-8"; class="java.net.URL"
application/octet-stream; class="[B"
image/jpeg; class="java.io.InputStream"
application/x-csource; class="java.io.InputStream"
application/vnd.cups-raster; class="java.net.URL"
application/x-perl; class="java.io.InputStream"
image/tiff; class="java.io.InputStream"
application/vnd.cups-pdf-banner; class="java.io.InputStream"
image/x-xbitmap; class="java.io.InputStream"
image/x-portable-pixmap; class="[B"
text/html; charset="utf-16le"; class="java.net.URL"
image/x-bitmap; class="java.io.InputStream"
text/css; class="java.io.InputStream"
application/vnd.cups-raw; class="[B"
image/urf; class="java.net.URL"
image/x-xwindowdump; class="java.io.InputStream"
application/vnd.cups-pdf; class="[B"
image/x-xpixmap; class="[B"
text/html; charset="utf-16le"; class="[B"
application/x-shell; class="[B"
image/png; class="java.net.URL"
text/html; charset="us-ascii"; class="java.net.URL"
application/x-cshell; class="java.io.InputStream"
application/vnd.cups-pdf; class="java.io.InputStream"
image/x-photocd; class="java.io.InputStream"
text/plain; charset="utf-16be"; class="java.net.URL"
text/html; charset="utf-16le"; class="java.io.InputStream"
image/pwg-raster; class="java.net.URL"
image/gif; class="[B"
text/plain; charset="us-ascii"; class="java.net.URL"
image/x-sun-raster; class="java.net.URL"
image/x-xpixmap; class="java.net.URL"
text/plain; charset="utf-16"; class="java.net.URL"
image/x-portable-pixmap; class="java.io.InputStream"
application/postscript; class="[B"
application/x-cshell; class="java.net.URL"
application/vnd.cups-postscript; class="[B"
application/vnd.cups-raster; class="java.io.InputStream"
image/x-sgi-rgb; class="[B"
image/x-portable-anymap; class="java.io.InputStream"
text/html; charset="utf-16be"; class="[B"
text/html; charset="utf-16be"; class="java.net.URL"
image/urf; class="[B"
> Canon_MP493_hagaki_fuchinashi
application/octet-stream; class="java.io.InputStream"
application/octet-stream; class="java.net.URL"
image/gif; class="java.net.URL"
image/x-portable-anymap; class="[B"
image/x-portable-pixmap; class="java.net.URL"
text/plain; charset="utf-16"; class="java.io.InputStream"
text/html; charset="utf-16"; class="[B"
text/plain; charset="utf-8"; class="java.io.InputStream"
image/x-bitmap; class="java.net.URL"
image/x-xbitmap; class="java.net.URL"
application/postscript; class="java.io.InputStream"
image/tiff; class="java.net.URL"
application/vnd.cups-raw; class="java.net.URL"
text/html; charset="us-ascii"; class="[B"
text/plain; charset="utf-8"; class="[B"
image/x-sgi-rgb; class="java.net.URL"
application/x-perl; class="[B"
text/html; charset="utf-8"; class="java.io.InputStream"
text/plain; charset="us-ascii"; class="[B"
application/vnd.cups-pdf; class="java.net.URL"
text/html; charset="utf-16"; class="java.net.URL"
application/vnd.cups-postscript; class="java.net.URL"
image/x-xpixmap; class="java.io.InputStream"
text/plain; charset="utf-16le"; class="[B"
image/jpeg; class="java.net.URL"
image/x-xwindowdump; class="[B"
text/plain; charset="us-ascii"; class="java.io.InputStream"
application/vnd.cups-postscript; class="java.io.InputStream"
image/x-xbitmap; class="[B"
application/pdf; class="[B"
text/plain; charset="utf-16"; class="java.io.Reader"
text/plain; charset="utf-16be"; class="[B"
application/postscript; class="java.net.URL"
image/x-portable-bitmap; class="java.net.URL"
image/tiff; class="[B"
image/x-photocd; class="java.net.URL"
application/vnd.adobe-reader-postscript; class="[B"
image/x-portable-anymap; class="java.net.URL"
image/pwg-raster; class="[B"
application/pdf; class="java.io.InputStream"
application/pdf; class="java.net.URL"
text/html; charset="us-ascii"; class="java.io.InputStream"
image/x-portable-graymap; class="java.io.InputStream"
application/vnd.adobe-reader-postscript; class="java.net.URL"
application/vnd.cups-pdf-banner; class="java.net.URL"
image/pwg-raster; class="java.io.InputStream"
image/x-portable-graymap; class="java.net.URL"
text/html; charset="utf-16be"; class="java.io.InputStream"
image/jpeg; class="[B"
text/plain; charset="utf-16"; class="[B"
image/x-portable-bitmap; class="[B"
text/plain; charset="utf-16"; class="java.lang.String"
application/vnd.adobe-reader-postscript; class="java.io.InputStream"
text/css; class="java.net.URL"
application/x-shell; class="java.net.URL"
application/x-cshell; class="[B"
image/x-sun-raster; class="[B"
image/png; class="[B"
text/plain; charset="utf-16"; class="[C"
text/css; class="[B"
text/plain; charset="utf-16be"; class="java.io.InputStream"
application/x-csource; class="[B"
image/x-bitmap; class="[B"
image/x-photocd; class="[B"
application/vnd.cups-raster; class="[B"
application/x-perl; class="java.net.URL"
image/gif; class="java.io.InputStream"
application/x-shell; class="java.io.InputStream"
image/x-portable-bitmap; class="java.io.InputStream"
text/html; charset="utf-8"; class="[B"
image/x-sun-raster; class="java.io.InputStream"
text/plain; charset="utf-8"; class="java.net.URL"
image/x-sgi-rgb; class="java.io.InputStream"
application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
application/vnd.cups-raw; class="java.io.InputStream"
text/plain; charset="utf-16le"; class="java.io.InputStream"
application/x-csource; class="java.net.URL"
image/png; class="java.io.InputStream"
application/vnd.cups-pdf-banner; class="[B"
image/x-xwindowdump; class="java.net.URL"
application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
image/x-portable-graymap; class="[B"
text/plain; charset="utf-16le"; class="java.net.URL"
image/urf; class="java.io.InputStream"
text/html; charset="utf-16"; class="java.io.InputStream"
text/html; charset="utf-8"; class="java.net.URL"
application/octet-stream; class="[B"
image/jpeg; class="java.io.InputStream"
application/x-csource; class="java.io.InputStream"
application/vnd.cups-raster; class="java.net.URL"
application/x-perl; class="java.io.InputStream"
image/tiff; class="java.io.InputStream"
application/vnd.cups-pdf-banner; class="java.io.InputStream"
image/x-xbitmap; class="java.io.InputStream"
image/x-portable-pixmap; class="[B"
text/html; charset="utf-16le"; class="java.net.URL"
image/x-bitmap; class="java.io.InputStream"
text/css; class="java.io.InputStream"
application/vnd.cups-raw; class="[B"
image/urf; class="java.net.URL"
image/x-xwindowdump; class="java.io.InputStream"
application/vnd.cups-pdf; class="[B"
image/x-xpixmap; class="[B"
text/html; charset="utf-16le"; class="[B"
application/x-shell; class="[B"
image/png; class="java.net.URL"
text/html; charset="us-ascii"; class="java.net.URL"
application/x-cshell; class="java.io.InputStream"
application/vnd.cups-pdf; class="java.io.InputStream"
image/x-photocd; class="java.io.InputStream"
text/plain; charset="utf-16be"; class="java.net.URL"
text/html; charset="utf-16le"; class="java.io.InputStream"
image/pwg-raster; class="java.net.URL"
image/gif; class="[B"
text/plain; charset="us-ascii"; class="java.net.URL"
image/x-sun-raster; class="java.net.URL"
image/x-xpixmap; class="java.net.URL"
text/plain; charset="utf-16"; class="java.net.URL"
image/x-portable-pixmap; class="java.io.InputStream"
application/postscript; class="[B"
application/x-cshell; class="java.net.URL"
application/vnd.cups-postscript; class="[B"
application/vnd.cups-raster; class="java.io.InputStream"
image/x-sgi-rgb; class="[B"
image/x-portable-anymap; class="java.io.InputStream"
text/html; charset="utf-16be"; class="[B"
text/html; charset="utf-16be"; class="java.net.URL"
image/urf; class="[B"
> Canon_MP493_series
application/octet-stream; class="java.io.InputStream"
application/octet-stream; class="java.net.URL"
image/gif; class="java.net.URL"
image/x-portable-anymap; class="[B"
image/x-portable-pixmap; class="java.net.URL"
text/plain; charset="utf-16"; class="java.io.InputStream"
text/html; charset="utf-16"; class="[B"
text/plain; charset="utf-8"; class="java.io.InputStream"
image/x-bitmap; class="java.net.URL"
image/x-xbitmap; class="java.net.URL"
application/postscript; class="java.io.InputStream"
image/tiff; class="java.net.URL"
application/vnd.cups-raw; class="java.net.URL"
text/html; charset="us-ascii"; class="[B"
text/plain; charset="utf-8"; class="[B"
image/x-sgi-rgb; class="java.net.URL"
application/x-perl; class="[B"
text/html; charset="utf-8"; class="java.io.InputStream"
text/plain; charset="us-ascii"; class="[B"
application/vnd.cups-pdf; class="java.net.URL"
text/html; charset="utf-16"; class="java.net.URL"
application/vnd.cups-postscript; class="java.net.URL"
image/x-xpixmap; class="java.io.InputStream"
text/plain; charset="utf-16le"; class="[B"
image/jpeg; class="java.net.URL"
image/x-xwindowdump; class="[B"
text/plain; charset="us-ascii"; class="java.io.InputStream"
application/vnd.cups-postscript; class="java.io.InputStream"
image/x-xbitmap; class="[B"
application/pdf; class="[B"
text/plain; charset="utf-16"; class="java.io.Reader"
text/plain; charset="utf-16be"; class="[B"
application/postscript; class="java.net.URL"
image/x-portable-bitmap; class="java.net.URL"
image/tiff; class="[B"
image/x-photocd; class="java.net.URL"
application/vnd.adobe-reader-postscript; class="[B"
image/x-portable-anymap; class="java.net.URL"
image/pwg-raster; class="[B"
application/pdf; class="java.io.InputStream"
application/pdf; class="java.net.URL"
text/html; charset="us-ascii"; class="java.io.InputStream"
image/x-portable-graymap; class="java.io.InputStream"
application/vnd.adobe-reader-postscript; class="java.net.URL"
application/vnd.cups-pdf-banner; class="java.net.URL"
image/pwg-raster; class="java.io.InputStream"
image/x-portable-graymap; class="java.net.URL"
text/html; charset="utf-16be"; class="java.io.InputStream"
image/jpeg; class="[B"
text/plain; charset="utf-16"; class="[B"
image/x-portable-bitmap; class="[B"
text/plain; charset="utf-16"; class="java.lang.String"
application/vnd.adobe-reader-postscript; class="java.io.InputStream"
text/css; class="java.net.URL"
application/x-shell; class="java.net.URL"
application/x-cshell; class="[B"
image/x-sun-raster; class="[B"
image/png; class="[B"
text/plain; charset="utf-16"; class="[C"
text/css; class="[B"
text/plain; charset="utf-16be"; class="java.io.InputStream"
application/x-csource; class="[B"
image/x-bitmap; class="[B"
image/x-photocd; class="[B"
application/vnd.cups-raster; class="[B"
application/x-perl; class="java.net.URL"
image/gif; class="java.io.InputStream"
application/x-shell; class="java.io.InputStream"
image/x-portable-bitmap; class="java.io.InputStream"
text/html; charset="utf-8"; class="[B"
image/x-sun-raster; class="java.io.InputStream"
text/plain; charset="utf-8"; class="java.net.URL"
image/x-sgi-rgb; class="java.io.InputStream"
application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
application/vnd.cups-raw; class="java.io.InputStream"
text/plain; charset="utf-16le"; class="java.io.InputStream"
application/x-csource; class="java.net.URL"
image/png; class="java.io.InputStream"
application/vnd.cups-pdf-banner; class="[B"
image/x-xwindowdump; class="java.net.URL"
application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
image/x-portable-graymap; class="[B"
text/plain; charset="utf-16le"; class="java.net.URL"
image/urf; class="java.io.InputStream"
text/html; charset="utf-16"; class="java.io.InputStream"
text/html; charset="utf-8"; class="java.net.URL"
application/octet-stream; class="[B"
image/jpeg; class="java.io.InputStream"
application/x-csource; class="java.io.InputStream"
application/vnd.cups-raster; class="java.net.URL"
application/x-perl; class="java.io.InputStream"
image/tiff; class="java.io.InputStream"
application/vnd.cups-pdf-banner; class="java.io.InputStream"
image/x-xbitmap; class="java.io.InputStream"
image/x-portable-pixmap; class="[B"
text/html; charset="utf-16le"; class="java.net.URL"
image/x-bitmap; class="java.io.InputStream"
text/css; class="java.io.InputStream"
application/vnd.cups-raw; class="[B"
image/urf; class="java.net.URL"
image/x-xwindowdump; class="java.io.InputStream"
application/vnd.cups-pdf; class="[B"
image/x-xpixmap; class="[B"
text/html; charset="utf-16le"; class="[B"
application/x-shell; class="[B"
image/png; class="java.net.URL"
text/html; charset="us-ascii"; class="java.net.URL"
application/x-cshell; class="java.io.InputStream"
application/vnd.cups-pdf; class="java.io.InputStream"
image/x-photocd; class="java.io.InputStream"
text/plain; charset="utf-16be"; class="java.net.URL"
text/html; charset="utf-16le"; class="java.io.InputStream"
image/pwg-raster; class="java.net.URL"
image/gif; class="[B"
text/plain; charset="us-ascii"; class="java.net.URL"
image/x-sun-raster; class="java.net.URL"
image/x-xpixmap; class="java.net.URL"
text/plain; charset="utf-16"; class="java.net.URL"
image/x-portable-pixmap; class="java.io.InputStream"
application/postscript; class="[B"
application/x-cshell; class="java.net.URL"
application/vnd.cups-postscript; class="[B"
application/vnd.cups-raster; class="java.io.InputStream"
image/x-sgi-rgb; class="[B"
image/x-portable-anymap; class="java.io.InputStream"
text/html; charset="utf-16be"; class="[B"
text/html; charset="utf-16be"; class="java.net.URL"
image/urf; class="[B"
> Canon_MP493_you2
application/octet-stream; class="java.io.InputStream"
application/octet-stream; class="java.net.URL"
image/gif; class="java.net.URL"
image/x-portable-anymap; class="[B"
image/x-portable-pixmap; class="java.net.URL"
text/plain; charset="utf-16"; class="java.io.InputStream"
text/html; charset="utf-16"; class="[B"
text/plain; charset="utf-8"; class="java.io.InputStream"
image/x-bitmap; class="java.net.URL"
image/x-xbitmap; class="java.net.URL"
application/postscript; class="java.io.InputStream"
image/tiff; class="java.net.URL"
application/vnd.cups-raw; class="java.net.URL"
text/html; charset="us-ascii"; class="[B"
text/plain; charset="utf-8"; class="[B"
image/x-sgi-rgb; class="java.net.URL"
application/x-perl; class="[B"
text/html; charset="utf-8"; class="java.io.InputStream"
text/plain; charset="us-ascii"; class="[B"
application/vnd.cups-pdf; class="java.net.URL"
text/html; charset="utf-16"; class="java.net.URL"
application/vnd.cups-postscript; class="java.net.URL"
image/x-xpixmap; class="java.io.InputStream"
text/plain; charset="utf-16le"; class="[B"
image/jpeg; class="java.net.URL"
image/x-xwindowdump; class="[B"
text/plain; charset="us-ascii"; class="java.io.InputStream"
application/vnd.cups-postscript; class="java.io.InputStream"
image/x-xbitmap; class="[B"
application/pdf; class="[B"
text/plain; charset="utf-16"; class="java.io.Reader"
text/plain; charset="utf-16be"; class="[B"
application/postscript; class="java.net.URL"
image/x-portable-bitmap; class="java.net.URL"
image/tiff; class="[B"
image/x-photocd; class="java.net.URL"
application/vnd.adobe-reader-postscript; class="[B"
image/x-portable-anymap; class="java.net.URL"
image/pwg-raster; class="[B"
application/pdf; class="java.io.InputStream"
application/pdf; class="java.net.URL"
text/html; charset="us-ascii"; class="java.io.InputStream"
image/x-portable-graymap; class="java.io.InputStream"
application/vnd.adobe-reader-postscript; class="java.net.URL"
application/vnd.cups-pdf-banner; class="java.net.URL"
image/pwg-raster; class="java.io.InputStream"
image/x-portable-graymap; class="java.net.URL"
text/html; charset="utf-16be"; class="java.io.InputStream"
image/jpeg; class="[B"
text/plain; charset="utf-16"; class="[B"
image/x-portable-bitmap; class="[B"
text/plain; charset="utf-16"; class="java.lang.String"
application/vnd.adobe-reader-postscript; class="java.io.InputStream"
text/css; class="java.net.URL"
application/x-shell; class="java.net.URL"
application/x-cshell; class="[B"
image/x-sun-raster; class="[B"
image/png; class="[B"
text/plain; charset="utf-16"; class="[C"
text/css; class="[B"
text/plain; charset="utf-16be"; class="java.io.InputStream"
application/x-csource; class="[B"
image/x-bitmap; class="[B"
image/x-photocd; class="[B"
application/vnd.cups-raster; class="[B"
application/x-perl; class="java.net.URL"
image/gif; class="java.io.InputStream"
application/x-shell; class="java.io.InputStream"
image/x-portable-bitmap; class="java.io.InputStream"
text/html; charset="utf-8"; class="[B"
image/x-sun-raster; class="java.io.InputStream"
text/plain; charset="utf-8"; class="java.net.URL"
image/x-sgi-rgb; class="java.io.InputStream"
application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
application/vnd.cups-raw; class="java.io.InputStream"
text/plain; charset="utf-16le"; class="java.io.InputStream"
application/x-csource; class="java.net.URL"
image/png; class="java.io.InputStream"
application/vnd.cups-pdf-banner; class="[B"
image/x-xwindowdump; class="java.net.URL"
application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
image/x-portable-graymap; class="[B"
text/plain; charset="utf-16le"; class="java.net.URL"
image/urf; class="java.io.InputStream"
text/html; charset="utf-16"; class="java.io.InputStream"
text/html; charset="utf-8"; class="java.net.URL"
application/octet-stream; class="[B"
image/jpeg; class="java.io.InputStream"
application/x-csource; class="java.io.InputStream"
application/vnd.cups-raster; class="java.net.URL"
application/x-perl; class="java.io.InputStream"
image/tiff; class="java.io.InputStream"
application/vnd.cups-pdf-banner; class="java.io.InputStream"
image/x-xbitmap; class="java.io.InputStream"
image/x-portable-pixmap; class="[B"
text/html; charset="utf-16le"; class="java.net.URL"
image/x-bitmap; class="java.io.InputStream"
text/css; class="java.io.InputStream"
application/vnd.cups-raw; class="[B"
image/urf; class="java.net.URL"
image/x-xwindowdump; class="java.io.InputStream"
application/vnd.cups-pdf; class="[B"
image/x-xpixmap; class="[B"
text/html; charset="utf-16le"; class="[B"
application/x-shell; class="[B"
image/png; class="java.net.URL"
text/html; charset="us-ascii"; class="java.net.URL"
application/x-cshell; class="java.io.InputStream"
application/vnd.cups-pdf; class="java.io.InputStream"
image/x-photocd; class="java.io.InputStream"
text/plain; charset="utf-16be"; class="java.net.URL"
text/html; charset="utf-16le"; class="java.io.InputStream"
image/pwg-raster; class="java.net.URL"
image/gif; class="[B"
text/plain; charset="us-ascii"; class="java.net.URL"
image/x-sun-raster; class="java.net.URL"
image/x-xpixmap; class="java.net.URL"
text/plain; charset="utf-16"; class="java.net.URL"
image/x-portable-pixmap; class="java.io.InputStream"
application/postscript; class="[B"
application/x-cshell; class="java.net.URL"
application/vnd.cups-postscript; class="[B"
application/vnd.cups-raster; class="java.io.InputStream"
image/x-sgi-rgb; class="[B"
image/x-portable-anymap; class="java.io.InputStream"
text/html; charset="utf-16be"; class="[B"
text/html; charset="utf-16be"; class="java.net.URL"
image/urf; class="[B"
> EPSON_EPSON_PX-1700F
application/octet-stream; class="java.io.InputStream"
application/octet-stream; class="java.net.URL"
image/gif; class="java.net.URL"
image/x-portable-anymap; class="[B"
image/x-portable-pixmap; class="java.net.URL"
text/plain; charset="utf-16"; class="java.io.InputStream"
text/html; charset="utf-16"; class="[B"
text/plain; charset="utf-8"; class="java.io.InputStream"
image/x-bitmap; class="java.net.URL"
image/x-xbitmap; class="java.net.URL"
application/postscript; class="java.io.InputStream"
image/tiff; class="java.net.URL"
application/vnd.cups-raw; class="java.net.URL"
text/html; charset="us-ascii"; class="[B"
text/plain; charset="utf-8"; class="[B"
image/x-sgi-rgb; class="java.net.URL"
application/x-perl; class="[B"
text/html; charset="utf-8"; class="java.io.InputStream"
text/plain; charset="us-ascii"; class="[B"
application/vnd.cups-pdf; class="java.net.URL"
text/html; charset="utf-16"; class="java.net.URL"
application/vnd.cups-postscript; class="java.net.URL"
image/x-xpixmap; class="java.io.InputStream"
text/plain; charset="utf-16le"; class="[B"
image/jpeg; class="java.net.URL"
image/x-xwindowdump; class="[B"
text/plain; charset="us-ascii"; class="java.io.InputStream"
application/vnd.cups-postscript; class="java.io.InputStream"
image/x-xbitmap; class="[B"
application/pdf; class="[B"
text/plain; charset="utf-16"; class="java.io.Reader"
text/plain; charset="utf-16be"; class="[B"
application/postscript; class="java.net.URL"
image/x-portable-bitmap; class="java.net.URL"
image/tiff; class="[B"
image/x-photocd; class="java.net.URL"
application/vnd.adobe-reader-postscript; class="[B"
image/x-portable-anymap; class="java.net.URL"
image/pwg-raster; class="[B"
application/pdf; class="java.io.InputStream"
application/pdf; class="java.net.URL"
text/html; charset="us-ascii"; class="java.io.InputStream"
image/x-portable-graymap; class="java.io.InputStream"
application/vnd.adobe-reader-postscript; class="java.net.URL"
application/vnd.cups-pdf-banner; class="java.net.URL"
image/pwg-raster; class="java.io.InputStream"
image/x-portable-graymap; class="java.net.URL"
text/html; charset="utf-16be"; class="java.io.InputStream"
image/jpeg; class="[B"
text/plain; charset="utf-16"; class="[B"
image/x-portable-bitmap; class="[B"
text/plain; charset="utf-16"; class="java.lang.String"
application/vnd.adobe-reader-postscript; class="java.io.InputStream"
text/css; class="java.net.URL"
application/x-shell; class="java.net.URL"
application/x-cshell; class="[B"
image/x-sun-raster; class="[B"
image/png; class="[B"
text/plain; charset="utf-16"; class="[C"
text/css; class="[B"
text/plain; charset="utf-16be"; class="java.io.InputStream"
application/x-csource; class="[B"
image/x-bitmap; class="[B"
image/x-photocd; class="[B"
application/vnd.cups-raster; class="[B"
application/x-perl; class="java.net.URL"
image/gif; class="java.io.InputStream"
application/x-shell; class="java.io.InputStream"
image/x-portable-bitmap; class="java.io.InputStream"
text/html; charset="utf-8"; class="[B"
image/x-sun-raster; class="java.io.InputStream"
text/plain; charset="utf-8"; class="java.net.URL"
image/x-sgi-rgb; class="java.io.InputStream"
application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
application/vnd.cups-raw; class="java.io.InputStream"
text/plain; charset="utf-16le"; class="java.io.InputStream"
application/x-csource; class="java.net.URL"
image/png; class="java.io.InputStream"
application/vnd.cups-pdf-banner; class="[B"
image/x-xwindowdump; class="java.net.URL"
application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
image/x-portable-graymap; class="[B"
text/plain; charset="utf-16le"; class="java.net.URL"
image/urf; class="java.io.InputStream"
text/html; charset="utf-16"; class="java.io.InputStream"
text/html; charset="utf-8"; class="java.net.URL"
application/octet-stream; class="[B"
image/jpeg; class="java.io.InputStream"
application/x-csource; class="java.io.InputStream"
application/vnd.cups-raster; class="java.net.URL"
application/x-perl; class="java.io.InputStream"
image/tiff; class="java.io.InputStream"
application/vnd.cups-pdf-banner; class="java.io.InputStream"
image/x-xbitmap; class="java.io.InputStream"
image/x-portable-pixmap; class="[B"
text/html; charset="utf-16le"; class="java.net.URL"
image/x-bitmap; class="java.io.InputStream"
text/css; class="java.io.InputStream"
application/vnd.cups-raw; class="[B"
image/urf; class="java.net.URL"
image/x-xwindowdump; class="java.io.InputStream"
application/vnd.cups-pdf; class="[B"
image/x-xpixmap; class="[B"
text/html; charset="utf-16le"; class="[B"
application/x-shell; class="[B"
image/png; class="java.net.URL"
text/html; charset="us-ascii"; class="java.net.URL"
application/x-cshell; class="java.io.InputStream"
application/vnd.cups-pdf; class="java.io.InputStream"
image/x-photocd; class="java.io.InputStream"
text/plain; charset="utf-16be"; class="java.net.URL"
text/html; charset="utf-16le"; class="java.io.InputStream"
image/pwg-raster; class="java.net.URL"
image/gif; class="[B"
text/plain; charset="us-ascii"; class="java.net.URL"
image/x-sun-raster; class="java.net.URL"
image/x-xpixmap; class="java.net.URL"
text/plain; charset="utf-16"; class="java.net.URL"
image/x-portable-pixmap; class="java.io.InputStream"
application/postscript; class="[B"
application/x-cshell; class="java.net.URL"
application/vnd.cups-postscript; class="[B"
application/vnd.cups-raster; class="java.io.InputStream"
image/x-sgi-rgb; class="[B"
image/x-portable-anymap; class="java.io.InputStream"
text/html; charset="utf-16be"; class="[B"
text/html; charset="utf-16be"; class="java.net.URL"
image/urf; class="[B"

Windowsでは

>>(5) Flavor list
> OneNote
image/gif; class="[B"
image/gif; class="java.io.InputStream"
image/gif; class="java.net.URL"
image/jpeg; class="[B"
image/jpeg; class="java.io.InputStream"
image/jpeg; class="java.net.URL"
image/png; class="[B"
image/png; class="java.io.InputStream"
image/png; class="java.net.URL"
application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
application/octet-stream; class="[B"
application/octet-stream; class="java.net.URL"
application/octet-stream; class="java.io.InputStream"
> Microsoft XPS Document Writer
image/gif; class="[B"
image/gif; class="java.io.InputStream"
image/gif; class="java.net.URL"
image/jpeg; class="[B"
image/jpeg; class="java.io.InputStream"
image/jpeg; class="java.net.URL"
image/png; class="[B"
image/png; class="java.io.InputStream"
image/png; class="java.net.URL"
application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
application/octet-stream; class="[B"
application/octet-stream; class="java.net.URL"
application/octet-stream; class="java.io.InputStream"
> Microsoft Print to PDF
image/gif; class="[B"
image/gif; class="java.io.InputStream"
image/gif; class="java.net.URL"
image/jpeg; class="[B"
image/jpeg; class="java.io.InputStream"
image/jpeg; class="java.net.URL"
image/png; class="[B"
image/png; class="java.io.InputStream"
image/png; class="java.net.URL"
application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
application/octet-stream; class="[B"
application/octet-stream; class="java.net.URL"
application/octet-stream; class="java.io.InputStream"
> Fax
image/gif; class="[B"
image/gif; class="java.io.InputStream"
image/gif; class="java.net.URL"
image/jpeg; class="[B"
image/jpeg; class="java.io.InputStream"
image/jpeg; class="java.net.URL"
image/png; class="[B"
image/png; class="java.io.InputStream"
image/png; class="java.net.URL"
application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
application/octet-stream; class="[B"
application/octet-stream; class="java.net.URL"
application/octet-stream; class="java.io.InputStream"
> EPSON5AE8BC (PX-1700F)
image/gif; class="[B"
image/gif; class="java.io.InputStream"
image/gif; class="java.net.URL"
image/jpeg; class="[B"
image/jpeg; class="java.io.InputStream"
image/jpeg; class="java.net.URL"
image/png; class="[B"
image/png; class="java.io.InputStream"
image/png; class="java.net.URL"
application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
application/octet-stream; class="[B"
application/octet-stream; class="java.net.URL"
application/octet-stream; class="java.io.InputStream"
> EPSON PX-1700F
image/gif; class="[B"
image/gif; class="java.io.InputStream"
image/gif; class="java.net.URL"
image/jpeg; class="[B"
image/jpeg; class="java.io.InputStream"
image/jpeg; class="java.net.URL"
image/png; class="[B"
image/png; class="java.io.InputStream"
image/png; class="java.net.URL"
application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
application/octet-stream; class="[B"
application/octet-stream; class="java.net.URL"
application/octet-stream; class="java.io.InputStream"
> Canon MP493 series Printer
image/gif; class="[B"
image/gif; class="java.io.InputStream"
image/gif; class="java.net.URL"
image/jpeg; class="[B"
image/jpeg; class="java.io.InputStream"
image/jpeg; class="java.net.URL"
image/png; class="[B"
image/png; class="java.io.InputStream"
image/png; class="java.net.URL"
application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
application/octet-stream; class="[B"
application/octet-stream; class="java.net.URL"
application/octet-stream; class="java.io.InputStream"
> Canon Inkjet iP9910
image/gif; class="[B"
image/gif; class="java.io.InputStream"
image/gif; class="java.net.URL"
image/jpeg; class="[B"
image/jpeg; class="java.io.InputStream"
image/jpeg; class="java.net.URL"
image/png; class="[B"
image/png; class="java.io.InputStream"
image/png; class="java.net.URL"
application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
application/octet-stream; class="[B"
application/octet-stream; class="java.net.URL"
application/octet-stream; class="java.io.InputStream"

(6) getAttributes()

PrintServiceAttributeSet 	getAttributes()
  この印刷サービスのプリンタ記述属性セットを取得します。プリンタ記述属性セットは、このPrint Serviceの状態を指定します。

PrintServiceAttributeSet なので、普段見慣れない属性だった。

    /** (6)getAttributes();*/
    public static void printAtt(PrintService sv){
        //System.out.println(">> Attr list");
        System.out.println("> "+sv.getName());
        //PrintServiceAttributeSet 	getAttributes()
        PrintServiceAttributeSet psset = sv.getAttributes();
        System.out.println(psset.size());
        Attribute[] aaray = psset.toArray();
        for(Attribute att:aaray){
            System.out.println(att.getCategory());
            System.out.println("attr.getName():" + att.getName());
            System.out.println(att.toString());
        }
    }

Linuxでは

>>(6) Attributes list
> Canon_MP493_A4
6
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
class javax.print.attribute.standard.PrinterIsAcceptingJobs
attr.getName():printer-is-accepting-jobs
accepting-jobs
class javax.print.attribute.standard.PrinterName
attr.getName():printer-name
Canon_MP493_A4
class javax.print.attribute.standard.PDLOverrideSupported
attr.getName():pdl-override-supported
not-attempted
class javax.print.attribute.standard.QueuedJobCount
attr.getName():queued-job-count
0
class javax.print.attribute.standard.PrinterInfo
attr.getName():printer-info
Canon MP493 A4ppd
> Canon_MP493_chou3
6
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
class javax.print.attribute.standard.PrinterIsAcceptingJobs
attr.getName():printer-is-accepting-jobs
accepting-jobs
class javax.print.attribute.standard.PrinterName
attr.getName():printer-name
Canon_MP493_chou3
class javax.print.attribute.standard.PDLOverrideSupported
attr.getName():pdl-override-supported
not-attempted
class javax.print.attribute.standard.QueuedJobCount
attr.getName():queued-job-count
0
class javax.print.attribute.standard.PrinterInfo
attr.getName():printer-info
Canon MP493 chou3ppd
> Canon_MP493_hagaki
6
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
class javax.print.attribute.standard.PrinterIsAcceptingJobs
attr.getName():printer-is-accepting-jobs
accepting-jobs
class javax.print.attribute.standard.PrinterName
attr.getName():printer-name
Canon_MP493_hagaki
class javax.print.attribute.standard.PDLOverrideSupported
attr.getName():pdl-override-supported
not-attempted
class javax.print.attribute.standard.QueuedJobCount
attr.getName():queued-job-count
0
class javax.print.attribute.standard.PrinterInfo
attr.getName():printer-info
Canon MP493 hagaki
> Canon_MP493_hagaki_fuchinashi
6
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
class javax.print.attribute.standard.PrinterIsAcceptingJobs
attr.getName():printer-is-accepting-jobs
accepting-jobs
class javax.print.attribute.standard.PrinterName
attr.getName():printer-name
Canon_MP493_hagaki_fuchinashi
class javax.print.attribute.standard.PDLOverrideSupported
attr.getName():pdl-override-supported
not-attempted
class javax.print.attribute.standard.QueuedJobCount
attr.getName():queued-job-count
0
class javax.print.attribute.standard.PrinterInfo
attr.getName():printer-info
Canon MP493 hagaki fuchinashi
> Canon_MP493_series
6
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
class javax.print.attribute.standard.PrinterIsAcceptingJobs
attr.getName():printer-is-accepting-jobs
accepting-jobs
class javax.print.attribute.standard.PrinterName
attr.getName():printer-name
Canon_MP493_series
class javax.print.attribute.standard.PDLOverrideSupported
attr.getName():pdl-override-supported
not-attempted
class javax.print.attribute.standard.QueuedJobCount
attr.getName():queued-job-count
0
class javax.print.attribute.standard.PrinterInfo
attr.getName():printer-info
Canon MP493 series
> Canon_MP493_you2
6
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
class javax.print.attribute.standard.PrinterIsAcceptingJobs
attr.getName():printer-is-accepting-jobs
accepting-jobs
class javax.print.attribute.standard.PrinterName
attr.getName():printer-name
Canon_MP493_you2
class javax.print.attribute.standard.PDLOverrideSupported
attr.getName():pdl-override-supported
not-attempted
class javax.print.attribute.standard.QueuedJobCount
attr.getName():queued-job-count
0
class javax.print.attribute.standard.PrinterInfo
attr.getName():printer-info
Canon MP493 series
> EPSON_EPSON_PX-1700F
6
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
class javax.print.attribute.standard.PrinterIsAcceptingJobs
attr.getName():printer-is-accepting-jobs
accepting-jobs
class javax.print.attribute.standard.PrinterName
attr.getName():printer-name
EPSON_EPSON_PX-1700F
class javax.print.attribute.standard.PDLOverrideSupported
attr.getName():pdl-override-supported
not-attempted
class javax.print.attribute.standard.QueuedJobCount
attr.getName():queued-job-count
0
class javax.print.attribute.standard.PrinterInfo
attr.getName():printer-info
EPSON PX-1700F lpd

Windowsでは

>>(6) Attributes list
> OneNote
4
class javax.print.attribute.standard.PrinterName
attr.getName():printer-name
OneNote
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
class javax.print.attribute.standard.PrinterIsAcceptingJobs
attr.getName():printer-is-accepting-jobs
accepting-jobs
class javax.print.attribute.standard.QueuedJobCount
attr.getName():queued-job-count
0
> Microsoft XPS Document Writer
4
class javax.print.attribute.standard.PrinterName
attr.getName():printer-name
Microsoft XPS Document Writer
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
class javax.print.attribute.standard.PrinterIsAcceptingJobs
attr.getName():printer-is-accepting-jobs
accepting-jobs
class javax.print.attribute.standard.QueuedJobCount
attr.getName():queued-job-count
0
> Microsoft Print to PDF
4
class javax.print.attribute.standard.PrinterName
attr.getName():printer-name
Microsoft Print to PDF
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
class javax.print.attribute.standard.PrinterIsAcceptingJobs
attr.getName():printer-is-accepting-jobs
accepting-jobs
class javax.print.attribute.standard.QueuedJobCount
attr.getName():queued-job-count
0
> Fax
4
class javax.print.attribute.standard.PrinterName
attr.getName():printer-name
Fax
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
not-supported
class javax.print.attribute.standard.PrinterIsAcceptingJobs
attr.getName():printer-is-accepting-jobs
accepting-jobs
class javax.print.attribute.standard.QueuedJobCount
attr.getName():queued-job-count
0
> EPSON5AE8BC (PX-1700F)
4
class javax.print.attribute.standard.PrinterName
attr.getName():printer-name
EPSON5AE8BC (PX-1700F)
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
class javax.print.attribute.standard.PrinterIsAcceptingJobs
attr.getName():printer-is-accepting-jobs
accepting-jobs
class javax.print.attribute.standard.QueuedJobCount
attr.getName():queued-job-count
0
> EPSON PX-1700F
4
class javax.print.attribute.standard.PrinterName
attr.getName():printer-name
EPSON PX-1700F
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
class javax.print.attribute.standard.PrinterIsAcceptingJobs
attr.getName():printer-is-accepting-jobs
accepting-jobs
class javax.print.attribute.standard.QueuedJobCount
attr.getName():queued-job-count
0
> Canon MP493 series Printer
4
class javax.print.attribute.standard.PrinterName
attr.getName():printer-name
Canon MP493 series Printer
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
class javax.print.attribute.standard.PrinterIsAcceptingJobs
attr.getName():printer-is-accepting-jobs
accepting-jobs
class javax.print.attribute.standard.QueuedJobCount
attr.getName():queued-job-count
0
> Canon Inkjet iP9910
4
class javax.print.attribute.standard.PrinterName
attr.getName():printer-name
Canon Inkjet iP9910
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
class javax.print.attribute.standard.PrinterIsAcceptingJobs
attr.getName():printer-is-accepting-jobs
accepting-jobs
class javax.print.attribute.standard.QueuedJobCount
attr.getName():queued-job-count
0

(7) getAttribute()

個別属性の値を問う

    /** (7)getAttribute();*/
    public static void printAtt1(PrintService sv){
        System.out.println("> "+sv.getName());
        PrintServiceAttribute att = sv.getAttribute(ColorSupported.class);
        System.out.println(att.getCategory());
        System.out.println("attr.getName():" + att.getName());
        System.out.println(att.toString());
    }

Linuxでは

>>(7) getAttribute
> Canon_MP493_A4
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
> Canon_MP493_chou3
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
> Canon_MP493_hagaki
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
> Canon_MP493_hagaki_fuchinashi
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
> Canon_MP493_series
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
> Canon_MP493_you2
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
> EPSON_EPSON_PX-1700F
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
adachi@debian64:/media/adachi/S1T/java/print01$ 

Windowsでは

>>(7) getAttribute
> OneNote
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
> Microsoft XPS Document Writer
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
> Microsoft Print to PDF
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
> Fax
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
not-supported
> EPSON5AE8BC (PX-1700F)
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
> EPSON PX-1700F
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
> Canon MP493 series Printer
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported
> Canon Inkjet iP9910
class javax.print.attribute.standard.ColorSupported
attr.getName():color-supported
supported

(8) get­Default­Attribute­Value()

各属性のデフォルトを問う

    Object 	getDefaultAttributeValue(Class category)
  この印刷サービスの指定されたカテゴリ内でのデフォルト印刷属性値を判別します。
    /** (8)getDefaultAttributeValue();*/
    public static void printDefalt(PrintService sv){
        System.out.println("> "+sv.getName());
        Media media = (Media)sv.getDefaultAttributeValue(Media.class);
        System.out.println(media.getCategory());
        if(media instanceof MediaSizeName) System.out.println("(MediaSizeName)");
        if(media instanceof MediaName) System.out.println("(MediaName)");
        if(media instanceof MediaTray) System.out.println("(MediaTrey)");
        System.out.println("attr.getName():" + media.getName());
        System.out.println(media.toString());
    }

Linuxでは

Linuxではトレイの切り替えができないので、いろいろな用紙をデフォルトにしたプリンタを登録している。

そのデフォルトがきちんと出てきている。

>>(8) getDefaultAttributeValue()
> Canon_MP493_A4
class javax.print.attribute.standard.Media
(MediaSizeName)
attr.getName():media
iso-a4
> Canon_MP493_chou3
class javax.print.attribute.standard.Media
(MediaSizeName)
attr.getName():media
Japanese long envelope #3
> Canon_MP493_hagaki
class javax.print.attribute.standard.Media
(MediaSizeName)
attr.getName():media
japanese-postcard
> Canon_MP493_hagaki_fuchinashi
class javax.print.attribute.standard.Media
(MediaSizeName)
attr.getName():media
japanese-postcard
> Canon_MP493_series
class javax.print.attribute.standard.Media
(MediaSizeName)
attr.getName():media
iso-a4
> Canon_MP493_you2
class javax.print.attribute.standard.Media
(MediaSizeName)
attr.getName():media
C6 landscape
> EPSON_EPSON_PX-1700F
class javax.print.attribute.standard.Media
(MediaSizeName)
attr.getName():media
iso-a4

Windowsでは

Windowsのドライバはどれも普通なのでA4。でも実物のプリンタでないサービスも多い。

>>(8) getDefaultAttributeValue()
> OneNote
class javax.print.attribute.standard.Media
(MediaSizeName)
attr.getName():media
iso-a4
> Microsoft XPS Document Writer
class javax.print.attribute.standard.Media
(MediaSizeName)
attr.getName():media
iso-a4
> Microsoft Print to PDF
class javax.print.attribute.standard.Media
(MediaSizeName)
attr.getName():media
iso-a4
> Fax
class javax.print.attribute.standard.Media
(MediaSizeName)
attr.getName():media
iso-a4
> EPSON5AE8BC (PX-1700F)
class javax.print.attribute.standard.Media
(MediaSizeName)
attr.getName():media
iso-a4
> EPSON PX-1700F
class javax.print.attribute.standard.Media
(MediaSizeName)
attr.getName():media
iso-a4
> Canon MP493 series Printer
class javax.print.attribute.standard.Media
(MediaSizeName)
attr.getName():media
iso-a4
> Canon Inkjet iP9910
class javax.print.attribute.standard.Media
(MediaSizeName)
attr.getName():media
iso-a4

(9) is­Attribute­Value­Supported()

MediaSizeName.ISO_A3 を使えるかいという問いかけをする

Attributeインターフェースを持つクラスのインスタンスでなければならない。

boolean 	isAttributeValueSupported(Attribute attrval, DocFlavor flavor, AttributeSet attributes)
  このPrint Service用のジョブ設定時に、クライアントが特定の印刷属性値を指定可能かどうかを判別します。
    /** (9)isAttributeValueSupported()*/
    public static void printIsValSupported(PrintService sv){
        System.out.println("> "+sv.getName());
        Attribute attval = MediaSizeName.ISO_A3;
        boolean supported = sv.isAttributeValueSupported(attval,null,null);
        System.out.println("attr.getName():" + attval.getName());
        System.out.println(attval.toString() + " " + supported);
    }

Linuxでは

>>(9) isValSupported()
> Canon_MP493_A4
attr.getName():media
iso-a3 false
> Canon_MP493_chou3
attr.getName():media
iso-a3 false
> Canon_MP493_hagaki
attr.getName():media
iso-a3 false
> Canon_MP493_hagaki_fuchinashi
attr.getName():media
iso-a3 false
> Canon_MP493_series
attr.getName():media
iso-a3 false
> Canon_MP493_you2
attr.getName():media
iso-a3 false
> EPSON_EPSON_PX-1700F
attr.getName():media
iso-a3 true

Windowsでは

>>(9) isValSupported()
> OneNote
attr.getName():media
iso-a3 false
> Microsoft XPS Document Writer
attr.getName():media
iso-a3 true
> Microsoft Print to PDF
attr.getName():media
iso-a3 true
> Fax
attr.getName():media
iso-a3 false
> EPSON5AE8BC (PX-1700F)
attr.getName():media
iso-a3 true
> EPSON PX-1700F
attr.getName():media
iso-a3 true
> Canon MP493 series Printer
attr.getName():media
iso-a3 true
> Canon Inkjet iP9910
attr.getName():media
iso-a3 true

(10) Media­Printable­Area.class

Media.class だけでなく、他のカテゴリも見てみます

    public static void printerSupportedArea(PrintService sv) {
        System.out.println("> "+sv.getName());
        MediaPrintableArea[] meds =
            (MediaPrintableArea[])
                 sv.getSupportedAttributeValues(
                     MediaPrintableArea.class, null, null);
        for (MediaPrintableArea med : meds) {
            //System.out.println(med.getName());
            //  media-printable-area
            //System.out.println(med.getCategory());
            //  class javax.print.attribute.standard.MediaPrintableArea
            System.out.println(med.toString());
            // (0.0,0.0)->(176.036,124.883)mm
            //System.out.println(med.toString(MediaSize.MM,"mm"));
            // (0.0,0.0)->(176.036,124.883)mm
            /*
            float msx = med.getX(MediaSize.MM);
            float msy = med.getY(MediaSize.MM);
            float msw = med.getWidth(MediaSize.MM);
            float msh = med.getHeight(MediaSize.MM);
            System.out.println(
                msx+" "+msy+" "+
                msw+" "+msh+" mm /code:"+
                med.hashCode()
            );//system
            // 0.0 0.0 209.903 148.167 mm /code:15989678
            */
        }
    }

Linuxでは

>>(10) MediaPrintableArea.class
> Canon_MP493_A4
(0.0,0.0)->(215.9,279.4)mm
(0.0,0.0)->(215.9,355.6)mm
(0.0,0.0)->(184.15,266.7)mm
(0.0,0.0)->(99.836,146.756)mm
(0.0,0.0)->(116.064,116.064)mm
(0.0,0.0)->(64.911,64.911)mm
(0.0,0.0)->(119.944,119.944)mm
(0.0,0.0)->(76.2,127.0)mm
(0.0,0.0)->(88.9,119.239)mm
(0.0,0.0)->(88.9,127.0)mm
(0.0,0.0)->(88.9,127.0)mm
(0.0,0.0)->(50.8,152.4)mm
(0.0,0.0)->(101.6,152.4)mm
(0.0,0.0)->(101.6,152.4)mm
(0.0,0.0)->(114.3,152.4)mm
(6.35,15.875)->(107.95,168.275)mm
(7.761,15.169)->(97.014,142.522)mm
(0.0,0.0)->(101.6,203.2)mm
(0.0,0.0)->(119.239,177.8)mm
(0.0,0.0)->(127.0,177.8)mm
(0.0,0.0)->(127.0,177.8)mm
(0.0,0.0)->(127.0,203.2)mm
(0.0,0.0)->(152.4,152.4)mm
(0.0,0.0)->(152.4,203.2)mm
(0.0,0.0)->(152.4,215.9)mm
(0.0,0.0)->(152.4,228.6)mm
(0.0,0.0)->(203.2,254.0)mm
(0.0,0.0)->(203.2,254.0)mm
(0.0,0.0)->(139.7,215.9)mm
(0.0,0.0)->(127.0,127.0)mm
(0.0,0.0)->(203.2,203.2)mm
(0.0,0.0)->(203.2,273.05)mm
(0.0,0.0)->(203.2,304.8)mm
(0.0,0.0)->(215.9,304.8)mm
(0.0,0.0)->(209.903,297.039)mm
(0.0,0.0)->(148.167,209.903)mm
(0.0,0.0)->(104.775,148.167)mm
(0.0,0.0)->(74.083,104.775)mm
(0.0,0.0)->(52.211,74.083)mm
(0.0,0.0)->(37.042,52.211)mm
(0.0,0.0)->(25.753,37.042)mm
(0.0,0.0)->(214.842,304.8)mm
(0.0,0.0)->(175.683,249.767)mm
(0.0,0.0)->(124.883,175.683)mm
(0.0,0.0)->(87.842,124.883)mm
(0.0,0.0)->(61.736,87.842)mm
(0.0,0.0)->(43.744,61.736)mm
(0.0,0.0)->(30.692,43.744)mm
(0.0,0.0)->(182.739,256.469)mm
(0.0,0.0)->(127.706,182.739)mm
(0.0,0.0)->(90.664,127.706)mm
(0.0,0.0)->(63.5,90.664)mm
(0.0,0.0)->(44.803,63.5)mm
(0.0,0.0)->(31.75,44.803)mm
(0.0,0.0)->(161.925,228.953)mm
(0.0,0.0)->(124.883,323.85)mm
(0.0,0.0)->(113.947,161.925)mm
(0.0,0.0)->(161.925,113.947)mm
(0.0,0.0)->(109.714,219.781)mm
(0.0,0.0)->(80.786,161.925)mm
(0.0,0.0)->(161.925,80.786)mm
(0.0,0.0)->(80.786,113.947)mm
(0.0,0.0)->(113.947,80.786)mm
(0.0,0.0)->(56.797,80.786)mm
(0.0,0.0)->(80.786,56.797)mm
(0.0,0.0)->(39.864,56.797)mm
(0.0,0.0)->(56.797,39.864)mm
(0.0,0.0)->(27.869,39.864)mm
(0.0,0.0)->(39.864,27.869)mm
(0.0,0.0)->(155.928,228.953)mm
(0.0,0.0)->(215.9,330.2)mm
(0.0,0.0)->(188.736,245.886)mm
(0.0,0.0)->(200.731,257.881)mm
(0.0,0.0)->(122.767,185.914)mm
(0.0,0.0)->(128.764,197.908)mm
(0.0,0.0)->(137.936,215.9)mm
(0.0,0.0)->(155.928,233.892)mm
(0.0,0.0)->(110.772,177.8)mm
(0.0,0.0)->(110.772,180.975)mm
(0.0,0.0)->(128.764,197.908)mm
(0.0,0.0)->(99.836,149.931)mm
(0.0,0.0)->(99.836,148.167)mm
(0.0,0.0)->(148.167,200.025)mm
(0.0,0.0)->(119.944,234.95)mm
(0.0,0.0)->(89.958,204.964)mm
(0.0,0.0)->(204.964,89.958)mm
(0.0,0.0)->(104.775,234.95)mm
(0.0,0.0)->(97.719,189.794)mm
(0.0,0.0)->(189.794,97.719)mm
(0.0,0.0)->(104.775,241.3)mm
(0.0,0.0)->(111.125,146.05)mm
(0.0,0.0)->(98.425,190.5)mm
(0.0,0.0)->(190.5,98.425)mm
(0.0,0.0)->(101.6,136.525)mm
(0.0,0.0)->(101.6,177.8)mm
(0.0,0.0)->(101.6,180.622)mm
(0.0,0.0)->(89.253,118.886)mm
(0.0,0.0)->(54.681,86.078)mm
(0.0,0.0)->(54.681,90.664)mm
(0.0,0.0)->(99.836,199.672)mm
(0.0,0.0)->(215.9,329.847)mm
(0.0,0.0)->(101.6,152.4)mm
(0.0,0.0)->(25.4,101.6)mm
(0.0,0.0)->(33.161,101.6)mm
(0.0,0.0)->(14.111,87.489)mm
(0.0,0.0)->(81.139,88.9)mm
(0.0,0.0)->(25.4,66.675)mm
(0.0,0.0)->(50.8,25.4)mm
(0.0,0.0)->(50.8,38.1)mm
(0.0,0.0)->(50.8,101.6)mm
(0.0,0.0)->(57.15,139.7)mm
(0.0,0.0)->(76.2,50.8)mm
(0.0,0.0)->(76.2,76.2)mm
(0.0,0.0)->(81.139,44.45)mm
(0.0,0.0)->(88.9,50.8)mm
(0.0,0.0)->(101.6,50.8)mm
(0.0,0.0)->(101.6,76.2)mm
(0.0,0.0)->(101.6,101.6)mm
(0.0,0.0)->(101.6,127.0)mm
(0.0,0.0)->(101.6,165.1)mm
(0.0,0.0)->(101.6,203.2)mm
(0.0,0.0)->(101.6,330.2)mm
(0.0,0.0)->(152.4,50.8)mm
(0.0,0.0)->(152.4,76.2)mm
(0.0,0.0)->(152.4,101.6)mm
(0.0,0.0)->(152.4,127.0)mm
(0.0,0.0)->(152.4,152.4)mm
(0.0,0.0)->(203.2,304.8)mm
(0.0,0.0)->(215.9,152.4)mm
(0.0,0.0)->(215.9,279.4)mm
(0.0,0.0)->(63.5,79.375)mm
(0.0,0.0)->(12.7,44.45)mm
(0.0,0.0)->(44.45,76.2)mm
(0.0,0.0)->(19.05,146.05)mm
(0.0,0.0)->(44.097,31.044)mm
(0.0,0.0)->(62.089,44.097)mm
(0.0,0.0)->(74.083,51.858)mm
(0.0,0.0)->(87.842,62.089)mm
(0.0,0.0)->(105.128,74.083)mm
(0.0,0.0)->(124.883,87.842)mm
(0.0,0.0)->(148.167,105.128)mm
(0.0,0.0)->(176.036,124.883)mm
(0.0,0.0)->(209.903,148.167)mm
(0.0,0.0)->(203.2,228.6)mm

Linux-2

>>(10) MediaPrintableArea.class
> EPSON_EPSON_PX-1700F
(2.963,2.963)->(207.045,294.04)mm
(2.963,2.963)->(179.035,254.035)mm
(2.963,2.963)->(145.027,207.045)mm
(2.963,2.963)->(102.023,145.027)mm
(2.963,2.963)->(294.04,417.054)mm
(2.963,2.963)->(326.037,480.025)mm
(2.963,2.963)->(254.035,361.033)mm
(2.963,2.963)->(97.049,145.027)mm
(2.963,2.963)->(197.026,145.027)mm
(2.963,2.963)->(86.007,124.037)mm
(2.963,2.963)->(98.637,149.437)mm
(2.963,2.963)->(124.037,174.978)mm
(2.963,2.963)->(200.237,251.037)mm
(2.963,2.963)->(251.037,301.837)mm
(2.963,2.963)->(98.637,177.624)mm
(2.963,2.963)->(237.031,329.036)mm
(2.963,2.963)->(117.052,232.022)mm
(2.963,2.963)->(87.03,202.036)mm
(2.963,2.963)->(117.052,173.038)mm
(2.963,2.963)->(111.019,159.032)mm
(2.963,2.963)->(95.038,145.027)mm
(2.963,2.963)->(102.023,232.022)mm
(2.963,2.963)->(212.937,276.437)mm
(2.963,2.963)->(212.937,352.637)mm
(2.963,2.963)->(361.033,512.022)mm
(2.963,2.963)->(417.054,591.044)mm

Windowsでは

>>(10) MediaPrintableArea.class
> Canon MP493 series Printer
(3.369,2.937)->(413.139,585.928)mm
(3.387,2.963)->(290.165,411.964)mm
(3.387,2.963)->(203.2,288.967)mm
(3.387,2.963)->(141.182,201.972)mm
(3.387,2.963)->(120.184,169.799)mm
(3.387,2.963)->(196.384,245.999)mm
(3.387,2.963)->(94.784,195.199)mm
(3.387,2.963)->(82.169,118.999)mm
(3.387,2.963)->(48.175,82.973)mm
(3.387,2.963)->(94.784,172.593)mm
(3.387,2.963)->(120.184,169.799)mm
(3.387,2.963)->(196.384,245.999)mm
(3.387,2.963)->(120.184,169.968)mm
(0.0,0.0)->(364.0,515.0)mm
(3.387,7.959)->(91.186,149.479)mm
(3.397,2.979)->(250.185,355.966)mm
(3.387,2.963)->(175.175,248.962)mm
(6.392,2.963)->(203.2,271.399)mm
(6.392,2.963)->(203.2,347.599)mm
(3.362,2.988)->(272.552,423.769)mm
(3.387,2.963)->(94.784,144.399)mm
(3.387,2.963)->(93.176,139.996)mm
(3.387,4.995)->(113.199,221.996)mm
(3.387,2.963)->(193.167,139.996)mm
(3.387,4.995)->(83.185,191.982)mm
(3.387,2.963)->(193.167,139.996)mm
(3.387,7.959)->(98.171,194.479)mm
(3.357,2.968)->(221.788,329.811)mm
(3.387,2.963)->(336.056,423.757)mm
(3.333,2.972)->(424.955,550.784)mm
(3.366,2.958)->(215.9,347.592)mm
(3.387,2.963)->(322.157,474.98)mm
(3.387,7.959)->(103.166,179.493)mm
(3.356,2.994)->(247.185,296.798)mm
(3.357,2.993)->(348.739,423.771)mm
(3.387,2.963)->(203.2,288.967)mm
(3.326,2.948)->(357.188,506.942)mm
(3.387,2.963)->(203.2,288.967)mm
(3.387,7.959)->(97.959,200.787)mm

Windows-2

>>(10) MediaPrintableArea.class
> EPSON PX-1700F
(0.0,0.0)->(419.976,593.835)mm
(2.963,2.963)->(291.042,414.091)mm
(2.963,2.963)->(204.047,291.042)mm
(2.963,2.963)->(204.047,291.042)mm
(2.963,2.963)->(142.099,204.047)mm
(2.963,2.963)->(99.06,142.099)mm
(2.963,2.963)->(121.073,172.014)mm
(2.963,2.963)->(197.273,248.073)mm
(0.0,0.0)->(363.94,514.95)mm
(2.963,2.963)->(251.107,358.069)mm
(2.963,2.963)->(176.107,251.107)mm
(2.963,2.963)->(323.074,477.097)mm
(2.963,2.963)->(83.044,121.073)mm
(2.963,2.963)->(95.673,146.473)mm
(2.963,2.963)->(248.073,298.873)mm
(2.963,2.963)->(95.673,174.696)mm
(2.963,2.963)->(234.103,326.108)mm
(2.963,2.963)->(114.088,229.094)mm
(2.963,2.963)->(84.102,199.108)mm
(2.963,38.029)->(114.088,120.932)mm
(2.963,2.963)->(204.047,291.042)mm
(2.963,38.029)->(92.075,92.992)mm
(2.963,2.963)->(209.973,273.473)mm
(2.963,38.029)->(99.06,179.987)mm
(2.963,2.963)->(209.973,349.673)mm
(2.963,2.963)->(194.098,142.099)mm
(2.963,2.963)->(121.073,172.014)mm
(2.963,2.963)->(197.273,248.073)mm
(2.963,38.029)->(108.091,106.962)mm
(0.0,0.0)->(363.94,514.95)mm
(2.963,2.963)->(94.051,142.099)mm
(2.963,2.963)->(194.098,142.099)mm

Windows-3

>>(10) MediaPrintableArea.class
> OneNote
(12.7,12.7)->(184.573,271.611)mm
(12.7,12.7)->(190.5,254.0)mm

(11) PrinterResolution.class

    /** 11 */
    public static void printerSupportedResolution(PrintService sv) {
        System.out.println("> "+sv.getName());
        PrinterResolution[] meds =
            (PrinterResolution[])
                 sv.getSupportedAttributeValues(
                     PrinterResolution.class, null, null);
        if (meds!=null){
            for (PrinterResolution med : meds) {
                System.out.println(med.toString());
                // 30000x30000 dphi
                System.out.println(med.toString(PrinterResolution.DPI,"dpi"));
                // 300x300 dpi
            }//for
        }//if
    }

Linuxでは

>>(11) PrinterResolution.class
> Canon_MP493_A4
> Canon_MP493_chou3
> Canon_MP493_hagaki
> Canon_MP493_hagaki_fuchinashi
> Canon_MP493_series
> Canon_MP493_you2
> EPSON_EPSON_PX-1700F

Windowsでは

>>(11) PrinterResolution.class
> OneNote
30000x30000 dphi
300x300 dpi
> Microsoft XPS Document Writer
60000x60000 dphi
600x600 dpi
> Microsoft Print to PDF
60000x60000 dphi
600x600 dpi
> Fax
20000x20000 dphi
200x200 dpi
20000x10000 dphi
200x100 dpi
> EPSON5AE8BC (PX-1700F)
> EPSON PX-1700F
> Canon MP493 series Printer
> Canon Inkjet iP9910

(12) Fidelity.class

   /** 12 */
    public static void printerFidelity(PrintService sv) {
        System.out.println("> "+sv.getName());
        Fidelity[] meds =
            (Fidelity[])
                 sv.getSupportedAttributeValues(
                     Fidelity.class, null, null);
        if (meds!=null){
            for (Fidelity med : meds) {
                System.out.println(med.toString());
                if ( med.equals(Fidelity.FIDELITY_FALSE) ) System.out.println("equal to false");
                if ( med.equals(Fidelity.FIDELITY_TRUE) ) System.out.println("equal to true");
            }//for
        }//if
    }//method

Linuxでは

>>(12) Fidelity.class
> Canon_MP493_A4
> Canon_MP493_chou3
> Canon_MP493_hagaki
> Canon_MP493_hagaki_fuchinashi
> Canon_MP493_series
> Canon_MP493_you2
> EPSON_EPSON_PX-1700F

windows

>>(12) Fidelity.class
> OneNote
false
equal to false
true
equal to true
> Microsoft XPS Document Writer
false
equal to false
true
equal to true
> Microsoft Print to PDF
false
equal to false
true
equal to true
> Fax
false
equal to false
true
equal to true
> EPSON5AE8BC (PX-1700F)
false
equal to false
true
equal to true
> EPSON PX-1700F
false
equal to false
true
equal to true
> Canon MP493 series Printer
false
equal to false
true
equal to true
> Canon Inkjet iP9910
false
equal to false
true
equal to true

(13):MediaSize DUMP

(3)で大きさで選別される前のMediaSizeの一覧

if(job==3){
    System.out.println(">>("+job+") MediaSize DUMP ("+pr1.getName()+")");
    Media[] meds = (Media[])pr1.getSupportedAttributeValues(Media.class, null, null);
    for (Media med : meds) {
        if(med instanceof MediaSizeName){
            MediaSizeName msn = (MediaSizeName)med;
            MediaSize ms = MediaSize.getMediaSizeForName(msn);
            if(ms!=null){
                float msx = ms.getX(MediaSize.MM);
                float msy = ms.getY(MediaSize.MM);
                System.out.println(msx+"\t"+msy+"\t:"+msn.getValue()+"\t:"+msn.toString());
                //System.out.println(msx+" "+msy+" : "+ms.toString()+" : "+msn.toString());
                //100.0 148.0 : 100000x148000 um : japanese-postcard
                //System.out.println("             : "+ms.getName()+" : "+msn.getName());
                //: media-size : media
            }//ms
         }//med
    }//for
}//if

Linuxでは

adachi@debian64:/media/adachi/S1T/java/print01$ java PrintTest01 3
p....
>>(3) MediaSize DUMP (Canon_MP493_series)
215.9	279.4	:40	:na-letter
215.9	355.6	:41	:na-legal
184.15	266.7	:42	:executive
100.0	148.0	:48	:japanese-postcard
116.064	116.064	:4	:CD - 5 inch
64.911	64.911	:5	:CD - 3 inch
119.944	119.944	:6	:CD - Custom
76.2	127.0	:7	:3x5
88.9	119.239	:8	:3.5x4.7
88.0	125.0	:18	:iso-b7
88.0	125.0	:18	:iso-b7
50.8	152.4	:11	:2x6
101.6	152.4	:12	:4x6
101.6	152.4	:12	:4x6
114.3	152.4	:14	:4.5x6
114.3	174.625	:15	:Epson 4x6 Photo Paper (tear-off borders)
105.128	148.167	:140	:148x105 mm label
101.6	203.2	:17	:4x8
119.239	177.8	:18	:4.7x7
127.0	177.8	:71	:na-5x7
127.0	177.8	:71	:na-5x7
127.0	203.2	:21	:5x8
152.4	152.4	:22	:6x6
152.4	203.2	:23	:6x8
152.4	215.9	:24	:6x8.5
152.4	228.6	:64	:na-6x9-envelope
203.2	254.0	:72	:na-8x10
203.2	254.0	:72	:na-8x10
139.7	215.9	:45	:invoice
127.0	127.0	:29	:5x5
203.2	203.2	:30	:8x8
203.2	273.05	:31	:8x10.75
203.2	304.8	:32	:8x12
215.9	304.8	:33	:8.5x12
210.0	297.0	:4	:iso-a4
148.167	209.903	:142	:210x148 mm label
105.0	148.0	:6	:iso-a6
74.0	105.0	:7	:iso-a7
52.0	74.0	:8	:iso-a8
37.0	52.0	:9	:iso-a9
26.0	37.0	:10	:iso-a10
215.9	304.8	:33	:8.5x12
176.0	250.0	:16	:iso-b5
125.0	176.0	:17	:iso-b6
87.842	124.883	:139	:125x88 mm label
62.0	88.0	:19	:iso-b8
44.0	62.0	:20	:iso-b9
31.0	44.0	:21	:iso-b10
182.0	257.0	:27	:jis-b5
128.0	182.0	:28	:jis-b6
91.0	128.0	:29	:jis-b7
64.0	91.0	:30	:jis-b8
45.0	64.0	:31	:jis-b9
32.0	45.0	:32	:jis-b10
162.0	229.0	:38	:iso-c5
124.883	323.85	:55	:B6-C4
113.947	161.925	:57	:C6 landscape
113.947	161.925	:637	:C6 landscape
110.0	220.0	:55	:iso-designated-long
80.786	161.925	:59	:C7-6
80.786	161.925	:640	:C7-6 landscape
80.786	113.947	:61	:C7
80.786	113.947	:642	:C7 landscape
56.797	80.786	:63	:C8
56.797	80.786	:644	:C8 landscape
39.864	56.797	:65	:C9
39.864	56.797	:646	:C9 landscape
27.869	39.864	:67	:C10
27.869	39.864	:648	:C10 landscape
155.928	228.953	:69	:EA5
215.9	330.2	:46	:folio
188.736	245.886	:71	:Crown Quarto
200.731	257.881	:72	:Large Crown Quarto
122.767	185.914	:73	:Crown Octavo
128.764	197.908	:74	:Large Crown Octavo
139.7	215.9	:45	:invoice
155.928	233.892	:76	:Royal Octavo
110.772	177.8	:77	:Small paperback
110.772	180.975	:78	:Penguin small paperback
128.764	197.908	:74	:Large Crown Octavo
100.0	148.0	:48	:japanese-postcard
100.0	148.0	:48	:japanese-postcard
148.0	200.0	:49	:oufuko-postcard
119.944	234.95	:83	:Japanese long envelope #3
89.958	204.964	:84	:Japanese long envelope #4
89.958	204.964	:665	:Japanese long envelope #4 landscape
104.775	234.95	:86	:Japanese Western-style envelope #4
97.719	189.794	:87	:Japanese Western-style envelope #6
97.719	189.794	:668	:Japanese Western-style envelope #6 landscape
104.775	241.3	:60	:na-number-10-envelope
111.125	146.05	:90	:A2 Invitation
98.425	190.5	:92	:Monarch Envelope landscape
98.425	190.5	:672	:Monarch Envelope landscape
101.6	136.525	:93	:4x5 3/8
101.6	177.8	:94	:4x7
101.6	180.622	:95	:Wide 101.6x180.6
88.9	119.239	:8	:3.5x4.7
54.681	86.078	:97	:Credit Card
54.681	90.664	:98	:Japanese Business Card
99.836	199.672	:99	:Wide Postcard
215.9	330.2	:46	:folio
101.6	152.4	:12	:4x6
25.4	101.6	:102	:1.00x4.00 in label
33.161	101.6	:103	:1.31x4.00 in label
14.111	87.489	:104	:0.56x3.44 in label
81.139	88.9	:105	:3.19x3.50 in label
25.4	66.675	:106	:1.00x2.63 in label
25.4	50.8	:687	:2.00x1.00 in label
38.1	50.8	:688	:2.00x1.50 in label
50.8	101.6	:109	:2.00x4.00 in label
57.15	139.7	:110	:2.25x5.50 in label
50.8	76.2	:691	:3.00x2.00 in label
76.2	76.2	:112	:3.00x3.00 in label
44.45	81.139	:693	:3.19x1.75 in label
50.8	88.9	:694	:3.50x2.00 in label
50.8	101.6	:695	:4.00x2.00 in label
76.2	101.6	:696	:4.00x3.00 in label
101.6	101.6	:117	:4.00x4.00 in label
101.6	127.0	:118	:4.00x5.00 in label
101.6	165.1	:119	:4.00x6.50 in label
101.6	203.2	:17	:4x8
101.6	330.2	:121	:4.00x13.00 in label
50.8	152.4	:702	:6.00x2.00 in label
76.2	152.4	:703	:6.00x3.00 in label
101.6	152.4	:704	:6.00x4.00 in label
127.0	152.4	:705	:6.00x5.00 in label
152.4	152.4	:22	:6x6
203.2	304.8	:32	:8x12
152.4	215.9	:708	:8.50x6.00 in label
215.9	279.4	:40	:na-letter
63.5	79.375	:130	:2.50x3.13 in label
12.7	44.45	:131	:0.50x1.75 in label
44.45	76.2	:132	:1.75x3.00 in label
19.05	146.05	:133	:0.75x5.75 label
31.044	44.097	:714	:44x31 mm label
44.097	62.089	:715	:62x44 mm label
51.858	74.083	:716	:74x52 mm label
62.089	87.842	:717	:88x62 mm label
74.083	105.128	:718	:105x74 mm label
87.842	124.883	:719	:125x88 mm label
105.128	148.167	:720	:148x105 mm label
124.883	176.036	:721	:176x125 mm label
148.167	209.903	:722	:210x148 mm label
203.2	228.6	:143	:8x5+8x4
adachi@debian64:/media/adachi/S1T/java/print01$ 

windows

PS Z:\java\print01> java PrintTest01 3
p....
>>(3) MediaSize DUMP (Canon MP493 series Printer)
215.9   279.4   :40     :na-letter
215.9   355.6   :41     :na-legal
148.0   210.0   :5      :iso-a5
210.0   297.0   :4      :iso-a4
182.0   257.0   :27     :jis-b5
101.6   152.4   :111    :KG
101.6   203.2   :77     :US 4x8
127.0   177.8   :71     :na-5x7
203.2   254.0   :72     :na-8x10
89.0    127.0   :78     :L判
127.0   177.8   :88     :2L判
100.0   148.0   :48     :japanese-postcard
148.0   200.0   :49     :oufuko-postcard
104.775 241.3   :60     :na-number-10-envelope
110.0   220.0   :55     :iso-designated-long
120.0   235.0   :112    :長形3号
90.0    205.0   :113    :長形4号
105.0   235.0   :114    :洋形4号
98.298  190.5   :57     :monarch-envelope
55.0    91.0    :79     :名刺
101.6   180.6   :80     :ワイド 101.6x180.6mm
228.6   337.8   :115    :レターノビ (拡大縮小)
279.4   431.8   :44     :tabloid
342.9   431.8   :116    :13.5x17 (拡大縮小)
431.8   558.8   :52     :c
222.7   355.6   :117    :A4ノビ (拡大縮小)
297.0   420.0   :3      :iso-a3
329.0   483.0   :118    :A3ノビ (拡大縮小)
420.0   594.0   :2      :iso-a2
257.0   364.0   :26     :jis-b4
364.0   515.0   :25     :jis-b3
254.0   304.8   :119    :四切 (拡大縮小)
355.6   431.8   :120    :半切 (拡大縮小)
210.0   297.0   :122    :ユーザー定義用紙...
127.0   177.8   :86     :US 5x7
203.2   254.0   :87     :六切
148.0   200.0   :49     :往復はがき
98.298  190.5   :89     :洋形6号
364.0   515.0   :121    :B3 (拡大縮小)