Primefaces 使用p:printer以正常格式打印回流的p:dataTable

Primefaces 使用p:printer以正常格式打印回流的p:dataTable,primefaces,printing,datatable,Primefaces,Printing,Datatable,我有以下代码 <p:dataTable id="table" reflow="true"> ... </p:dataTable> <p:commandButton> <p:printer target="table" /> <p:commandButton> ... 即使表格处于回流模式(每行作为一个堆栈),是否有办法以正常格式打印表格?这就是我最后要做的 我创建了一个函数来修改jquery打印函数,以便在打印表

我有以下代码

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

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

...

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

这就是我最后要做的

我创建了一个函数来修改jquery打印函数,以便在打印表之前按照我的要求对表进行格式化

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>

这就是我最后要做的

我创建了一个函数来修改jquery打印函数,以便在打印表之前按照我的要求对表进行格式化

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>


请在PF中创建一个问题,该问题的响应性不应妨碍正常工作printing@Kukeltje,我不认为这在PF中是一个真正的问题,因为
p:printer
正在做它应该做的事情,按原样打印页面中显示的元素。但是否应将打印机物理页面中的“不动产”视为可用?因此,如果不需要回流,则不应应用相应的css/媒体查询(或者可能我不完全理解
p:printer
中的jqprint,从未使用过它/有此需要)jqprint采用适用于设备屏幕大小的样式,而不是适用于打印机物理页面的样式,除非定义了
@media print
,在这种情况下将采用这些样式,并且由于
p:printer
只是jqprint的包装器,所以它的工作方式相同。好的,清除,但是否应该/可以不以某种方式为“回流”组件创建
@media print
?或者你自己也尝试过,但没有失败?请在PF中创建一个响应性不应妨碍正常的问题printing@Kukeltje,我不认为这在PF中是一个真正的问题,因为
p:printer
正在做它应该做的事情,按原样打印页面中显示的元素。但是否应将打印机物理页面中的“不动产”视为可用?因此,如果不需要回流,则不应应用相应的css/媒体查询(或者可能我不完全理解
p:printer
中的jqprint,从未使用过它/有此需要)jqprint采用适用于设备屏幕大小的样式,而不是适用于打印机物理页面的样式,除非定义了
@media print
,在这种情况下将采用这些样式,并且由于
p:printer
只是jqprint的包装器,所以它的工作方式相同。好的,清除,但是否应该/可以不以某种方式为“回流”组件创建
@media print
?还是你自己尝试过,但没有失败?