java客户端调用打印机

首先楼主遇到的问题是这样的: http://www.iteye.com/problems/95607

这种方式的问题就是 你的项目如果打包部署到云服务上面  那就直接gg了

楼主的问题环境是:pdf内容已经在后台用itextpdf已经画好了,所以我想要达到的目的仅仅就是在浏览器端调用打印机直接打印就好了

在这中间尝试了一些js插件 但是都需要在页面重新画,但是我已经在后台画了一遍的好吗,再让我在页面重新画一遍,心里是拒绝的,当然,最简单的办法就是,修改后台,在后台查询数据返回到页面,然后在页面画出来在打印,这是一种思路。

我的解决思路是:

后台画好的pdf,先把它在到服务器指定目录,然后页面通过iiframe访问存在服务器刚刚保存的这个文件,然后js调用打印机打印;

这里会用两个问题:

1.文件存到服务器指定目录后  怎么访问:可以在配置文件里面设置spring.resources.static-locations=file:/home

file后面是你系统指定的目录,这样就相当于将该目录设置为项目的根目录了,然后后台直接将文件存到这个目录,然后iframe直接访问系统根目录就可以了找到这个文件(因为项目打包jar后,没法吧项目存到项目根目录下面)

2.页面直接调用打印机,不显示打印预览

页面写入    <iframe style="display:none" id="printIframe"></iframe>

js:  $("#printIframe").attr("src",src);(src是项目访问文件的路径比如 localhost:8080/temp.pdf)

$("#printIframe")[0].contentWindow.print();

这样要打印的内容不用显示出来就可以打印,

描述不是很到位,有问题可以加Q:361528529

 

要在Java服务器上调用客户端打印机,可以使用Java Print Service API。这个API提供了一种标准化的方式来打印文档,支持本地和网络打印机。 下面是一个简单的示例代码,演示如何使用Java Print Service API 在服务器上调用客户端打印机: ``` import java.awt.print.*; import javax.print.*; public class PrinterExample { public static void main(String[] args) throws Exception { // Get the default print service. PrintService service = PrintServiceLookup.lookupDefaultPrintService(); // Create a printer job for the service. PrinterJob job = PrinterJob.getPrinterJob(); job.setPrintService(service); // Create a document to print. Printable printable = new MyPrintable(); Doc doc = new SimpleDoc(printable, DocFlavor.SERVICE_FORMATTED.PRINTABLE, null); // Print the document. job.print(doc, null); } } class MyPrintable implements Printable { public int print(Graphics g, PageFormat pf, int pageIndex) { if (pageIndex > 0) { return NO_SUCH_PAGE; } // Draw something on the graphics context. g.drawString("Hello, world!", 100, 100); return PAGE_EXISTS; } } ``` 这个例子创建了一个PrinterJob对象,并将其设置为默认打印服务。然后,它创建一个可打印文档,并使用PrinterJob对象打印它。在MyPrintable类中,您可以自定义打印内容。 请注意,这个示例假设客户端打印机已经安装,并且可以从服务器访问。如果客户端打印机是网络打印机,您需要使用PrintServiceLookup类查找它,而不是使用lookupDefaultPrintService()方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值