
Invoice Template
Turn structured order or client billing data into branded, itemized PDF invoices through office MCP docx and PDF tooling.
Install
npx skills add https://github.com/claude-office-skills/skills --skill invoice-templateWhat is this skill?
- Generates professional PDF invoices from templates with company branding and itemized lines
- MCP integration: create_docx, fill_docx_template, docx_to_pdf on office-mcp
- Structured invoice_data pattern with tax and payment fields for repeatable agent fills
- Supports English and Chinese prompt workflows (metadata languages en, zh)
- Example prompts cover batch monthly invoices and per-client template customization
Adoption & trust: 2.4k installs on skills.sh; 196 GitHub stars; 3/3 security scanners passed (skills.sh audits).
Recommended Skills
China Stock Analysissugarforever/01coder-agent-skills
Grimoire Polymarketfranalgaba/grimoire
Backtesting Frameworkswshobson/agents
Stock Analysisgracefullight/stock-checker
Coinglassstarchild-ai-agent/official-skills
Akshare Stockmolezzz/openclaw-stock-skill
Journey fit
Common Questions / FAQ
Is Invoice Template safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Invoice Template
# Invoice Template Skill ## Overview This skill generates professional PDF invoices from structured data and templates. Create invoices with company branding, itemized lists, tax calculations, and payment details. ## How to Use 1. Describe what you want to accomplish 2. Provide any required input data or files 3. I'll execute the appropriate operations **Example prompts:** - "Generate invoices from order data" - "Create recurring invoices" - "Batch generate monthly invoices" - "Customize invoice templates per client" ## Domain Knowledge ### Invoice Data Structure ```python invoice_data = { "invoice_number": "INV-2026-001", "date": "2026-01-30", "due_date": "2026-02-28", "from": { "name": "Your Company", "address": "123 Business St", "email": "billing@company.com" }, "to": { "name": "Client Name", "address": "456 Client Ave", "email": "client@example.com" }, "items": [ {"description": "Consulting", "quantity": 10, "rate": 150.00}, {"description": "Development", "quantity": 20, "rate": 100.00} ], "tax_rate": 0.08, "notes": "Payment due within 30 days" } ``` ### PDF Generation with ReportLab ```python from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvas from reportlab.lib.units import inch def create_invoice(data: dict, output_path: str): c = canvas.Canvas(output_path, pagesize=letter) width, height = letter # Header c.setFont("Helvetica-Bold", 24) c.drawString(1*inch, height - 1*inch, "INVOICE") # Invoice details c.setFont("Helvetica", 12) c.drawString(1*inch, height - 1.5*inch, f"Invoice #: {data['invoice_number']}") c.drawString(1*inch, height - 1.75*inch, f"Date: {data['date']}") # From/To y = height - 2.5*inch c.drawString(1*inch, y, f"From: {data['from']['name']}") c.drawString(4*inch, y, f"To: {data['to']['name']}") # Items table y = height - 4*inch c.setFont("Helvetica-Bold", 10) c.drawString(1*inch, y, "Description") c.drawString(4*inch, y, "Qty") c.drawString(5*inch, y, "Rate") c.drawString(6*inch, y, "Amount") c.setFont("Helvetica", 10) subtotal = 0 for item in data['items']: y -= 0.3*inch amount = item['quantity'] * item['rate'] subtotal += amount c.drawString(1*inch, y, item['description']) c.drawString(4*inch, y, str(item['quantity'])) c.drawString(5*inch, y, f"${item['rate']:.2f}") c.drawString(6*inch, y, f"${amount:.2f}") # Totals tax = subtotal * data['tax_rate'] total = subtotal + tax y -= 0.5*inch c.drawString(5*inch, y, f"Subtotal: ${subtotal:.2f}") y -= 0.25*inch c.drawString(5*inch, y, f"Tax ({data['tax_rate']*100}%): ${tax:.2f}") y -= 0.25*inch c.setFont("Helvetica-Bold", 12) c.drawString(5*inch, y, f"Total: ${total:.2f}") c.save() return output_path ``` ### HTML Template Approach ```python from weasyprint import HTML from jinja2 import Templ