2012-05-27 38 views

Trả lời

6

Trước khi tôi chỉ cho bạn cách thực hiện việc này, xin lưu ý rằng việc thay đổi Kích thước trang có thể sẽ không cung cấp cho bạn những gì bạn muốn. Nó sẽ làm cho trang lớn hơn hoặc nhỏ hơn tùy thuộc vào những gì bạn muốn, đặt vị trí của các phần tử sẽ không thay đổi. Trong trường hợp của bạn, báo cáo có thể thậm chí không biên dịch tùy thuộc vào nơi bạn có các mục được đặt ra.

Bạn làm có một vài tùy chọn mặc dù:

  1. Trước tiên, bạn có thể tạo ra một bản báo cáo thứ hai cho các định dạng A5, và sau đó tại thời gian chạy lấy báo cáo thích hợp tùy thuộc vào những gì bạn muốn. Đây có lẽ là giải pháp dễ nhất, nhưng điều đó có nghĩa là bạn kết thúc với gần 2 báo cáo giống nhau. Có nghĩa là bất kỳ thay đổi nào trong tương lai bạn sẽ phải làm ở hai nơi.
  2. Thứ hai nếu đó là một báo cáo khá thẳng về phía trước với bố cục điển hình, bạn có thể sử dụng một cái gì đó như Dynamic Jasper để tạo báo cáo trong mã java.
  3. Cuối cùng, bạn có thể làm việc trực tiếp với API của Báo cáo Jasper để tạo báo cáo của bạn vào thời gian chạy.


Bây giờ để trả lời câu hỏi của bạn. Đầu tiên tải lên các tập tin JRXml vào một đối tượng JasperDesign:

//Note JRXMLLoader could also take a File object or 
//InputStream instead of a String as the parameter. 
JasperDesign design = JRXmlLoader.load("report.jrxml"); 

Khi bạn có JasperDesign bạn có thể thiết lập kích thước trang với những gì mà bạn muốn. Giấy A5 từ những gì tôi có thể nói là 5.83 "× 8.27". Để chuyển đổi kích thước này thành kích thước mà JasperReport hiểu được nhân với 72, nhận được 420 x 596 (tôi làm tròn khi chúng ta phải đặt Số nguyên).

design.setPageHeight(596); 
design.setPageWidth(420); 

Từ đó bạn đồng hành trên chuyến phiêu lưu xuất khẩu như bình thường.

Các vấn đề liên quan