我試圖打印我的Jpanel。我大部分工作。現在我正在嘗試定製一些諸如邊距之類的東西。將Paper設置爲PageFormatter不會更新PageFormatter
這裏是我的代碼
PrinterJob pjob = PrinterJob.getPrinterJob();
//*
PageFormat pf0 = pjob.defaultPage();
Paper p = pf0.getPaper();
//hardcode the page imageable area for testing. The sizes are valid ones i pulled from calling printerJob.getDialog(attr)...)
p.setImageableArea(28, 28, 556, 734);
pf0.setPaper(p);
//set the attributes for the formatter
PrintRequestAttributeSet attr_set = new HashPrintRequestAttributeSet();
attr_set.add(Fidelity.FIDELITY_TRUE);
attr_set.add(PrintQuality.HIGH);
attr_set.add(PrintQuality.HIGH);
attr_set.add(OrientationRequested.LANDSCAPE);
//set the printable area
int width = Math.round(MediaSize.NA.LETTER.getX(MediaSize.MM));
int height = Math.round(MediaSize.NA.LETTER.getY(MediaSize.MM));
attr_set.add(new MediaPrintableArea(10, 10, width - 20, height - 20, MediaPrintableArea.MM));
//update the page formatter
pf0 = pjob.getPageFormat(attr_set);
即使我打電話pf0.setPaper(p)
紙對象pf0
(頁面格式)不會更新。這裏是我的調試器顯示的值沒有改變的屏幕。
什麼給?
有幾件事情,首先,您要設置兩次可成像。首先通過'Paper',然後通過'MediaPrintableArea'。 'PrintJob'將根據許多因素對「PageFormat」進行更改,包括打印機的功能...... – MadProgrammer