librerias - ui define jsf
Condicionalmente renderiza componentes JSF para imprimir (2)
Quiero imprimir solo una parte determinada de mi página web (por lo tanto, no toda la página). ¿Cómo puedo lograr esto en JSF?
Esto se puede hacer a través de CSS puro especificando el tipo de medio: http://www.w3.org/TR/CSS2/media.html
Esto normalmente se controlará mediante CSS con display: none|block
. Verifique las reglas de medios de CSS .
Por ejemplo, como @media print {}
dentro de un archivo CSS predeterminado:
@media print {
#header, #footer, #menu {
display: none;
}
}
(el ejemplo anterior ocultará los elementos HTML con el header
IDs, el footer
y el menu
)
O a través de una clase de estilo genérica:
@media screen {
.printonly {
display: none;
}
}
@media print {
.noprint {
display: none;
}
.printonly {
display: block;
}
}
A continuación, agrega styleClass="noprint"
a aquellos que desea ocultar de la impresión, y styleClass="printonly"
a aquellos que desea mostrar solo en forma impresa.
También puede colocar el CSS específico de impresión en su propio archivo de hoja de estilo y hacer referencia a él utilizando <link media="print">
o <h:outputStylesheet media="print">
como se muestra a continuación:
<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;
}
Cabe destacar que el atributo <h:outputStylesheet media>
solo se agregó en JSF 2.1, por lo que si todavía está en JSF 2.0, considere actualizarse al menos a 2.1 (debería ser 100% compatible sin ningún código ni cambios de configuración en la propia aplicación web) ) De lo contrario, simplemente elija el enfoque simple HTML <link>
.