我想打印一个<p:dataTable>
,所以我使用<p:printer>
,但我想跳过打印皮肤,使它看起来像一个<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>
上使用,所以你也可以只回答第二个问题。
这两个问题都可以用css @media print
规则来回答。它允许您指定特定于打印输出的CSS样式。您可以将这些规则嵌入到普通的CSS样式表文件或<style>
元素中。
我想打印一个
<p:dataTable>
,所以我使用<p:printer>
,但我想跳过打印皮肤,使它看起来像<h:dataTable>
。我该怎么做呢?
查找<p:dataTable>
的类名并在@media
规则中覆盖它:
@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。对于变通方法,检查这个问题的公认答案:从HTML