Whether you are a backend developer integrating report generation, an admin managing legal paperwork, or a data scientist exporting analytics, this tutorial will walk you through every command, configuration, and best practice for mastering Afratafreeh Doc.
Use the --debug flag to print the abstract syntax tree (AST) before rendering. Afratafreeh Doc Tutorial-
afratafreeh serve --port 4000 Visit http://localhost:4000/edit?template=draft.afd to see live changes. Even advanced users hit snags. Here’s how to fix them: Whether you are a backend developer integrating report
afratafreeh help --full Disclaimer: This tutorial is written for a generic "Afratafreeh Doc" system. If this refers to a specific proprietary tool, please refer to your internal documentation or vendor support for exact syntax and features. The logical structure above mirrors 90% of document generation engines (e.g., LaTeX, JasperReports, jsPDF, or Docmosis). Even advanced users hit snags
number_format(2) → $1,234.50 Conditional Logic % if order.status == 'shipped' % <div class="success">Your order is on the way.</div> % elif order.status == 'pending' % <div class="warning">Processing...</div> % else % <div class="error">Contact support.</div> % endif % Loops (Iteration) Loop through arrays to build tables dynamically:
| Error Message | Likely Cause | Solution | |---------------|--------------|----------| | SyntaxError: Unexpected token '%' | Mismatched tags (e.g., {% if closed with endif ) | Use % endif % ; check opening/closing braces. | | KeyError: 'user.email' | Missing data in JSON path. | Use safe navigation: user.email \ | | Cannot find module '@afratafreeh/pdf-renderer' | Missing PDF backend. | Run npm install @afratafreeh/pdf-renderer | | Output truncated at 5000 pages | Loop generating infinite rows. | Check your % for % condition; add [:100] to limit: items[:100] |
afratafreeh render -t contract.afd -d client.json -o contract.pdf --secure --watermark "CONFIDENTIAL" --password-protected Develop templates faster using hot reload: