【发布时间】:2021-04-21 10:21:52
【问题描述】:
我正在尝试打印具有自定义尺寸的页面。但它不工作。 我已经为我希望我的页面的宽度和高度设置了变量。
查看我的代码并提出一些更改建议
PrinterJob job = PrinterJob.getPrinterJob();
job.setJobName("Print Data");
job.setPrintable(new Printable(){
public int print(Graphics pg,PageFormat pf, int pageNum){
//Paper paper = pf.getPaper();
Paper paper = new Paper();
double width = 8d * 22d;
double height = 4d * 22d;
double margin = 0.2d * 22d;
paper.setSize(width, height);
paper.setImageableArea(
margin,
margin,
width - (margin * 2),
height - (margin * 2));
job.setPrintable(this, pf);
if(pageNum > 0){
return Printable.NO_SUCH_PAGE;
}
Graphics2D g2 = (Graphics2D)pg;
g2.translate(pf.getImageableX(), pf.getImageableY());
System.out.println("width1 = " + pf.getWidth());
System.out.println("height1 = " + pf.getHeight());
g2.setColor(Color.BLACK);
g2.draw(new Rectangle2D.Double(0, 0, pf.getWidth(), pf.getHeight()));
jPanel3.printAll(g2);
return Printable.PAGE_EXISTS;
}
});
System.out.println("1");
boolean ok = job.printDialog();
if(ok){
try{
System.out.println("2");
job.print();
System.out.println("3");
}
catch (PrinterException ex){
ex.printStackTrace();
}
}
我被这个问题困住了。无论我设置什么尺寸。我得到 ISO A4 尺寸的打印。我认为他们的代码有问题。
【问题讨论】:
-
好的,也不要尝试在
print方法中更改纸张...有点晚,因为页面格式和纸张详细信息已经确定,并且详细信息可能已经发送到打印机
标签: java netbeans netbeans-8