0 0

java如何获取客户端打印机 求教10

我的代码如下,但是只是获取服务端的打印机,如何获取客户端的打印机,求解。。。。
public static int print(QuickMarkPrintUtil qp,PaperSetting paper) {
		// ReadData();
		// 通俗理解就是书、文档
		Book book = new Book();
		// 设置成竖打
		PageFormat pf = new PageFormat();
		pf.setOrientation(PageFormat.PORTRAIT); // LANDSCAPE表示竖打;PORTRAIT表示横打;REVERSE_LANDSCAPE表示打印空白
		// 通过Paper设置页面的空白边距和可打印区域。必须与实际打印纸张大小相符。
		Paper p = new Paper();
		if (paper != null) {
			p.setSize(Double.valueOf(paper.getP_paper_width()) * 72 / 25.4,
					Double.valueOf(paper.getP_pager_height()) * 72 / 25.4);
			p.setImageableArea(
					Double.valueOf(paper.getP_image_x()) * 72 / 25.4,
					Double.valueOf(paper.getP_image_y()) * 72 / 25.4,
					Double.valueOf(paper.getP_image_able_area_width()) * 72 / 25.4,
					Double.valueOf(paper.getP_code_image_height()) * 72 / 25.4);
		} else {
			p.setSize(240, 181); // 纸张大小(590, 840)表示A4纸
			// p.setImageableArea(70, 40, 125, 160); // A4(595 X
			// 842)设置打印区域,其实0,0应该是72,72
			// ,因为A4纸的默认X,Y边距是72
			p.setImageableArea(40, 40, 150, 170);
		}

		pf.setPaper(p);
		// 把 PageFormat 和 Printable 添加到书中,组成一个页面
		book.append(qp, pf);
		// 查找打印机==[color=red]这里只能获取服务端的打印机列表,如何获取客户端的 求指教啊[/color]
		PrintService pss[] = PrinterJob.lookupPrintServices();
		PrintService ps = null;
		if (pss == null) {
			LogerUtil.info("no PrintService in this computer");
			return 0;
		}
		for (int i = 0; i < pss.length; i++) {
			if ("TSC TTP-244 Plus".equals(pss[i].getName())) {
				ps = pss[i];
				break;
			}
		}
		if (ps == null) {
			LogerUtil
					.info("no available PrintService[TSC TTP-244 Plus] in this computer");
			return 0;
		}
		// 获取打印服务对象
		PrinterJob job = PrinterJob.getPrinterJob();
		// 设置打印类
		job.setPageable(book);

		try {
			// 可以用printDialog显示打印对话框,在用户确认后打印;也可以直接打印
			// boolean a = job.printDialog(); 
			// if (a) {
			job.print();
			return 1;
			// }else{
			//	 return 2;
			// }
		} catch (PrinterException e) {
			e.printStackTrace();
			return 0;
		}
	}

问题补充
没人帮忙回答下吗?
2013年6月03日 15:28

2个答案 按时间排序 按投票排序

0 0

Server端后台代码实现的打印,当然只能查找server所在的网络打印机咯。Server端最多知道client端IP相关的信息,要操作client端的事情,只能以此为延伸想办法吧。

2013年6月03日 16:14
0 0

首先,你这段代码应该是运行于web容器上,所以你的代码自然获取到的是服务端打印机。如果使用客户端打印机,可以使用浏览器的打印控件。下面给出几个链接,供你参考:
http://blog.sina.com.cn/s/blog_4c495b5f01011jgx.html
代码段为:

<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0 VIEWASTEXT></OBJECT>
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="center">
<input   type=button   value=打印       onclick= "document.all.WebBrowser.ExecWB(6,1) "   class= "NOPRINT "> 
<input   type=button   value=直接打印   onclick= "document.all.WebBrowser.ExecWB(6,6) "   class= "NOPRINT "> 
<input   type=button   value=页面设置   onclick= "document.all.WebBrowser.ExecWB(8,1) "   class= "NOPRINT "> 
<input   type=button   value=打印预览   onclick= "document.all.WebBrowser.ExecWB(7,1) "   class= "NOPRINT ">
</td>
</tr>
</table>

2013年6月03日 16:00

相关推荐

    java考试题 求教

    ```java public class Emp { private int emp_id; private String emp_name; private String job; private double salary; public Emp(int emp_id, String emp_name, String job, double salary) { this.emp_...

    Canon LBP 系列打印机驱动

    在Linux环境下,特别是Ubuntu系统,配置打印机驱动可能会对新手来说是一项挑战。然而,对于Canon LBP系列打印机,尤其是Canon LBP2900,有一套相对简单的方法可以在Ubuntu Server 12.04.1 i386版本上进行驱动安装。...

    JAVA版《魔塔24层》

    作为一个java初学者,开发者通过实践创作了一个完整的24层迷宫塔游戏,旨在锻炼自己的编程技能,并向同行求教。源码的公开也为我们提供了一个学习和研究的宝贵资源。 首先,我们要理解Java Applet。Java Applet是一...

    西农Java实习,实习五到实习六

    需要注意的是,由于这些代码是作者个人编写,可能存在错误,因此在学习过程中需要谨慎对待,遇到问题应积极查找资料、参与讨论,或者向指导老师求教。 总之,“西农Java实习,实习五到实习六”是一个全面的Java学习...

    Java用eclipse插件计算器

    用eclipse插件制作的java计算器,基本功能都能实现,含jar,适合java初学者,需改进处求教

    java注册表修改ie主页

    刚学java做的一个通过注册表修改ie默认主页,不过会被杀毒拦截,怎么过杀毒拦截,求教

    Java语言程序设计自学指导书.doc

    * 在学习中要刻苦钻研、踏踏实实、虚心求教、持之以恒。 * 在学习时要抓住基本知识点的掌握对整个 Java 的编程思想应有完整的整体概念。 * 通过课本中的大量实例可以巩固和加深对所学理论的理解,并培养分析能力和...

    对JAVA程序设计的感想.pdf

    在实际项目中,可能会根据需求选择使用Java进行快速开发,然后通过工具转换为C++以获取更高的运行效率。 总的来说,Java是一门既富有挑战性又充满机遇的语言。它既有强大的开发框架和库支持,也有性能上的局限。...

    java词汇表

    这是我辛辛苦苦整理出来的java词汇表啊,大家可以参考一下哦,么么哒,新手求教了

    alibaba p3c 阿里巴巴JAVA P3C eclipse 代码规约插件 离线安装下载

    阿里P3C(P3C stands for "P3C Code Checker")是阿里巴巴开源的一款基于Eclipse的Java代码规约检查插件,旨在提升代码质量和开发效率,遵循阿里巴巴内部的Java编程规范。P3C源自阿里巴巴的“编码规约”实践,它为...

    java开发的简历模板[参考].pdf

    她对自己的评价是虚心求教,有良好的编程习惯和问题解决能力,对工作充满热情,适应力强,具备团队协作精神。她坚信不断学习是提升自我的关键。 总结来说,这份简历展示了求职者在Java开发领域的全面技能和实践经验...

    java开发年终工作总结.doc

    在工作方法上,开发者提出了几点自我改进的建议,如提高主动性、注重实效、增强专业能力、虚心求教和勤奋工作。他还分享了在实施和维护项目过程中遇到的挑战,包括与不同用户沟通的技巧,以及系统升级和维护的经验。...

    extjs文件浏览框问题求教

    标题中的“extjs文件浏览框问题求教”表明这是一个关于ExtJS框架中文件选择或浏览功能的编程问题。ExtJS是一个流行的JavaScript库,用于构建富客户端应用程序,它提供了丰富的组件库,包括文件浏览框(FileBrowser)...

    PHP推广链接的修改,求教

    PHP推广链接的修改,求教 这两个文件可以随时互换的,只是推广链接的形式不同;

    公式求教共4页.pdf.zip

    很抱歉,根据您提供的信息,"公式求教共4页.pdf.zip"似乎是一个包含四页公式教学内容的PDF文档的压缩文件,而"赚钱项目"可能是压缩包中的另一个文件或者是一个误输入。然而,没有实际的文件内容,我无法提供具体的IT...

    求教类似SUMIF;COUNTIF的条件函数的写法???

    求教类似SUMIF;COUNTIF的条件函数的写法???

    2016java个人年终工作总结.pdf

    在2016年的Java开发工作中,这位程序员经历了一系列项目,从中积累了丰富的经验和技能。首先,他在XX.5.10至XX.7期间参与了联通116114门户网站的开发,主要实现了登录注册、公告模块、短信发送等功能,并接触了...

    年度工作总结及2021年工作计划-(JAVA开发工程师2).docx

    在遇到技术难题时,他积极向同事求教,记录问题和解决方案,这有助于提高他的技术理解和问题解决能力。 在过去的一年中,工程师在思想观念、学习和团队合作方面都有所进步。他利用业余时间自学新技术并与同事交流,...

Global site tag (gtag.js) - Google Analytics