From contracts and invoices to social media banners, leverage our the htmlTemplate option for swift document generation. The htmlTemplate uses Handlebars to render your HTML together with the provided templateData. See Templating for more info.

Example

This example generates a report PDF using Tailwind CSS.

curl --request POST 'https://api.doczilla.app/v1/pdf' \
  --header 'Authorization: Bearer <your token>' \
  --header 'Content-Type: application/json' \
  --output 'doczilla.pdf' \
  --data '{
    "pdf": {
      "format": "a4"
    },
    "page": {
      "htmlTemplate": "PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KICA8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICAgIDx0aXRsZT5Nb250aGx5IFNhbGVzIFJlcG9ydDwvdGl0bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4udGFpbHdpbmRjc3MuY29tIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2VjaGFydHNANS40LjIvZGlzdC9lY2hhcnRzLm1pbi5qcyI+PC9zY3JpcHQ+CiAgPC9oZWFkPgogIDxib2R5IGNsYXNzPSJiZy13aGl0ZSI+CiAgICA8ZGl2IGNsYXNzPSJtYXgtdy0zeGwgbXgtYXV0byI+CiAgICAgIDxhcnRpY2xlIGNsYXNzPSJvdmVyZmxvdy1oaWRkZW4iPgogICAgICAgIDxkaXYgY2xhc3M9ImJnLXdoaXRlIHJvdW5kZWQtYi1tZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTkiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZS15LTYgdGV4dC1zbGF0ZS03MDAiPgogICAgICAgICAgICAgIDxpbWcgY2xhc3M9Im9iamVjdC1jb3ZlciBoLTEyIiBzcmM9Imh0dHBzOi8vYXNzZXRzLmRvY3ppbGxhLmFwcC9leGFtcGxlcy9pbnZvaWNlLWV4YW1wbGUtbG9nby5wbmciCiAgICAgICAgICAgICAgICAgICBhbHQ9IkNvbXBhbnkgTG9nbyI+CiAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQteGwgZm9udC1leHRyYWJvbGQgdHJhY2tpbmctdGlnaHQgZm9udC1ib2R5Ij4KICAgICAgICAgICAgICAgIE1vbnRobHkgU2FsZXMgUmVwb3J0OiA8c3Bhbj57eyBudW1iZXIgfX08L3NwYW4+CiAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9InB4LTkiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGZsZXgtY29sIG14LTAgbXQtOCI+CiAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJtaW4tdy1mdWxsIGRpdmlkZS15IGRpdmlkZS1zbGF0ZS01MDAiPgogICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPSJjb2wiCiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJweS0zLjUgcGwtNCBwci0zIHRleHQtbGVmdCB0ZXh0LXNtIGZvbnQtbm9ybWFsIHRleHQtc2xhdGUtNzAwIHNtOnBsLTYgbWQ6cGwtMCI+CiAgICAgICAgICAgICAgICAgICAgICBNb250aAogICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPSJjb2wiCiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJoaWRkZW4gcHktMy41IHB4LTMgdGV4dC1yaWdodCB0ZXh0LXNtIGZvbnQtbm9ybWFsIHRleHQtc2xhdGUtNzAwIHNtOnRhYmxlLWNlbGwiPgogICAgICAgICAgICAgICAgICAgICAgU2FsZXMgKCQpCiAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9ImNvbCIKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InB5LTMuNSBwbC0zIHByLTQgdGV4dC1yaWdodCB0ZXh0LXNtIGZvbnQtbm9ybWFsIHRleHQtc2xhdGUtNzAwIHNtOnByLTYgbWQ6cHItMCI+CiAgICAgICAgICAgICAgICAgICAgICBHcm93dGggKCUpCiAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAge3sjZWFjaCBzYWxlc319CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iYm9yZGVyLWIgYm9yZGVyLXNsYXRlLTIwMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InB5LTQgcGwtNCBwci0zIHRleHQtc20gc206cGwtNiBtZDpwbC0wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb250LW1lZGl1bSB0ZXh0LXNsYXRlLTcwMCI+e3tsYWJlbH19PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImhpZGRlbiBweC0zIHB5LTQgdGV4dC1zbSB0ZXh0LXJpZ2h0IHRleHQtc2xhdGUtNTAwIHNtOnRhYmxlLWNlbGwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt7c2FsZXN9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InB5LTQgcGwtMyBwci00IHRleHQtc20gdGV4dC1yaWdodCB0ZXh0LXNsYXRlLTUwMCBzbTpwci02IG1kOnByLTAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7I2lmIGdyb3d0aH19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Z3Jvd3RofX0lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlbHNlfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7L2lmfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAge3svZWFjaH19CiAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPHRmb290PgogICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPSJyb3ciIGNvbHNwYW49IjIiCiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJoaWRkZW4gcHQtNiBwbC02IHByLTMgdGV4dC1zbSBmb250LW5vcm1hbCB0ZXh0LXJpZ2h0IHRleHQtc2xhdGUtNzAwIHNtOnRhYmxlLWNlbGwgbWQ6cGwtMCI+CiAgICAgICAgICAgICAgICAgICAgICBUb3RhbCBTYWxlcwogICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJwdC02IHBsLTMgcHItNCB0ZXh0LXNtIGZvbnQtbm9ybWFsIHRleHQtcmlnaHQgdGV4dC1zbGF0ZS03MDAgc206cHItNiBtZDpwci0wIj4KICAgICAgICAgICAgICAgICAgICAgICR7eyB0b3RhbFNhbGVzIH19CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDwvdGZvb3Q+CiAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTkiPgogICAgICAgICAgICA8aDIgY2xhc3M9InRleHQtMnhsIGZvbnQtZXh0cmFib2xkIHRleHQtc2xhdGUtNzAwIj5TYWxlcyBHcm93dGggQ2hhcnQ8L2gyPgogICAgICAgICAgICA8ZGl2IGlkPSJzYWxlc0NoYXJ0IiBzdHlsZT0id2lkdGg6IDEwMCU7IGhlaWdodDogMzAwcHgiPjwvZGl2PgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0icHgtOSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvcmRlci10IGJvcmRlci1zbGF0ZS0yMDAiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtc20gcHQtNCBmb250LWxpZ2h0IHRleHQtc2xhdGUtNzAwIj4KICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICBUaGlzIHNhbGVzIHJlcG9ydCBwcm92aWRlcyBhbiBvdmVydmlldyBvZiBvdXIgbW9udGhseSBwZXJmb3JtYW5jZSBmcm9tIAogICAgICAgICAgICAgICAgICB7eyNlYWNoIHNhbGVzfX0KICAgICAgICAgICAgICAgICAgICB7eyNpZiBAZmlyc3R9fQogICAgICAgICAgICAgICAgICAgICAgICB7e2xhYmVsfX0KICAgICAgICAgICAgICAgICAgICB7ey9pZn19CiAgICAgICAgICAgICAgICAgICAge3sjaWYgQGxhc3R9fQogICAgICAgICAgICAgICAgICAgICAgICB0byB7e2xhYmVsfX0uCiAgICAgICAgICAgICAgICAgICAge3svaWZ9fQogICAgICAgICAgICAgICAgICB7ey9lYWNofX0KICAgICAgICAgICAgICAgICAgVGhlIGNvbnNpc3RlbnQgZ3Jvd3RoIGluIHNhbGVzIGRlbW9uc3RyYXRlcyB0aGUgZWZmZWN0aXZlbmVzcyBvZiBvdXIgc3RyYXRlZ2llcyBhbmQgdGhlCiAgICAgICAgICAgICAgICAgIGRlZGljYXRpb24gb2Ygb3VyIHRlYW0uIFdlIGxvb2sgZm9yd2FyZCB0byBtYWludGFpbmluZyB0aGlzIHBvc2l0aXZlIHRyZW5kIGluIHRoZSBjb21pbmcgbW9udGhzLgogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2FydGljbGU+CiAgICA8L2Rpdj4KCiAgICA8c2NyaXB0PgogICAgICB2YXIgbXlDaGFydCA9IGVjaGFydHMuaW5pdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FsZXNDaGFydCcpLCBudWxsLCB7IHJlbmRlcmVyOiAnc3ZnJyB9KQogICAgCiAgICAgIG15Q2hhcnQuc2V0T3B0aW9uKHsKICAgICAgICBhbmltYXRpb246IGZhbHNlLAogICAgICAgIHRvb2x0aXA6IHsKICAgICAgICAgIHRyaWdnZXI6ICdheGlzJywKICAgICAgICAgIGZvcm1hdHRlcjogZnVuY3Rpb24ocGFyYW1zKSB7CiAgICAgICAgICAgIHJldHVybiBwYXJhbXNbMF0ubmFtZSArICc8YnIvPicgKwogICAgICAgICAgICAgICAgICAgcGFyYW1zWzBdLnNlcmllc05hbWUgKyAnOiAkJyArIHBhcmFtc1swXS52YWx1ZS50b0xvY2FsZVN0cmluZygpCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB4QXhpczoge3t7anNvbiBjaGFydERhdGEueEF4aXN9fX0sCiAgICAgICAgeUF4aXM6IHsKICAgICAgICAgIHR5cGU6ICd2YWx1ZScsCiAgICAgICAgICBheGlzTGFiZWw6IHsKICAgICAgICAgICAgZm9ybWF0dGVyOiAnJHt2YWx1ZX0nCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBzZXJpZXM6IHt7e2pzb24gY2hhcnREYXRhLnNlcmllc319fQogICAgICB9KQogICAgPC9zY3JpcHQ+CiAgPC9ib2R5Pgo8L2h0bWw+",
      "templateData": {
        "sales": [
          { "label": "January", "sales": "10.000", "growth": null },
          { "label": "February", "sales": "12.500", "growth": 25 },
          { "label": "March", "sales": "15.000", "growth": 20 },
          { "label": "April", "sales": "18.000", "growth": 20 },
          { "label": "May", "sales": "22.000", "growth": 22 }
        ],
        "number": "SR-2024-05",
        "chartData": {
          "xAxis": {
            "data": ["January", "February", "March", "April", "May"],
            "type": "category"
          },
          "series": [
            {
              "data": [10000, 12500, 15000, 18000, 22000],
              "name": "Sales",
              "type": "bar",
              "itemStyle": { "color": "#3498db" }
            }
          ]
        },
        "totalSales": "77.500"
      },
    }
  }'

HTML

Output

Was this page helpful?