Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中设置打印机边距_Java_Printing - Fatal编程技术网

如何在java中设置打印机边距

如何在java中设置打印机边距,java,printing,Java,Printing,当尝试使用打印API打印时,页边距似乎不在我们的控制范围内!。。请帮我设置打印机页边距,或者有没有办法在操作系统级别设置页边距 默认情况下,所有四个“左”、“右”、“上”和“下”都设置为1 我正在使用Java打印API,但在设置打印边距时遇到问题。 解决方案 我必须提供额外的打印属性来覆盖默认值 打印页边距, 由于以下原因,大多数打印机无法在介质的整个表面上打印: 打印机硬件限制 可用于查询假定打印作业的可接受值, 以及请求在可打印区域的约束范围内的区域 用于打印作业 HashPrintR

当尝试使用打印API打印时,页边距似乎不在我们的控制范围内!。。请帮我设置打印机页边距,或者有没有办法在操作系统级别设置页边距

默认情况下,所有四个“左”、“右”、“上”和“下”都设置为1

我正在使用Java打印API,但在设置打印边距时遇到问题。

解决方案

我必须提供额外的打印属性来覆盖默认值 打印页边距,

由于以下原因,大多数打印机无法在介质的整个表面上打印: 打印机硬件限制

可用于查询假定打印作业的可接受值, 以及请求在可打印区域的约束范围内的区域 用于打印作业

HashPrintRequestAttributeSet attr = new HashPrintRequestAttributeSet();
attr.add(new MediaPrintableArea(0f, 0f, w/72f, h/72f, MediaPrintableArea.INCH));       
PrinterJob job = PrinterJob.getPrinterJob();    
job.setPrintService(ps);
job.setPrintable(this);
job.setJobName(jobName);
job.print(attr);
j.setVisible(false);
j.dispose();
关键是提供属性以及
print()
指挥部

来源

PageFormat defaultPF = printJob.defaultPage();
Paper paper = defaultPF.getPaper();
if (isPortrait)
{
    defaultPF.setOrientation(PageFormat.PORTRAIT);
    paper.setImageableArea(0, 0, defaultPF.getWidth(), defaultPF.getHeight());
}
else
{
    defaultPF.setOrientation(PageFormat.LANDSCAPE);
    paper.setImageableArea(0, 0, defaultPF.getHeight(), defaultPF.getWidth());
}
defaultPF.setPaper(paper);
defaultPF = printJob.validatePage(defaultPF);

// now dialog has margins set to minimum
PageFormat pf = printJob.pageDialog(defaultPF);