Tornado - Create a PDF using Python via API

This example shows how to generate a PDF from a DOCX template using Python.  It calls the Docmosis REST API to merge the data with the template and stream the result back.

The sample code includes the instructions to get started. You will need a Free Trial to install and run Tornado.

# This example shows how to use Python to call a local Docmosis Tornado service to render a PDF from the default WelcomeTemplate.docx template.

import requests
import json
import datetime

accessKey=''

dataStr = '{"message":"This Tornado Document Engine is working great!", "date":"' + datetime.datetime.now().strftime("%Y/%m/%d") + '"}'
payload = '{"accessKey": "' + accessKey + '", "templateName":"samples/WelcomeTemplate.docx", "outputName":"myWelcome.pdf", "data":' + dataStr + '}'

headers = {'content-type': 'application/json'}
r = requests.post("http://localhost:8080/api/render", data=payload, headers = headers)

if r.status_code == requests.codes.ok:

  with open('myWelcome.pdf', 'wb') as fd:
    for chunk in r.iter_content(4096):
        fd.write(chunk)
  print("Saved to myWelcome.pdf");
else:
  print("Failed");
  print(r.text)
 

API Overview

Docmosis offers a high-performance, template-based PDF generation API. Suitable for use with custom software applications built using Java, C#/.Net, Python, Ruby and more. See a side-by-side comparison of the API for our SaaS and self-hosted products.