AI 做的长表格打印成 PDF:让每页都有表头

小周debug Lv.2 2026/10/24 21:21:31 浏览 1

长表格导成 PDF 后,第2页也应该能看出每一列是什么。让 AI 写 HTML 时,可以直接要求使用真正的 table、thead 和 tbody,再给打印版单独设纸张、页边距和分页规则。

附件放了一份72条合成记录的完整模板,以及实际导出的 reference.pdf。本次在 Chromium 中得到3页 A4,逐页核对了表头和行内容。下面是第2页上部直接从 PDF 渲染的画面,中文和表头都是成品里的内容:

打印规则放在哪

模板的关键规则如下,完整表格和其他样式在 table.html 中:

@page {
  size: A4;
  margin: 14mm;
}

@media print {
  thead {
    display: table-header-group;
    break-inside: avoid;
  }
  tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }
}

thead 放列标题,tbody 放数据行。这里把避断规则加在普通短行上;整张表和整个 tbody 仍允许分页。表头是否重复也依赖浏览器实现,所以要看实际导出的 PDF。本次只验证了这里的 Chromium 成品,不承诺每个浏览器都一样。

导出同一份样例

可以先直接打开包内 reference.pdf 看成品。需要重新导出时,准备 Python 3.10+、系统 Chromium 和可用的中文字体;本次用 Python 3.12.14、Chromium 154.0.8037.57、Noto Sans CJK 中文字体。Python依赖已写进 requirements.txt:

python -m pip install -r requirements.txt
python export_pdf.py table.html output.pdf
python verify.py output.pdf

导出器默认寻找系统 Chromium;找不到时,通过 --browser 指定实际浏览器可执行文件。output.pdf 必须是新路径,已有文件会拒绝覆盖。

脚本使用打印媒体,并打开 prefer_css_page_size=True,让 CSS 的 A4 设置优先;print_background=True 保留表头底色,关闭浏览器附加页眉页脚。字体准备好后才导出,HTML 本身没有外部图片、字体或脚本请求。换电脑后仍需打开 PDF 看中文字形,不能只凭导出命令成功就认为排版可读。

样例校验成功会输出 status: PASS、pages: 3,每页行数为 26 / 28 / 18。它检查每页纸张尺寸和表头、72条记录的标记是否各出现一次,以及同条记录的四列是否在同一页。同时检查288个样例标记的字框是否位于打印区域、列位置和同一行的纵向位置是否符合预期;这些检查仍不能替代逐页看中文、换行和裁切。

这里的 verify.py 只认识配套的固定样例。替换成自己的资料后,仍可用模板和导出器,但这份“72条样例”校验不能直接拿来判断新资料是否正确;需要按新数据核对行数、内容和分页。

给 AI 改现有表格时,可以把 HTML 和下面这段要求一起发过去:

请给这份长表格补全A4纵向打印样式,保留全部数据、原顺序和列含义。
列标题使用thead,数据使用tbody;打印时每页尽量重复表头。
页边距设为14mm,普通短行尽量保持在同一页。
table和tbody仍需允许跨页,不把整个表格当成一个不可分块。
长文字允许在单元格内换行,保持可读字号,不通过缩小整表藏住溢出。
给出完整HTML,保留可编辑的数据区,不引入外部资源。
说明实际导出所用浏览器和检查结果;没导出过就明确写尚未验证。
对高度超过一页的单行单独说明处理方法,不承诺任意内容都不拆行。

高度超过一页可打印区域的单行,浏览器仍可能拆开。遇到这种记录,先把长说明拆成独立段落或续表,再检查成品。列数、字号、字体或内容长度变化也可能改变分页,包内3页只是这份固定样例的结果。

下载A4打印模板、三页PDF成品、导出与校验脚本、完整提示词和记录(ZIP,11个文件)

最终附件已在新目录解压复跑:包内PDF校验通过,重新导出后的PDF也通过;72条记录的288个标记完整、唯一,行数为26/28/18。独立检查还核对了全部文字的字框没有越出14mm打印区域,并逐页看过中文字形与行框。另实际导出一份故意删掉ROW-036的PDF,校验器报告该记录四个标记缺失并拒绝。可运行 python verify.py --self-test 重现正常样例和缺行负例;更换数据、浏览器或字体后仍应重新看成品。

参考:W3C CSS 表格与分页规范、Playwright page.pdf 官方文档,2026-10-24查阅。模板与记录是本地构造的教学样例,没有调用模型,也没有评测模型生成表格的效果。

评论 0

发表评论

登录后参与讨论

登录

暂无评论