java 打印 PrintService 如何获取客户端打印机

/**打印图片支持.png图片*/publicstaticvoiddrawImage(Filefile)throwsException{DocFlavordof=null... /*
* 打印图片 支持 .png 图片
*/
public static void drawImage(File file) throws Exception{
DocFlavor dof = null;
String fileName = file.getName();
if(fileName.endsWith(".gif")){
dof = DocFlavor.INPUT_STREAM.GIF;
}else if(fileName.endsWith(".jpg")){
dof = DocFlavor.INPUT_STREAM.JPEG;
}else if(fileName.endsWith(".png")){
dof = DocFlavor.INPUT_STREAM.PNG;
}
//获得打印属性
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
//获得默认打印设备 [服务器端]
PrintService ps = PrintServiceLookup.lookupDefaultPrintService();

pras.add(OrientationRequested.PORTRAIT);
pras.add(new Copies(1));
pras.add(PrintQuality.HIGH);
DocAttributeSet das = new HashDocAttributeSet();
das.add(new MediaPrintableArea(0, 0, 4, 6, MediaPrintableArea.INCH));

FileInputStream fin = new FileInputStream(file.getPath());

Doc doc = new SimpleDoc(fin ,dof, das);

DocPrintJob job = ps.createPrintJob();

job.print(doc, pras);
fin.close();

}
以上是我的源码, 现在只能获取服务器端的打印机,如何获取客户端的呢? 求各位大神指教!
展开
 我来答
小傻

推荐于2016-05-10 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31138
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部
java可以使用javax提供的print工具类,访问到系统的打印机基本信息,示例如下:
import java.io.File;
import java.io.FileInputStream;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.ServiceUI;
import javax.print.SimpleDoc;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.swing.JFileChooser;

public class Printers
{

public static void main(String[] args)

{

HashPrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();

DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;

//查找所有的可用的打印服务

PrintService[] printService = PrintServiceLookup.lookupPrintServices(flavor, pras);

for (int i =0; i<printService.length ;i++ )

{

System.out.println(printService[i].getName());

}

}
}
匿名用户
2013-09-24
展开全部
普通的安装JDK,是没有权限读取客户端的资源的。
追问
那有没什么解决的方法呢?
追答
java.policy
java.security

在里面添加相应的权限——客户机
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b5dbdb6ad
2013-09-24
知道答主
回答量:28
采纳率:0%
帮助的人:6.6万
展开全部
坐寺大神来,我也想知道!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式