有关于用java来调用打印机进行打印时的设置问题

众所周知,用java可以调用打印机来进行打印。但是本人在使用的过程中遇到了很多的问题,有的其实很简单,但却当时并不知道该怎么做,无从下手,最后在偶然的机会解决了问题。在此希望能够帮助大家。

在使用打印机服务时,很多人在设置纸张上所苦恼。比如,我想打印凭证单据,这种单据是HALFLETTER,用jasperreport编写了打印的报表的模板,当具体打印输出时,打印机走纸却是走了一张A4纸的大小,也就是说只用了纸的一半,同时浪费了一半。这令很多人犯难。我当时也在上面困扰了很长时间。

面临的问题是:我已经在Jasperreport中设置好了模板的大小等的格式了啊,为什么打印出来还是要占据完整的一张A4纸?

问题的关键:其实打印的时候,是要有两处地方需要设置的:1、我们的打印模板,也就是上例中的Jasperreport模板;2、打印机设置。

而我们编程人员,往往一般是只注意到了模板的设置,而忽略了打印机的设置。我们打印纸张的格式设置是在打印机中进行设置的。

因此,解决方法是:在设置好模板后,还要设置打印机中的纸张规格,具体的设置方法是打开计算机系统中的“设备和打印机”,然后选中所需要的打印机,右击点“打印机首选项”,在其中进行纸张大小的设置,设置纸张的大小为所需要的纸张大小(当然放入打印机中的纸张也必须满足这个规格)。这样双管齐下,才能打印出合适的效果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,可以使用Java打印API来调用打印机进行打印。下面是一个简单的示例代码,演示如何在Java程序中调用打印机进行打印: ```java import java.awt.print.PrinterJob; import javax.print.PrintService; import javax.print.PrintServiceLookup; import javax.print.attribute.HashPrintRequestAttributeSet; import javax.print.attribute.PrintRequestAttributeSet; import javax.print.attribute.standard.Copies; public class PrintDemo { public static void main(String[] args) { // 获取打印服务 PrintService service = PrintServiceLookup.lookupDefaultPrintService(); // 构造打印请求属性集 PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); pras.add(new Copies(1)); // 打印份数 // 获取打印作业 PrinterJob job = PrinterJob.getPrinterJob(); job.setPrintService(service); // 设置打印服务 job.setPrintable(new MyPrintable()); // 设置打印内容 try { job.print(pras); // 进行打印 } catch (Exception e) { e.printStackTrace(); } } } // 打印内容 class MyPrintable implements Printable { public int print(Graphics g, PageFormat pf, int pageIndex) { if (pageIndex > 0) { return NO_SUCH_PAGE; } // 打印内容 Graphics2D g2d = (Graphics2D) g; g2d.drawString("Hello World!", 100, 100); return PAGE_EXISTS; } } ``` 在上述代码中,我们首先获取了默认的打印服务,然后构造了打印请求属性集,包括打印份数等信息。接着,我们获取了打印作业,并设置打印服务和打印内容。最后,调用`job.print(pras)`方法进行打印
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值