← 返回
效率工具 中文

PDF Generation

Generate professional PDFs from HTML/CSS using flow layouts and selective break controls to avoid whitespace gaps and layout issues in printed pages.
使用流式布局与选择性分页控制,将 HTML/CSS 转换为专业 PDF,避免打印页面空白和布局问题。
bartok9
效率工具 clawhub v1.0.0 1 版本 99839.5 Key: 无需
★ 3
Stars
📥 1,184
下载
💾 74
安装
1
版本
#latest

概述

PDF Generation Skill

Purpose: Generate professional PDFs from HTML/CSS without whitespace gaps or layout issues.

The Problem

When generating PDFs from HTML, page-break-inside: avoid causes orphan whitespace — content that can't fit on the current page gets pushed entirely to the next page, leaving huge gaps.

The Solution

1. Use Flow-Based Layout (NOT Fixed Page Containers)

❌ WRONG:

<div class="page" style="min-height: 297mm;">
  <!-- Content -->
</div>

✅ RIGHT:

<body>
  <!-- Content flows naturally -->
</body>

Use @page CSS rules instead of fixed page containers:

@page {
    size: A4;
    margin: 18mm 15mm;
}

2. Protect ONLY Small Elements

Only use break-inside: avoid on elements that:

  • Are small (cards, single rows, short boxes)
  • Would look broken if split

✅ Protect:

  • Individual table rows (tr)
  • Cards (< 100px tall)
  • Timeline items
  • Step items
  • Highlight boxes

❌ Do NOT Protect:

  • Entire tables
  • Large containers
  • Entire sections
  • Multi-column layouts
  • Quote boxes at document end

3. Use Modern + Legacy Properties

.small-element {
    break-inside: avoid;        /* Modern spec */
    page-break-inside: avoid;   /* Legacy support */
}

4. Keep Headers With Content

h2, h3, h4, .section-header {
    break-after: avoid;
    page-break-after: avoid;
}

5. Prevent Orphan Lines

body {
    orphans: 3;  /* Min lines at bottom of page */
    widows: 3;   /* Min lines at top of page */
}

6. Allow Tables to Break (But Keep Rows Together)

table {
    /* NO break-inside: avoid */
}

tr {
    break-inside: avoid;
    page-break-inside: avoid;
}

Template

@page {
    size: A4;
    margin: 18mm 15mm;
}

body {
    font-size: 10pt;
    line-height: 1.5;
    orphans: 3;
    widows: 3;
}

/* Headers stay with content */
h2, h3, h4 {
    break-after: avoid;
    page-break-after: avoid;
}

/* Small elements don't break */
.card, .highlight-box, .step, .timeline-item {
    break-inside: avoid;
    page-break-inside: avoid;
}

/* Table rows stay together, table can break */
tr {
    break-inside: avoid;
    page-break-inside: avoid;
}

/* Large containers flow naturally */
table, .section, .two-col {
    /* NO break-inside: avoid */
}

@media print {
    body { 
        -webkit-print-color-adjust: exact; 
        print-color-adjust: exact; 
    }
}

Tools

ToolUse CaseInstall
-------------------------
WeasyPrintHTML/CSS → PDF (best CSS support)brew install weasyprint or pip install weasyprint
PandocMarkdown → PDF via LaTeXbrew install pandoc
wkhtmltopdfComplex layoutsDownload from wkhtmltopdf.org
PuppeteerJS-rendered contentnpm install puppeteer

WeasyPrint Command

weasyprint input.html output.pdf

Pre-Flight Checklist

Before sending ANY PDF:

  • [ ] Open in PDF viewer, scroll through ALL pages
  • [ ] Check for large whitespace gaps between content
  • [ ] Ensure no single-line orphans at page tops
  • [ ] Verify tables don't have awkward mid-row breaks
  • [ ] Confirm headers are followed by content (not at page bottom alone)

Common Mistakes

MistakeFix
--------------
page-break-inside: avoid on large containersRemove it, let content flow
Fixed-height page divsUse @page rules instead
Quote box at document end with break protectionRemove break protection
Entire table protected from breakingOnly protect tr, not table
No orphans/widows setAdd orphans: 3; widows: 3;

Resources

  • WeasyPrint docs: https://doc.courtbouillon.org/weasyprint/
  • CSS Paged Media: https://www.w3.org/TR/css-page-3/
  • Print CSS Guide: https://www.smashingmagazine.com/2018/05/print-stylesheets-in-2018/

Skill created by Bartok — March 6, 2026

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-03-30 13:52 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

developer-tools

Creative Genius

bartok9
融合历史天才的方法论,形成可执行流程,强调跨领域联结、心智模拟、高产输出与自律。
★ 0 📥 1,062
productivity

Word / DOCX

ivangdavila
创建、检查和编辑 Microsoft Word 文档及 DOCX 文件,支持样式、编号、修订记录、表格、分节符及兼容性检查等功能。
★ 439 📥 147,687
productivity

Weather

steipete
获取当前天气和预报(无需API密钥)
★ 445 📥 226,311