DocFlavorを取得します。これは、印刷データの形式を定義するクラスです。AttributeSetを作成して移入します。これは、必要な印刷サービス機能(5つのコピーを印刷する機能、プル機能、両面印刷機能など)を説明する一連の属性をカプセル化します。DocFlavorおよび属性セットで指定された印刷リクエストを処理できる印刷サービスをルックアップします。DocPrintJobまたはPrinterJobのいずれかで表すことができます。 印刷データがドキュメントの場合は、DocPrintJobを使用する必要があります。 
印刷メソッドと印刷データ書式の組み合わせによって、次の6つの印刷メカニズムを選択できます。
DocPrintJobおよびPrintServiceの実装を使用して、ドキュメントをプリンタに出力DocPrintJobおよびStreamPrintServiceを使用して、ドキュメントを出力ストリームにストリームDocPrintJobおよびPrintServiceの実装を使用して、2Dグラフィックをプリンタに印刷DocPrintJobおよびStreamPrintServiceを使用して、2Dグラフィックを出力ストリームにストリームjava.awt.print.PrinterJobを使用して、2DグラフィックをPrintServiceに出力java.awt.print.PrinterJobを使用して、2DグラフィックをStreamPrintServiceにストリームDocPrintJobを使用したドキュメントの印刷およびストリーミングについて説明します。 「2Dグラフィックの印刷およびストリーミング」の章では、DocPrintJobとPrinterJobの両方を使用した2Dグラフィックの印刷およびストリーミングについて説明します。// Input the file
FileInputStream textStream; 
try { 
        textstream = new FileInputStream("file.TXT"); 
} catch (FileNotFoundException ffne) { 
} 
if (textstream == null) { 
        return; 
} 
// Set the document type
DocFlavor myFormat = DocFlavor.INPUT_STREAM.TEXT_PLAIN_ASCII;
// Create a Doc
Doc myDoc = new SimpleDoc(texttream, myFormat, null); 
// Build a set of attributes
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); 
aset.add(new Copies(5)); 
aset.add(MediaSize.ISO_A4);
aset.add(Sides.DUPLEX); 
// discover the printers that can print the format according to the
// instructions in the attribute set
PrintService[] services =
        PrintServiceLookup.lookupPrintServices(myFormat, aset);
// Create a print job from one of the print services
if (services.length > 0) { 
        DocPrintJob job = services[0].createPrintJob(); 
        try { 
                job.print(myDoc, aset); 
        } catch (PrintException pe) {} 
} 
このサンプルでは、6つの印刷方法のいずれかのみを示していますが、ほかの印刷メカニズムも同様の方法で機能します。 このガイドの残りの部分では、各印刷処理およびすべての印刷メカニズムについて詳細に説明します。