java printing – 设置边框的大小
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java printing – 设置边框的大小,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2354字,纯文字阅读大概需要4分钟。
内容图文
![java printing – 设置边框的大小](/upload/InfoBanner/zyjiaocheng/815/60950967cad940429180e92de70f3a77.jpg)
我尝试将大小设置为零或删除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打印机,因为我这里没有任何打印机.有什么建议?
解决方法:
使用带有PageFormat参数的PrinterJob.setPrintable()版本.
在PageFormat中,设置纸张imageable area没有边框(x = 0,y = 0,宽度=纸张宽度,高度=纸张高度).
您可能希望通过PrinterJob.validatePage()提供,其中:
Returns the clone of page with its settings adjusted to be compatible with the current printer of this PrinterJob. For example, the returned PageFormat could have its imageable area adjusted to fit within the physical area of the paper that is used by the current printer.
这是一个好主意,因为打印机可能不支持无边距打印,并且此方法将调整您的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();
用Postscript测试 – > Windows上的文件打印机.仍然有一个小的边框,但这可能是打印机驱动程序的限制.
内容总结
以上是互联网集市为您收集整理的java printing – 设置边框的大小全部内容,希望文章能够帮你解决java printing – 设置边框的大小所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。