HTML/CSS 转 PDF:我如何解决“Page Break”噩梦

发布: (2026年1月19日 GMT+8 03:15)
2 min read
原文: Dev.to

Source: Dev.to

问题

我们都有过这种经历。你在 HTML/CSS 中构建了一个漂亮的布局,按下 Ctrl + P,结果一切都乱了。图片被截成两半,边距消失,背景颜色不见了。

我最近花了几周时间打造一个简历生成器,并且拒绝使用基于 canvas 的方案。我想要的是纯粹、语义化的 HTML,能够完美打印成 PDF。

挑战:CSS 打印媒体

最大的难点是动态处理分页。为此我必须深入研究 CSS 打印规则,例如 break-inside: avoid@page 的边距设置。

解决方案

/* The magic snippet */
.resume-section {
  page-break-inside: avoid;
  break-inside: avoid;
}

@media print {
  @page {
    margin: 0;
    size: auto;
  }
}

结果

经过大量使用 Puppeteer 和 CSS 的调试后,我终于让它可靠地工作了。

如果你在从网页生成 PDF 时遇到困难,或者只是想看看这些 CSS 规则在真实生产应用中的表现,我创建了一个名为 Resumemind 的免费工具来演示。

你可以在这里测试 PDF 生成:

如果对打印 CSS 有任何疑问,欢迎告诉我!

Back to Blog

相关文章

阅读更多 »

CSS 视觉错觉

CSS 视觉错觉的封面图片 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads....