Обычно это контролируется 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>
.