frappe-syntax-print

Design and troubleshoot Frappe print formats and PDF generation workflows.

Updated May 31, 2026
One-click install
npx skills add https://github.com/anonymousminati/Res-POS --skill frappe-syntax-print-anonymousminati
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: frappe-syntax-print
Source: https://github.com/anonymousminati/Res-POS/tree/main/.claude/skills/syntax/frappe-syntax-print
Command: npx skills add https://github.com/anonymousminati/Res-POS --skill frappe-syntax-print-anonymousminati

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill removes the confusion and rendering failures that happen when building print formats and PDFs in Frappe, especially when switching between template engines, PDF engines, and version-specific behavior.

Core Features & Use Cases

  • Jinja print formats: Create fully custom document layouts with the correct Frappe print-context variables and filters.
  • Report print formats: Use the right JS microtemplate syntax for query and script reports without mixing it with Jinja.
  • PDF generation: Handle get_pdf, download_pdf, multi-document downloads, Letter Head behavior, and engine selection across Frappe v14-v16.
  • Layout and rendering guidance: Apply page breaks, print CSS, image constraints, and compatibility rules for wkhtmltopdf, Chrome, and WeasyPrint.
  • Use case: A developer can use this Skill to fix a broken invoice print format, choose the correct engine for the site version, and produce a clean PDF with proper headers and page breaks.

Quick Start

Ask this Skill to review your Frappe print format, identify the correct template engine, and produce a PDF-ready layout with the right version-specific settings.

Frequently Asked Questions about frappe-syntax-print

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

FAQPage Schema
How do I fix broken Frappe print formats and PDF generation errors?

Frappe PDF generation uses get_pdf and download_pdf functions, supporting wkhtmltopdf, Chrome, and WeasyPrint engines. Selecting the correct engine depends on your Frappe version, with v14 through v16 supporting different rendering behaviors for optimal output.

What is the difference between Jinja and JS microtemplates in Frappe print formats?

Jinja templates are used for custom document print formats with specific print-context variables, while JS microtemplates are required for query and script reports. Mixing these template engines causes rendering failures, so each must use its distinct syntax rules.

How do I configure Letter Head and page breaks in Frappe PDFs?

Configure Letter Head by applying correct no_letterhead handling and use print CSS to manage page breaks. Proper image constraints and page-break styling ensure multi-page Frappe PDFs render cleanly without cutting content across pages.

Does Frappe wkhtmltopdf work with WeasyPrint for report print templates?

Frappe supports wkhtmltopdf, Chrome, and WeasyPrint for PDF generation, but engine compatibility varies across v14 to v16. Choose the engine matching your site version to avoid rendering mistakes and ensure proper template processing.

Why does my Frappe PDF download cut off content or render incorrectly?

Frappe PDFs render incorrectly when using the wrong template engine, missing print-context variables, or incompatible PDF engine settings. Review your print format layout, apply correct page-break CSS, and verify engine selection for your Frappe version.