用紙の選択がうまくできない問題。数年前から取り組んでいるのでOSやソフトウェアのバージョン、プリンタ機種によらず同様だと言える。Windowsでは同様の問題があるかどうかすら調べていない。PrintRequestAttributeSetで用紙の余白や向きを指定して印刷するのは可能。printDialog(pset)で指定した向きと余白がダイアログに表示される。指定したAttributeをここで変更して印刷に反映させることができる。ところが用紙の指定、つまりA4とか葉書とか長3封筒とかの指定が無視される。指定したものがダイアログに出てくるがそのとおりにならない。ブラウザで設定する、CUPSのDefaultOptionsで指定した用紙が使われる。まとめ調査過程をそのまま書いているので冗長になっている。結論を先に書いておく。解決としては完全な理解ではないので参照が必要な場合も考えられる。CUPSで同じプリンタをDefaultを変えて複数別名で登録し、javaからサービスを名前から選択して印刷することで解決。サービスを検索する方法は大雑把に2つあるが、まだ違いが見えない。この方法のためにはどちらでも良い。Java8なのはDebian9のリポジトリでのバージョンが8だから。MediaSizeNameあたりの様子はJava10でもAPI仕様を見る限り変化はない。確認のためのプログラム(一部)MediaSizeNameやMediaSizeの調査。必要があったら見てください。MediaSizeNameからA4の時にいろいろ調べて、MediaSizeNameから設定をスタートしていた。今回使う可能性のあるのは、葉書、長3封筒、A4。