Beautiful PDF
Design and visually review print-ready PDFs
Antreas Antoniou
@antreasantoniou
Install
$ openclaw skills install @antreasantoniou/beautiful-pdfBeautiful PDF
Turn structured content into a designed document, then inspect the rendered pages before delivery.
Workflow
-
Choose the document pattern in references/doc-types.md.
-
Draft in Markdown for linear documents or HTML for custom layouts.
-
Start from assets/default.css and select a restrained palette from references/style-guide.md.
-
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 -
Rasterize every page and inspect it:
python3 scripts/pdf-to-png.py output.pdf /tmp/pdf-qa --dpi 200 -
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 titlewhen 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
@pollyreachPollyReach 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...
Proactive Agent Lite
@bestrockyTransform AI agents from task-followers into proactive partners with memory architecture, reverse prompting, and self-healing patterns. Lightweight version f...
Using Superpowers
@zlc000190Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
Planning with files
@othmanadiManus-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
Productivity
@ivangdavilaDiagnoses 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`).