Create lightweight, searchable, Unicode-safe PDF documents with Python and fpdf2 when reportlab is unavailable or unsuitable.
The fastest way to install a skill directly from the registry.
npx clawhub@latest install pdf-creation
Copy the skill folder to one of these locations
~/.openclaw/skills/ <project>/skills/ Priority: Workspace > Local > Bundled
Copy this prompt to OpenClaw to install it automatically.
Help me install pdf-creation using Clawhub. If Clawhub is not installed, install it first (npm i -g clawhub).
Get the raw skill files in a ZIP archive.
This Openclaw Skills integration provides a practical fpdf2 workflow for generating PDFs from Python on Linux. It is designed as a lightweight alternative to reportlab for simple documents, searchable text, Unicode content, styled tables, headings, and rapid iteration.
The skill emphasizes reliable font registration, correct fpdf2 table APIs, automatic page breaks, and predictable PDF output. It is especially useful when PIL or Imaging dependencies conflict with reportlab, when working in uv-managed virtual environments, or when a smaller PDF-generation stack is preferred.
FPDF document with the required page orientation, units, page size, margins, and automatic page-break settings.cell() for short lines and multi_cell() for wrapped Unicode-safe text.FontFace styles, heading configuration, effective-page-width limits, and optional alternating row fills.pdf.output() to a chosen .pdf path.FPDFUnicodeEncodingException for non-Latin-1 characters.python3 as the required binary.pip install fpdf2
/usr/share/fonts/dejavu-sans-fonts/ and /usr/share/fonts/truetype/dejavu/.from fpdf import FPDF
FONT_DIR = "/usr/share/fonts/dejavu-sans-fonts"
pdf = FPDF("P", "mm", "A4")
pdf.add_font("DJS", "", f"{FONT_DIR}/DejaVuSans.ttf")
pdf.add_font("DJS", "B", f"{FONT_DIR}/DejaVuSans-Bold.ttf")
pdf.add_font("DJS", "I", f"{FONT_DIR}/DejaVuSans-Oblique.ttf")
pdf.set_auto_page_break(auto=True, margin=20)
pdf.add_page()
pdf.set_font("DJS", "B", 26)
pdf.cell(0, 10, "Title", align="C")
pdf.ln(12)
pdf.set_font("DJS", "", 9.5)
pdf.multi_cell(0, 5, "Unicode-safe text with em-dashes and arrows.")
pdf.output("output.pdf")
pdf.epw. The skill does not require a separate configuration file; document structure is defined in Python code and generated PDF paths.The skill uses a code-defined document model rather than a fixed JSON or database schema.
| Data or artifact | Organization | Notes |
|---|---|---|
| Skill metadata | YAML front matter with name, description, version, and metadata.openclaw |
Declares Linux support, homepage, and the required python3 binary. |
| Font assets | External TTF files registered under a logical family such as DJS |
Regular, bold, and italic variants can be selected through font emphasis. |
| Document settings | FPDF instance configuration |
Includes orientation, units, page size, margins, and automatic page breaks. |
| Text content | cell() and multi_cell() calls |
Supports searchable text when a Unicode-capable font is registered. |
| Tables | pdf.table() context manager with rows and FontFace styles |
Supports headings, column widths, fills, borders, alignment, and line height. |
| Generated files | PDF paths passed to pdf.output() |
Typical outputs include output.pdf and table.pdf; filenames are user-defined. |
Important constraints include the top-left coordinate origin, millimeter units, Unicode font registration for characters outside Latin-1, and table widths that do not exceed the effective page width.
FontFace for family, emphasis, point size, text color, and fill color.cell_fill_mode="ROWS" and RGB cell_fill_color values.first_row_as_headings=True and headings_style.first_row_as_headings parameter.Loading
Baidu Unlimited-OCR Document Parser converts complex PDFs, office files, and images into structured Markdown without model deployment.

Plan & Review turns timestamped market snapshots into validated pre-market plans, intraday reviews, post-market analysis, and trading discipline scores.

Safely refreshes reference comments and URLs from an upstream sample without changing the user's live configuration.

p-video-2-pro generates polished cinematic video clips with native generated audio from text, a first frame, or first-and-last frame references.

A complete developer reference for installing, configuring, customizing, and troubleshooting the fast, cross-shell Starship prompt.

Hermes Web Tools provides a read-only workflow for configuring, selecting, and troubleshooting Hermes web_search and web_extract backends.








































