1

画像を印刷する必要があります。のように向きを設定すると

printRequestAttributeSet.add(OrientationRequested.LANDSCAPE);

すべて正常に動作します。

しかし、次print()のメソッド内で方向を設定するとPrintable:

public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
            if (pageIndex >= images.size()) 
                return Printable.NO_SUCH_PAGE;

            image = images.get(pageIndex);
            // if image width>height --> Landscape, else --> Protrait
            if (image.getWidth(null) > image.getHeight(null)) 
                pageFormat.setOrientation(PageFormat.LANDSCAPE);
            else 
                pageFormat.setOrientation(PageFormat.PORTRAIT);

            graphics2D = (Graphics2D) graphics;
            graphics.drawImage(image, 0, 0, image.getWidth(null), image.getHeight(null),   null);

            return PAGE_EXISTS;
};

最初のページでは機能しません。つまり、最初のページを除くすべてのページを横向きモードで印刷します。

4

2 に答える 2

4

すでにページを印刷しようとしているときは、向きを変更することはできません。

向きの異なる多数のページを提供する必要がある場合は、ブックページング可能なインターフェイスを確認する必要があります。例については、Javaでの印刷を参照してください。

あなたが持っている他の唯一の解決策は、で画像を回転させることですPrintable、それはせいぜい面倒です。

ps-印刷は楽しいです...それが機能するとき;)

于 2012-08-30T11:25:06.480 に答える
0

pf.setOrientation(PageFormat.LANDSCAPE)電話をかける前の場所printJob

元。

if(pay_type.getSelectedItem().equals("EMI"))
  {
      EMI();
  }
  else{
       validation();  
  }
   PrinterJob job = PrinterJob.getPrinterJob();
     job.setPrintable((Printable) this);
     boolean ok = job.printDialog();
     if (ok) {
         try {
             //here set page oriatetion
              job.print();
         } catch (PrinterException ex) {
          /* The job did not successfully complete */
         }
     }
于 2018-03-09T19:36:50.903 に答える