chris_brabant Ответов: 0

Отображение диалогового окна настроек страницы с моими значениями для печати


Привет,
Я хочу, чтобы отобразить диалоговое окно настройки страницы, как это :

Снимок диалогового окна страницы

Значения, которые я хочу отобразить, следующие :
размер : А4
ориентация : ландшафтная
поля : левое=15, справа=15, верхнее-15, нижнее-15 (в миллиметрах)

Я использую экземпляр HashPrintRequestAttributeSet для передачи параметров в 'getPageFormat' из 'PrinterJob', а затем передаю вычисленный формат функции pageDialog, но значения, отображаемые в диалоговом окне, неверны, особенно поля.

Не могли бы вы исправить приведенный ниже код, чтобы получить ровно 15 мм для каждого поля в диалоговом окне ?

Спасибо.
Крис

Что я уже пробовал:

public void actionPerformed(ActionEvent arg0) {
    try {
        PrinterJob pj = PrinterJob.getPrinterJob() ;
        HashPrintRequestAttributeSet printRequestSet = initializePrintingAttributes() ;
        PageFormat pf = pj.getPageFormat(printRequestSet) ;
        pj.pageDialog(pf) ;
    } catch (Throwable e) {
        e.printStackTrace();
    }
}

private HashPrintRequestAttributeSet initializePrintingAttributes() {
    HashPrintRequestAttributeSet printRequestSet = new HashPrintRequestAttributeSet() ;

    printRequestSet.add(OrientationRequested.LANDSCAPE) ;

    float width = MediaSize.ISO.A4.getX(MediaPrintableArea.MM) ;
    float height = MediaSize.ISO.A4.getY(MediaPrintableArea.MM) ;
    printRequestSet.add(new MediaPrintableArea(15f, 15f, (float)width-15*2, (float)height-15*2, MediaPrintableArea.MM)) ;

    printRequestSet.add(MediaSizeName.ISO_A4) ;
    return printRequestSet ;
}

Richard MacCutchan

"но значения, отображаемые в диалоговом окне, неверны"
Ну, мы не можем догадаться, что это за ценности. Если вы хотите, чтобы кто-то помог вам, пожалуйста, предоставьте полную информацию о вашей проблеме.

chris_brabant

Привет,
значения, отображаемые для полей, следующие :
слева = 25,35 мм
правильно = 25.4 мм
верх = 25,4 мм
дно = 25,51 мм

Как вы можете видеть, он не соответствует значениям, которые я задал в атрибуте "MediaPrintableArea".
Я не уверен, что атрибут, который я должен использовать для управления полями, - это "MediaPrintableArea", но я не вижу никакого другого, соответствующего полям.

Спасибо

Крис

0 Ответов