2

私はこの 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 オブジェクトを見ると、横長を選択したにもかかわらず、縦長であり、幅が高さよりも長く指定されているにもかかわらず、縦長であることがわかります。

任意の提案、感謝します

4

0 に答える 0