Từ sun's documentationTại sao phương thức in của java Printable được gọi nhiều lần với cùng một số trang?
"Hệ thống in có thể yêu cầu một trang được hiển thị nhiều lần trước khi chuyển sang trang tiếp theo".
Các ví dụ luôn hiển thị một cái gì đó như thế này:
Printable print(Graphics g, PageFormat pageFormat, int page) {
if (page == 0)
do...
else if(page == blah...)
}
Nếu bạn làm theo mô hình này mã của bạn thường hoạt động tốt vì nó là rõ ràng dựa trên số trang. Không theo mô hình này đã khiến tôi đau đớn lớn cho đến khi tôi nhận ra nó đã được gọi nhiều lần với cùng một số trang và bắt đầu cache các trang.
Tại sao phương thức in của java Printable được gọi nhiều lần với cùng một số trang?
Tôi nên lưu ý rằng tôi không thực sự nhớ lại khi nhìn thấy hành vi này khi tôi đang làm việc trên một hệ thống báo cáo dựa trên Java cách đây vài năm. Nó có thể là bởi vì chúng tôi đã trên Linux vào thời điểm đó. – ZoogieZork
Các hệ thống in trên Linux thường chuyển đổi toàn bộ tài liệu sang PostScript (nếu đó không phải là nó đã là) như một ngôn ngữ trung gian ngay cả khi làm việc với máy in dựa trên ban nhạc, vì vậy hệ thống in đang làm đệm cho bạn. –
Ah, tôi nghi ngờ như vậy. Tốt để biết, cảm ơn! – ZoogieZork