Условно рендеринг компонентов JSF для печати - PullRequest
2 голосов
/ 23 ноября 2011

Я хочу напечатать только определенную часть моей веб-страницы (поэтому не всю страницу). Как я могу добиться этого в JSF?

Ответы [ 2 ]

14 голосов
/ 23 ноября 2011

Обычно это контролируется CSS с помощью display: none|block. Проверьте CSS правила мультимедиа .

Например, как @media print {} внутри CSS-файла по умолчанию:

@media print {
    #header, #footer, #menu { 
        display: none;
    }
}

(в приведенном выше примере элементы HTML будут скрыты с идентификаторами header, footer и menu)

Или через класс универсального стиля:

@media screen {
    .printonly { 
        display: none;
    }
}

@media print {
    .noprint { 
        display: none;
    }
    .printonly { 
        display: block;
    }
}

Затем вы добавляете styleClass="noprint" к тем, которые вы хотите скрыть от печати, и styleClass="printonly" к тем, которые вы хотите показать только в печати. ​​

Вы также можете поместить определенный CSS для печати в его собственный файл таблицы стилей и ссылаться на него, используя <link media="print"> или <h:outputStylesheet media="print">, как показано ниже:

<link rel="stylesheet" href="#{request.contextPath}/css/print.css" media="print" />
<!-- Or -->
<link rel="stylesheet" href="#{resource['css/print.css']}" media="print" />
<!-- Or -->
<h:outputStylesheet name="css/print.css" media="print" />
#header, #footer, #menu { 
    display: none;
}

Следует отметить, что атрибут <h:outputStylesheet media> был добавлен только в JSF 2.1, поэтому, если вы все еще используете JSF 2.0, рассмотрите возможность обновления до версии не ниже 2.1 (должно быть на 100% совместимо без каких-либо изменений кода и конфигурации в самом веб-приложении). ). В противном случае просто перейдите на простой подход HTML <link>.

0 голосов
/ 23 ноября 2011

Это можно сделать с помощью чистого CSS, указав тип носителя: http://www.w3.org/TR/CSS2/media.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...