OpenClaw Skillv1.0.1

Pdf Generator

Ivánby Iván
Deploy on EasyClawdfrom $14.9/mo

Generate professional PDFs from Markdown, HTML, data, or code. Reports, invoices, contracts, and documents with best practices.

How to use this skill

OpenClaw skills run inside an OpenClaw container. EasyClawd deploys and manages yours — no server setup needed.

  1. Sign up on EasyClawd (2 minutes)
  2. Connect your Telegram bot
  3. Install Pdf Generator from the skills panel
Get started — from $14.9/mo
6stars
3,060downloads
54installs
0comments
2versions

Latest Changelog

Improved security documentation and scope clarity

Tags

latest: 1.0.1

Skill Documentation

---
name: PDF Generator
slug: pdf-generator
version: 1.0.1
homepage: https://clawic.com/skills/pdf-generator
description: Generate professional PDFs from Markdown, HTML, data, or code. Reports, invoices, contracts, and documents with best practices.
metadata: {"clawdbot":{"emoji":"📄","requires":{"bins":[]},"os":["linux","darwin","win32"]}}
---

## When to Use

User needs to create, generate, or export PDF documents. Agent handles document generation from multiple sources (Markdown, HTML, JSON, templates), formatting, styling, and batch processing.

## Scope

This skill ONLY:
- Provides code patterns and implementation guidance for PDF generation
- Explains tool selection, CSS for print, and document structure
- Shows reference examples for common document types

This skill NEVER:
- Executes code or generates files directly
- Makes network requests
- Accesses files outside user's working directory

All code examples are reference patterns for the user to implement.

## Quick Reference

| Topic | File |
|-------|------|
| Tool selection | `tools.md` |
| Document types | `templates.md` |
| Advanced operations | `advanced.md` |

## Core Rules

### 1. Choose the Right Tool

| Source | Best Tool | Why |
|--------|-----------|-----|
| Markdown | pandoc | Native support, TOC, templates |
| HTML/CSS | weasyprint | Best CSS support, no LaTeX |
| Data/JSON | reportlab | Programmatic, precise control |
| Simple text | fpdf2 | Lightweight, fast |

**Default recommendation:** weasyprint for most HTML-based documents.

### 2. Structure Before Style

```python
# CORRECT: semantic structure
html = """
<article>
  <header><h1>Report Title</h1></header>
  <section>
    <h2>Summary</h2>
    <p>Content...</p>
  </section>
</article>
"""

# WRONG: style-first approach
html = "<div style='font-size:24px'>Report Title</div>"
```

### 3. Handle Page Breaks Explicitly

```css
/* Force page break before */
.new-page { page-break-before: always; }

/* Keep together */
.keep-together { page-break-inside: avoid; }

/* Headers never orphaned */
h2, h3 { page-break-after: avoid; }
```

### 4. Always Set Metadata

```python
# Example pattern for weasyprint
html = """
<html>
<head>
  <title>Document Title</title>
  <meta name="author" content="Author Name">
</head>
...
"""
```

### 5. Use Print-Optimized CSS

```css
@media print {
  body {
    font-family: 'Georgia', serif;
    font-size: 11pt;
    line-height: 1.5;
  }
  
  @page {
    size: A4;
    margin: 2cm;
  }
  
  .no-print { display: none; }
}
```

### 6. Validate Output

After generating any PDF:
1. Check file size (0 bytes = failed)
2. Open and verify page count
3. Verify fonts render correctly

## Common Traps

| Trap | Consequence | Fix |
|------|-------------|-----|
| Missing fonts | Fallback to defaults | Use web-safe fonts |
| Absolute image paths | Images missing | Use relative paths |
| No page size | Unpredictable layout | Set `@page { size: A4; }` |
| Large images | Huge files | Compress before use |

## Security & Privacy

**This is a reference skill.** It provides patterns and guidance only.

**Data that stays local:**
- All PDF generation happens on user's machine
- No data sent externally

**This skill does NOT:**
- Execute code or make files
- Make network requests
- Access system files

## Feedback

- If useful: `clawhub star pdf-generator`
- Stay updated: `clawhub sync`
Security scan, version history, and community comments: view on ClawHub