2013-09-03 1 views
0

가로 인쇄로 jpanel을 인쇄하려고합니다. 다음 코드를 시도했지만 텍스트가 제대로 인쇄되지 않습니다. pf.setOrientation(PageFormat.LANDSCAPE);을 제거하면 세로 페이지에 인쇄됩니다. 가로로 인쇄하는 절차는 무엇입니까?Java 인쇄시 오리엔테이션이 변경되지 않습니다.

if(arg0.getActionCommand().equals("print")){ 
      final PrinterJob job = PrinterJob.getPrinterJob(); 
      job.setJobName("Printing"); 

      job.setPrintable (new Printable() {  
       public int print(Graphics pg, PageFormat pf, int pageNum){ 
        if (pageNum > 0){ 
        return Printable.NO_SUCH_PAGE; 
        } 
        pf.setOrientation(PageFormat.LANDSCAPE); 
        Graphics2D g2 = (Graphics2D) pg;     
        g2.translate(pf.getImageableX(), pf.getImageableY()); 
        panel01.printAll(g2); 
        return Printable.PAGE_EXISTS; 
       } 
      }); 
      boolean ok = job.printDialog(); 
      if (ok) { 
       try { 
         job.print(); 
       } catch (PrinterException ex) { 

       } 
     } 
+0

Errr 당신은 그 특성을 가진 어딘가에서 그'pf'를 사용하지 않아야합니까? – GGrec

+0

그러면 어떻게되어야할까요? –

답변

1

job.setPageable(yourImplementationOfPageableHere)을 사용하십시오. 그럼 각 페이지에 원하는 페이지 형식을 반환하는 인터페이스의

PageFormat getPageFormat(int pageIndex) 

인터페이스 방법을 구현할 수 있습니다.

관련 문제