使用p:printer以正常格式打印reflowed p:dataTable

时间:2016-08-01 19:27:49

标签: primefaces printing datatable

我有以下代码

<p:dataTable id="table" reflow="true">
    ...
</p:dataTable>

<p:commandButton>
    <p:printer target="table" />
<p:commandButton>

有没有办法以正常格式打印表,即使它处于回流模式(每行作为堆栈)?

1 个答案:

答案 0 :(得分:0)

这就是我最终要做的事情

我创建了一个函数来修改jquery print函数,以便在打印之前格式化我的表格

function formatTableBeforePrint() {
$.fn.jqprint = (function() {

    var cached_function = $.fn.jqprint;

    return function(d) {
        $.fn.jqprint.defaults = {
            debug : false,
            importCSS : true,
            printContainer : true,
            operaSupport : true
        };
        var tables = $('.ui-datatable-reflow');
        $(".ui-datatable-reflow .ui-datatable-data td .ui-column-title").addClass('noprint');
        tables.removeClass('ui-datatable-reflow');
        var result = cached_function.apply(this, arguments);
        tables.addClass('ui-datatable-reflow');
        return result;
    };
  })();
}

然后从p:commandButton

调用该函数
<p:commandButton onclick="formatTableBeforePrint()">
    <p:printer target="table" />
<p:commandButton>