私はこの Java アプリを開発しており、個々のキャプション付きストーリーボードをインデックス カードに印刷しようとしています。つまり、カードごとに 1 つの画像です。
標準の 4 インチ x 6 インチのインデックス カードにランドスケープ モードで印刷することでこれを実行できると思いましたが、かなり新しい HP Photosmart 5515 である私のプリンターでは対応できません。
カードは縦方向にのみプリンターにロードできます。そうしないと、ステーショナリーが短すぎると表示されます。ポートレート モードを選択すると問題なく印刷されますが、直感に反するものであり、ストーリーボード イメージの上下のスペースが無駄になり、使用可能なスペースの 3 分の 1 しか占有しません。
マシンに横向きモードで印刷するように指示すると、縦向きモードで印刷されますが、完全にばかげたマージン設定が適用されます。
protected void setPageFormat(PrinterJob job) {
PageFormat defaultPageFormat = job.defaultPage();
Paper paper = defaultPageFormat.getPaper();
paper.setImageableArea(0.0D, 0.0D, paper.getWidth(), paper.getHeight());
defaultPageFormat.setPaper(paper);
// sets imageable size to maximum allowable margins
pageFormat = job.validatePage(defaultPageFormat);
}
PrinterJob メソッドのvalidatePageを使用して、余白が適切であることを確認します。このルーチンによって、わずかな余白設定が返されます。
インデックスカードの代わりに A4 用紙を使用すると、マージンはまったく問題ありません。横長のインデックス カードを選択して pageFormat オブジェクトを見ると、横長を選択したにもかかわらず、縦長であり、幅が高さよりも長く指定されているにもかかわらず、縦長であることがわかります。
任意の提案、感謝します