制表符 - 格式化打印和 PDF 输出

问题描述 投票:0回答:2

我是 Tabulator 的一个相对较新的用户,所以如果我问任何可能应该是显而易见的问题,请原谅我。

我有一个制表符报告,可以将其打印并创建为 PDF,但报告的格式(如屏幕上所示)未在任一输出中使用。

对于打印,我使用了 printAsHtml 和 printStyled=true,但这不会产生与屏幕上的内容匹配的打印输出。我已格式化数字字段(使用逗号分隔符),并且这些字段显示正确,但数字列应右对齐,但所有列均显示为左对齐。

我还使用树视图,其中树行的颜色与主表不同,但是当我在树打开的情况下打印报告时,它会使用树颜色为整个表着色,而不仅仅是树。

对于 PDF,未使用制表符格式。我寻找过与 printStyled 选项类似的任何内容,但我看不到任何内容。我还查看了 autoTable 选项,但我很难找到要使用的选项。

我想格式化打印和 PDF 输出,使它们看起来尽可能接近屏幕显示。

我可以在哪里找到可以提供如何实现上述目标的示例吗?制表器文档非常好,但提供的示例似乎没有解释我想要做什么。

也许我缺少甚至误用了一些 CSS 类?我尝试在 CSS 中包含 .tabulator-print-table,但我可能没有正确使用它。我也找不到任何与生成 PDF 等效的东西。一些例子会有很大帮助。

预先感谢您的任何建议或帮助。

pdf printing styling tabulator
2个回答
0
投票

故意不包含格式化,下面我将概述原因:

下载器

下载的文件不包含格式化数据,仅包含原始数据,这是因为许多格式化程序创建了视觉元素(进度条、星形格式化程序等),这些元素无法在下载的文件中合理复制。

如果您想更改下载中的数据格式,则需要使用访问器,在这种情况下您要使用

accessorDownload
选项。访问器在数据离开表时对其进行转换。

例如,我们可以创建一个访问器,将“Mr”添加到列中每个名称的前面:

var mrAccessor= function(value, data, type, params, column, row){
    return "Mr " + value;
}

将其分配给列定义:

{title:"Name", field:"name", accessorDownload:mrAccessor}

印刷

打印也不包括格式化程序,这是因为当您打印制表符表格时,整个表格实际上被重建为标准 HTML 表格,这使得打印机能够计算出如何使用列标题等在多个页面上布局所有内容。这样做的缺点是,它的样式像制表符一样松散,因此制表符单元格内生成的格式化内容在添加到正常的

td
元素时可能会损坏。

因此,还有一个

accessorPrint
选项,其工作方式与下载访问器相同,但用于打印。

如果您想在两种情况下使用相同的访问器,您可以将该函数分配给

accessor
选项一次,它将在两种情况下应用。

查看访问器文档以获取完整详细信息。


0
投票

在行定义中使用打印格式化程序。例如,要打印单元格的颜色,请使用 Tabulator 颜色格式化程序,然后指定 formatterPrint 将颜色渲染为将打印的 div 边框。

      {title: "Color", field: "color1", formatter:"color", minWidth:10,
                formatterPrint:function(cell, formatterParams, onRendered){
                   return "<div style='padding: 0px; margin: 0px 0px 0px 0px; border: 12px solid "+cell.getValue()+"; background-color:" +cell.getValue()+ " '>   </div>"; 
                },
      },

正常视图:

可打印视图:

在此处查看更多内容: https://tabulator.info/docs/5.5/format#format-export

© www.soinside.com 2019 - 2024. All rights reserved.