后台报表有 7 列,屏幕上横向滚动能看全,打印成 A4 纵向后只出来前 4 列,金额列整列消失。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

@page { size: A4 landscape; margin: 10mm; }
@media print { table { width: 100%; table-layout: fixed; } }

表格最小宽度写死 1200px,A4 纵向可打印宽度约 186mm,超出部分被页面边界裁掉。打印样式没有做横向排版或缩放。这一点先确认清楚,后面就不用反复试。

「打印横向溢出」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。

改完隔一天再看一次,当场正常不代表能稳住。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。

线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。

具体做法是,打印时把表格宽度改成 100% 并允许单元格内换行;列多的报表改用 @page size: A4 landscape 横向;打印预览确认 7 列都在 金额列没有被切。

改完照着核一遍,横向打印一页放下 7 列,金额列完整显示。

作者 9823189