尝试了两种方式:
1:if (job.printDialog(attributes))
job.print(attributes);
这种方式下,可以打印,但显示的打印对话框包含页面设置,设置其中的横向、纵向打印无效,这样的结果程序显然无法交差。(系统要求不能使用本地打印对话框) 2.PrintService方式
PrintRequestAttributeSet pras = ...;
DocFlavor flavor = ...;
PrintService printService[] =
PrintServiceLookup.lookupPrintServices(flavor, pras);
PrintService defaultService =
PrintServiceLookup.lookupDefaultPrintService();
PrintService service = ServiceUI.printDialog(null, 200, 200,
printService, defaultService, flavor, pras);
if (service != null) {
DocPrintJob job = service.createPrintJob();
String fis=......
DocAttributeSet das = new HashDocAttributeSet();
Doc doc = new SimpleDoc(fis, flavor, das);
job.print(doc, pras);
}
这种方式打印图片(gif、png等)都没有问题,设置的横向、纵向都起作用,但无法打印文本字符串。无论DocFlavor设置成DocFlavor.String.还是其他,反正适合打文字的DocFlavor都无法找到打印服务
我在网上已经搜了很久了,暂时还没有发现这个问题在哪里,各位大侠帮我想想。
1:if (job.printDialog(attributes))
job.print(attributes);
这种方式下,可以打印,但显示的打印对话框包含页面设置,设置其中的横向、纵向打印无效,这样的结果程序显然无法交差。(系统要求不能使用本地打印对话框) 2.PrintService方式
PrintRequestAttributeSet pras = ...;
DocFlavor flavor = ...;
PrintService printService[] =
PrintServiceLookup.lookupPrintServices(flavor, pras);
PrintService defaultService =
PrintServiceLookup.lookupDefaultPrintService();
PrintService service = ServiceUI.printDialog(null, 200, 200,
printService, defaultService, flavor, pras);
if (service != null) {
DocPrintJob job = service.createPrintJob();
String fis=......
DocAttributeSet das = new HashDocAttributeSet();
Doc doc = new SimpleDoc(fis, flavor, das);
job.print(doc, pras);
}
这种方式打印图片(gif、png等)都没有问题,设置的横向、纵向都起作用,但无法打印文本字符串。无论DocFlavor设置成DocFlavor.String.还是其他,反正适合打文字的DocFlavor都无法找到打印服务
我在网上已经搜了很久了,暂时还没有发现这个问题在哪里,各位大侠帮我想想。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货