我将在兄弟 QL-700 上通过 jasper-report 打印标签。我的问题是 java 告诉打印机驱动程序错误的标签格式☹ - 当我在 Java 中使用打印机对话框时,我在下拉列表中找不到正确的页面大小 - 当我进入 windows 驱动程序时该页面可用设置/属性(62 毫米),但在 java 中缺少页面大小☹ - 当我尝试定义 MediaSize 时它不起作用...... - 我有趣的行为是当我首先定义一个 DIN_A4 页面,然后是一个自定义页面时,打印机对话框将显示自定义页面,但打印 DIN_A4 ...</p>
标签尺寸为 62x20 毫米,打印机对话框显示页面尺寸为 17x54 毫米(从查找介质?是最接近 62x20 的尺寸)=>但是如果尺寸不是 62 毫米,打印机将不会打印……☹我的代码片段:
// Fill report
JasperPrint jasperPrint = null;
try {
jasperPrint = report.fillIt(jasperReport, (HashMap<String,Object>) parameters, dataSource2);
} catch (JRException e1) {
//e1.printStackTrace();
}
logger.info("Fill report");
logger.info(jasperPrint.toString());
logger.info("start print Report");
logger.info("h=" + jasperPrint.getPageHeight() + " w=" +jasperPrint.getPageWidth());
PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
// printRequestAttributeSet.add(MediaSizeName.ISO_A4);
printRequestAttributeSet.add(new MediaPrintableArea(0, 0, 62, 4, MediaPrintableArea.MM));
printRequestAttributeSet.add(new Copies(1));
PrintServiceAttributeSet printServiceAttributeSet = new HashPrintServiceAttributeSet();
//PrintServiceAttributeSet .add(new MediaPrintableArea(0, 0, 62, 4, MediaPrintableArea.MM));
JRPrintServiceExporter exporter = new JRPrintServiceExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
SimplePrintServiceExporterConfiguration expConfig = new SimplePrintServiceExporterConfiguration();
PrintService service = Printerlookup.getPrintservice(printername, Boolean.TRUE, Boolean.TRUE);
expConfig.setPrintService(service);
//exporter.setParameter(JRExporterParameter.PAGE_INDEX, pageIndex);
//exporter.setParameter(JRExporterParameter.START_PAGE_INDEX, pageStartIndex);
//exporter.setParameter(JRExporterParameter.END_PAGE_INDEX, pageEndIndex);
expConfig.setPrintRequestAttributeSet(printRequestAttributeSet);
expConfig.setPrintServiceAttributeSet(printServiceAttributeSet);
// expConfig.setDisplayPageDialog(Boolean.TRUE);
// expConfig.setDisplayPrintDialog(Boolean.TRUE);
expConfig.setDisplayPrintDialog(Boolean.FALSE);
exporter.setConfiguration(expConfig);
try {
exporter.exportReport();
} catch (JRException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
logger.info("Finished Test Print ");
有人知道我做错了什么吗?谢谢!