クライアントが、印刷データの書式を判断し、データをプリンタに渡す方法を決定します。 次に、クライアントは、次の形式を表すDocFlavorを作成または取得します:
DocFlavor flavor = DocFlavor.INPUT_STREAM.GIF;
クライアントは、DocFlavorを使用して、DocFlavorで指定された形式を理解でき、クライアントの属性セットで指定された機能を持つプリンタを検索します:
PrintService[] services = PrintServiceLookup.lookupPrintServices(flavor, aset);
印刷サービスから、クライアントはDocPrintJobオブジェクトで表される印刷ジョブを作成します:
DocPrintJob printJob = services[0].createPrintJob();
クライアントは、出力するドキュメントを表すDocを作成します:
Doc doc = new InputStreamDoc("duke.gif", flavor);クライアントは、DocPrintJobオブジェクトのprintメソッドをコールしてドキュメントを出力します:
printJob.print(doc, aset);
クライアントがDocオブジェクトをprintメソッドに渡すと、DocPrintJobオブジェクトはDocオブジェクトから印刷データを取得し、クライアントが提供できるDocFlavorを決定します。 DocFlavorの表現クラスは、DocPrintJobがクライアントから一連の文字またはバイトを取得するためのコンジットです。