Beautiful PDF

Design and visually review print-ready PDFs

Antreas Antoniou

@antreasantoniou

Install

$ openclaw skills install @antreasantoniou/beautiful-pdf

Beautiful PDF

Turn structured content into a designed document, then inspect the rendered pages before delivery.

Workflow

  1. Choose the document pattern in references/doc-types.md.

  2. Draft in Markdown for linear documents or HTML for custom layouts.

  3. Start from assets/default.css and select a restrained palette from references/style-guide.md.

  4. Render:

    pandoc input.md --standalone --pdf-engine=weasyprint --css=assets/default.css -o output.pdf
    # Or, for hand-authored HTML:
    weasyprint input.html output.pdf
    
  5. Rasterize every page and inspect it:

    python3 scripts/pdf-to-png.py output.pdf /tmp/pdf-qa --dpi 200
    
  6. Fix overflow, weak hierarchy, widows/orphans, awkward breaks, clipped tables, low contrast, and inconsistent spacing. Render again until the pages are intentional.

Guardrails

  • Do not pass Pandoc --metadata title when Markdown already contains an H1; it duplicates the title.
  • Keep source HTML static. WeasyPrint does not execute JavaScript.
  • Use absolute or file:// paths for local images and fonts.
  • Preserve the original source alongside the PDF so later edits remain possible.
  • Treat page inspection as part of completion, not an optional polish pass.
  • Never silently install dependencies. If PyMuPDF, Pandoc, or WeasyPrint is missing, report the exact requirement.

Output

Use a user-approved destination. When no convention exists, prefer:

outputs/YYYY-MM-DD-descriptor.pdf

Before delivery, report the final page count, output path, and the visual issues checked.

Top skills in this category

PollyReach

@pollyreach

PollyReach gives every AI agent a phone number and the ability to get things done over the phone — finding contacts, making calls, and completing tasks. Just...

55101k

Proactive Agent Lite

@bestrocky

Transform AI agents from task-followers into proactive partners with memory architecture, reverse prompting, and self-healing patterns. Lightweight version f...

6241k

Using Superpowers

@zlc000190

Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions

6336k

Planning with files

@othmanadi

Manus-style persistent file-based planning for AI coding agents: keeps task_plan.md, findings.md, and progress.md on disk so work survives context loss and /clear. Use when asked to plan out, break down, or organize a multi-step project, research task, or any work requiring 5+ tool calls. Supports a

5440k

Productivity

@ivangdavila

Diagnoses and repairs personal productivity: overwhelm, procrastination, scattered priorities, collapsed habits, busywork that never finishes. Use when someone is overwhelmed or behind; when they cannot start, cannot stop, or keep replanning instead of working; when everything feels urgent and the list is no longer trusted; when goals never turn into shipped work; when meetings and messages eat the day; when a habit keeps breaking; when they want a weekly review, a shutdown routine, or one trusted home for goals, projects and commitments; and when the constraint is a situation — student, manager, executive, parent, freelancer, founder, creative, remote work, ADHD, burnout, or guilt about resting. Covers capacity math, estimation, WIP limits, delegation and saying no. Not for calendar-API automation (`calendar-planner`), running the day-to-day list (`task-list`), or the narrower tools: time blocking (`time-management`), habit streaks (`habits`), deep-work rituals (`deep-work`).

6926k