Java打印-设置边框的大小

我尝试将大小设置为零或在Java中删除打印文档的边框。它始终具有标准的白色边框。

这是我打印JPanel和一些组件的功能:

    public void printComponent(){

PrinterJob pj = PrinterJob.getPrinterJob();

pj.setJobName(" Print Component ");

pj.setPrintable (new Printable() {

@Override

public int print(Graphics pg, PageFormat pf, int pageNum) throws PrinterException {

if (pageNum > 0){

return Printable.NO_SUCH_PAGE;

}

Graphics2D g2 = (Graphics2D) pg;

g2.translate(pf.getImageableX(), pf.getImageableY());

TournamentView.this.paint(g2);

return Printable.PAGE_EXISTS;

}

});

if (pj.printDialog() == false)

return;

try {

PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();

aset.add(OrientationRequested.LANDSCAPE);

PrinterResolution pr = new PrinterResolution(200, 200, PrinterResolution.DPI);

aset.add(pr);

pj.print( aset);

} catch (PrinterException ex) {

// handle exception

}

}

我正在使用Adobe PDF打印机,因为这里没有任何打印机。有什么建议?

回答:

使用带有参数的PrinterJob.setPrintable()版本PageFormat

在PageFormat中,设置纸张的可成像区域没有边框(x

= 0,y = 0,width =纸张的宽度,height =纸张的高度)。

您可能想通过PrinterJob.validatePage()来提供该文件,该文件:

返回页面的克隆,其设置已调整为与该PrinterJob的当前打印机兼容。例如,返回的PageFormat可以将其可成像区域调整为适合当前打印机使用的纸张物理区域。

这是一个好主意,因为打印机可能不支持无边界打印,并且它将通过此​​方法来调整您的PageFormat设置,以使设置与打印机兼容。

这是一个示例,该示例在带有删除边框的页面上打印一些文本:

PrinterJob pj = PrinterJob.getPrinterJob();

PageFormat format = pj.getPageFormat(null);

Paper paper = format.getPaper();

//Remove borders from the paper

paper.setImageableArea(0.0, 0.0, format.getPaper().getWidth(), format.getPaper().getHeight());

format.setPaper(paper);

pj.setPrintable(new Printable()

{

@Override

public int print(Graphics pg, PageFormat pf, int pageNum)

throws PrinterException

{

if (pageNum > 0)

return Printable.NO_SUCH_PAGE;

Graphics2D g2 = (Graphics2D)pg;

g2.translate(pf.getImageableX(), pf.getImageableY());

int textHeight = g2.getFontMetrics().getHeight();

g2.drawString("Good morning, what will be for eating?", 0, textHeight);

return Printable.PAGE_EXISTS;

}

}, format);

if (!pj.printDialog())

return;

pj.print();

在Windows上使用Postscript-> File Printer测试。仍然留有小边框,但这可能是打印机驱动程序的限制。

以上是 Java打印-设置边框的大小 的全部内容, 来源链接: utcz.com/qa/407754.html

回到顶部