2011-07-17 2 views
7

<p:dataTable>을 인쇄하려고하므로 <p:printer>을 사용하지만 스킨 인쇄를 건너 뛰고 <h:dataTable>처럼 보이게하고 싶습니다. 어떻게해야합니까?PrimeFaces p : dataTable을 표준 h : dataTable (스킨 제외)으로 변환 한 다음 인쇄하는 방법

또한 인쇄의 용지 방향을 변경할 수 있습니까? 세로 대신 가로로 인쇄하고 싶습니다.

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

<p:printer> 태그에서 적절한 특성을 찾지 못했습니다.


업데이트 : 죄송합니다. <p:printer><h:dataTable>에서도 사용할 수 있으므로 두 번째 질문에만 대답 할 수 있습니다.

답변

7

두 가지 질문에 대해서는 CSS @media print rule으로 대답합니다. 인쇄 출력과 관련된 CSS 스타일을 지정할 수 있습니다. 이러한 규칙을 일반적인 CSS 스타일 시트 파일이나 <style> 요소에 일반적인 방법으로 포함시킬 수 있습니다.


은 내가 <p:dataTable>를 인쇄하려면, 그래서 <p:printer>을 사용하지만, 나는 피부를 인쇄 생략하고 그것이 <h:dataTable>처럼 보이게합니다. 어떻게해야합니까?

조회하여 <p:dataTable>의 클래스 명 및 @media 규칙을 오버라이드 (override) :

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

가능성이 더 나는 머리의 꼭대기에서 모두가 모르는, 당신은 할 수 있어야 Firebug 또는 Chrome 개발자 도구를 사용하여 어떤 클래스 이름이 사용되고 어떤 속성이 모두 설정되어 0, none 또는 다른 기본값으로 재설정해야하는지 알 수 있도록 확인하십시오.


또한, 인쇄 용지의 방향을 변경하는 것이 가능하다? 세로 대신 가로로 인쇄하고 싶습니다. CSS를 사용하십시오. 다음과 같이

CSS 2.1에 따라, 당신은 그것을 지정할 수 있습니다

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

이 그러나 브라우저 특정 장애를 가지고, 그것은 FF와 MSIE < = 7에서 지원되지 않는. 해결 방법은 다음 질문에 대한 대답을 확인하십시오. Landscape printing from HTML

+0

와우. 이것은 좋은 것을 알고있다 –

+0

hm 멋진 대답은 정말로 thx 다. 그러나 나는 또 다른 것을 가지고있다 :). 화면에 많은 정보가 있으면 한 페이지 만 인쇄되고 다른 정보는 손실됩니다. 이 문제를 어떻게 해결할 수 있는지 알고 있습니까? – hudi

관련 문제