странное поведение при использовании printJobAttributeSet с MediaSize и MediaTray
Я написал java-метод для печати некоторых PDF-документов, но поведение странное:
Когда я добавляю printJobAttributeSet.add(MediaSizeName.ISO_A4);
в printJobAttributeSet выбор лотка больше не работает, даже если параметр selectedTray не равен нулю.
Выбор лотка работает, когда я не использую A4MediaSizeName, но это приводит к неверно масштабированной печати.
мой код:
private void printDocument(File document, PrintService myPrintService, MediaTray selectedTray) {
if (myPrintService != null) {
try {
PDDocument pdfdocument = PDDocument.load(document);
SimpleDoc pdfDoc = new SimpleDoc(new PDFPrintable(pdfdocument, Scaling.ACTUAL_SIZE, false),
DocFlavor.SERVICE_FORMATTED.PRINTABLE, null);
PrintRequestAttributeSet printJobAttributeSet = new HashPrintRequestAttributeSet();
if (selectedTray != null) {
printJobAttributeSet.add(selectedTray);
}
printJobAttributeSet.add(MediaSizeName.ISO_A4);
DocPrintJob job = myPrintService.createPrintJob();
job.print(pdfDoc, printJobAttributeSet);
LOG.info("Druckauftrag an drucker (" + myPrintService.getName() + ") gesendet !");
pdfdocument.close();
} catch (Exception e) {
LOG.error(e.toString());
}
} else {
LOG.error("Drucker oder Druckerfach nicht gefunden !");
}
}
Спасибо.