我想用横向打印来打印jpanel。我尝试了以下代码,但文本打印不正确。如果我删除了 pf.setOrientation(PageFormat.LANDSCAPE);
那么它将在纵向页面中打印。横向打印的步骤是什么?
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) {
}
}
最佳答案
使用job.setPageable(yourImplementationOfPageableHere)
。然后就可以实现
PageFormat getPageFormat(int pageIndex)
为每个页面返回所需页面格式的接口(interface)方法。
关于java - Java 打印中的方向没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18591136/