странное поведение при использовании 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 !");
        }
    }

Спасибо.

0 ответов

Другие вопросы по тегам