将 HTML Table 拆分为列组

Splitting HTML Table into Groups of Columns

我想打印非常宽(可能高)HTML tables 为 PDF。 tables 是使用 Java 脚本中的 Handlebars 模板生成的,对 PDF 执行 HTML 的位是基于 Spring 的 Java 服务器,它使用 Flying Saucer .

我知道,通常,打印是使用单独的 print.css 文件完成的,将纸张设置为横向等。但是,我一直无法想出拆分 table垂直。

所以我认为这里可以做的是将大 table 打印为例如 A4 页面的 2x2 数组。

一个看起来像这样的 table:

+----+----+----+----+----+----+
|____|____|____|____|____|____|
|____|____|____|____|____|____|
|____|____|____|____|____|____|
|____|____|____|____|____|____|

在进入打印机之前(或在放入 PDF 之前)应该变成这样:

Page 1             Page 2
+----+----+----+   +----+----+----+
|____|____|____|   |____|____|____|
|____|____|____|   |____|____|____|

Page 3             Page 4
+----+----+----+   +----+----+----+
|____|____|____|   |____|____|____|
|____|____|____|   |____|____|____|

作为附加约束,table header 可能有些复杂,具有一些 colspan="x"rowspan="2" 属性。它永远不会超过 2 行 header,但是第一行的 'grouping' 列可以跨越第二行的 2 列以上,例如

+-----------------------------------------------------------------------+
|                       |    Group1     |       |       Group2          |
| Head1 | Head2 | Head3 | Head4 | Head5 | Head6 | Head7 | Head8 | Head9 |

实际问题

考虑到所有这些,除了使用 jQuery 之类的东西遍历列,将 table 分解成更小的 table 之外,我还有其他选择吗(同时考虑考虑到不要打断列组)并将打散的行相应地附加到子tables?

我一直在研究如何做到这一点,据我所知,如果不使用大量 JavaScript 进行大量操作,就无法做到这一点。

这里的第一个答案是我将用作起点的答案: Print a very wide HTML table without clipping right hand side

希望对您有所帮助。