Percerno Skillsbeta
← everything it can do · documents

Designed PDF PDF

Typesets a report, invoice or one-pager as a designed PDF from Markdown or JSON, in one command.

2 uses this weeksource Percernolicence MIT
Tested 2026-10-24: delivered the file in 2 of 2 requests through a real assistant · security scan clean.

Try asking

Say it in your own words; the assistant finds this recipe by itself. Examples:

“Turn this Markdown into a designed PDF report with a cover, numbered sections and page numbers, teal accent.”
“Make an invoice PDF: Percerno ApS to Fjordline Advisory, invoice 2026-0142, 40 hours consulting at 1,250 DKK, one workshop 18,000 DKK, 25 % VAT, due in 30 days.”
“Lav en pæn PDF af mine mødenoter med en forside og sidetal.”
“A one-page profile PDF for Anna Berg, VP Sales: three highlights, contact details, our logo colour.”
Without Percerno: A designed, print-ready PDF means a designer, InDesign or an afternoon fighting Word's layout; the assistant alone can only give you text.
Try this skill from Claude, ChatGPT or a chat on your own page. Free plan, no credit card.Get started free

Details

When it is the right choice

Make a designed PDF in ONE command with the Typst typesetting engine (no Word, no LaTeX): a report or memo from Markdown with a title block, numbered sections, tables and an accent colour; an invoice from a JSON of lines with VAT and totals; a one-page profile or CV from JSON. Use for: a nice PDF of this text, a PDF report with a cover and page numbers, an invoice PDF, a one-pager PDF, a CV as PDF, et pænt PDF-dokument. Triggers: PDF report, designed PDF, typeset, invoice PDF, faktura som PDF, one-pager, CV, memo as PDF, print-ready.

The full recipe the assistant reads

Designed PDF (one command)

python3 /skills/designed-pdf/scripts/pdf.py <verb> IN OUT.pdf [options] converts the input with pandoc where needed and typesets it with Typst (a modern typesetting engine, millisecond compiles). Inputs are in /work/in or written by you to /work; results in /work/out. Every verb prints one OK … line (pages, size) or one ERROR … line.

Need Command
Report or memo from Markdown pdf.py report /work/notes.md /work/out/notes.pdf --title "Nordic Market Review" --subtitle "Q3 2026" --author "Percerno" [--accent "#0F5C6E"] [--no-cover] [--no-numbers]
Invoice from JSON pdf.py invoice /work/invoice.json /work/out/invoice.pdf
One-page profile or CV from JSON pdf.py onepager /work/profile.json /work/out/profile.pdf
Any Typst source you wrote yourself pdf.py typst /work/doc.typ /work/out/doc.pdf

Markdown supports headings, paragraphs, bullet and numbered lists, bold/italic, links, block quotes, code and pipe tables. Section headings are numbered unless --no-numbers.

invoice.json

{"from": {"name": "Percerno ApS", "address": "Vestergade 12, 8000 Aarhus C", "vat": "CVR 12345678", "bank": "Danske Bank · reg. 1234 · account 5678901234"},
 "to": {"name": "Fjordline Advisory", "address": "Havnegade 3, 1058 København K", "attn": "Anna Berg"},
 "number": "2026-0142", "date": "2026-10-24", "due": "2026-11-23", "currency": "DKK", "vat_rate": 25,
 "lines": [{"text": "Consulting, October", "qty": 40, "unit": "hours", "price": 1250}, {"text": "Workshop", "qty": 1, "unit": "pc", "price": 18000}],
 "note": "Payment within 30 days. Thank you.", "accent": "#0F5C6E", "lang": "en"}

lang: "da" labels it Faktura/Beløb/Moms. Totals and VAT are computed.

profile.json

{"name": "Anna Berg", "title": "VP Sales, Fjordline Advisory", "summary": "Twelve years of B2B sales…",
 "contact": ["anna@fjordline.dk", "+45 12 34 56 78", "Copenhagen"], "accent": "#0F5C6E",
 "sections": [{"heading": "Highlights", "items": ["Grew ARR from 2 to 9 MDKK", "Built a team of 12", "Opened Oslo"]},
              {"heading": "Experience", "items": ["2021– Fjordline Advisory, VP Sales", "2016–2021 Nordisk Widgets, Sales Director"]}]}

Fonts available: Libertinus (default), DejaVu, Liberation, Carlito. Give the person the download link.

Files in this skill (5)
  • SKILL.md
  • gate.json
  • scripts/__pycache__/pdf.cpython-311.pyc
  • scripts/__pycache__/pdf.cpython-313.pyc
  • scripts/pdf.py
Where it comes from

Written by Percerno, MIT licence.