2011-07-17 19 views
7

Quiero imprimir un <p:dataTable>, así que uso <p:printer>, pero quiero omitir la impresión de la piel y hacer que se vea como un <h:dataTable> . ¿Cómo puedo hacer esto?Cómo convertir PrimeFaces t: dataTable a h norma: dataTable (sin piel) y luego imprimirlo

Además, ¿es posible cambiar la orientación del papel de la impresión? Me gustaría imprimirlo como paisaje en lugar de retrato.

<h:outputLink id="lnk" value="#"> 
    <p:printer target="tbl" /> 
    <p:graphicImage value="http://www.primefaces.org/showcase/images/print.png" /> 
</h:outputLink> 

no he encontrado ningún atributo adecuado en la etiqueta <p:printer>.


actualización: lo siento, no importa la <p:printer> se puede utilizar en un <h:dataTable>, así que también puede simplemente responder únicamente a la segunda.

Respuesta

7

Ambas preguntas se responden con CSS @media print rule. Le permite especificar estilos CSS que son específicos para la salida impresa. Puede insertar esas reglas en un archivo de hoja de estilo CSS normal o elemento <style> de la forma habitual.


Quiero imprimir un <p:dataTable>, así que uso <p:printer>, pero quiero omitir la impresión de la piel y hacer que se vea como un <h:dataTable>. ¿Cómo puedo hacer esto?

de búsqueda el nombre de clase de la <p:dataTable> y redefinir en el @media regla:

@media print { 
    .primeFaces-dataTable-className { 
     border: 0; 
     margin: 0; 
     padding: 0; 
     background: none; 
     color: black; 
    } 
} 

es probable más, no sé todo desde la parte superior de la cabeza, debe ser capaz de compruebe usando Firebug o las herramientas del desarrollador de Chrome qué nombre de clase se ha usado y qué propiedades se han establecido para que sepa cuál debe restablecer a 0, none u otro valor predeterminado.


Además, es posible cambiar la orientación del papel de la impresión? Me gustaría imprimirlo como paisaje en lugar de retrato. Usar CSS.

Según CSS 2.1, puede especificar de la siguiente manera:

@media print { 
    @page { 
     size: landscape; 
    } 
} 

Sin embargo, esto tiene impedimentos específicos del navegador, no es compatible con FF y en MSIE < = 7. Para soluciones alternativas, marque la respuesta aceptada de esta pregunta: Landscape printing from HTML

+0

wow. Esto es bueno saber –

+0

hm bonita respuesta realmente thx pero tengo otra :). Cuando tengo mucha información en la pantalla, solo se imprime una página y se pierde otra información. ¿sabes cómo solucionar este problema? – hudi