如何将PrimeFaces p:dataTable转换为标准h:dataTable(不带蒙皮),然后打印它



我想打印一个<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

横向打印

相关内容

  • 没有找到相关文章

最新更新