frappe-syntax-print

Generate Frappe print formats and PDFs with correct template engine and CSS.

163|53|Updated Jan 14, 2026
One-click install
npx skills add https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-syntax-print-impertio-studio
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: frappe-syntax-print
Source: https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/syntax/frappe-syntax-print
Command: npx skills add https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-syntax-print-impertio-studio

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill prevents common, production-breaking mistakes when building Frappe Print Formats and generating PDFs, such as mixing Jinja with Report JS microtemplates or producing missing/incorrect PDF output due to wrong engine assumptions or asset handling.

Core Features & Use Cases

  • Correct template engine selection: Uses Jinja for Jinja Print Formats and {%= %} microtemplate syntax for Report Print Formats, avoiding silent rendering failures.
  • Production-ready PDF generation guidance: Covers get_pdf, download_pdf, letter head rendering, PDF engine selection (wkhtmltopdf vs chrome), and print layout controls (page breaks, print CSS).
  • Performance and rendering guardrails: Avoids N+1 query patterns in templates and provides best practices for images, absolute URLs, and HTML safety (| safe).
  • Use Case: You need a Sales Invoice PDF that includes a customized letter head, consistent page numbering, and reliable table pagination across v14–v16; follow this Skill to configure the right print format type and template syntax.

Quick Start

Ask for a Frappe Sales Invoice Print Format template that includes letter head and page breaks for Frappe v16, ensuring the correct Jinja or {%= %} syntax for the chosen print format type.

Frequently Asked Questions about frappe-syntax-print

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Can I use the Frappe Print Designer on v15 to generate PDFs with custom letter heads?

Frappe PDF generation requires configuring print CSS, respecting the `no_letterhead` flag, and using `frappe.utils.get_url()` for absolute asset URLs to ensure proper letter head rendering and pagination.

What's the correct template syntax for Frappe Report Print Formats versus Jinja Print Formats?

Frappe Report Print Formats require `{%= %}` microtemplate syntax, while Jinja Print Formats use standard Jinja syntax to avoid silent rendering failures and ensure correct PDF output generation.

Does wkhtmltopdf work with Frappe v15 and v16 PDF generation?

wkhtmltopdf and chrome are both supported PDF engines for Frappe v14–v16, allowing you to select the appropriate renderer for your print layout controls and HTML/CSS patterns.

Why does my Frappe print format render blank or incorrectly when using Jinja templates?

Frappe print formats render blank when mixing Jinja syntax with Report JS microtemplates, requiring correct template engine selection and PDF-safe HTML/CSS patterns to prevent silent rendering failures.

How do I add page numbers and table pagination to a Frappe Sales Invoice PDF?

To add page numbers and table pagination to a Frappe Sales Invoice PDF, configure the print format type, apply print CSS page break controls, and use the correct template syntax for your Frappe version.

Can I use the Frappe Print Designer on v15 to generate PDFs with custom letter heads?

Frappe Print Designer on v15+ supports custom letter head rendering and PDF generation, alongside standard Jinja templates and Report JS microtemplates across v14–v16.