Skip to content
ChakshuGautam edited this page May 17, 2021 · 14 revisions

Building a PDF

Requires the following - Mapping Config (example - google sheet), Template (example - Google Doc). This will generate a PDF which looks like this

PDF Builder facilitates the following conversion,

Raw Data + Config + Template = PDF

It has the following components

  1. Server to ingest Raw Data
  2. A Queue to process the above conversion sequentially (Currently a custom queue; We plan to move it to a Celery based things later)
  3. A base interface that allows you to build Plugins. You can find the interface definition here.
  4. Plugins that concrete implementations of the the base.

We have currently built the following Plugins

  1. Google Docs Plugin => Google Sheet + Google Docs Plugin
  2. ODK Plugin - Builds on 1 to add additional functionalities related to ODK.

Besides the core things, we also added the following functionalities to the system

  • A file-uploader to push the files to Google Cloud Storage/S3/Minio and get public sharable links.
  • A URL shortener to compress the above links to share and track usage.

TODO

  • Remove Polr and update the URL Shortner.
  • New Plugin based on OpenXML.
  • Create a new API to to push data to Priority Queue to directly generate PDF based on OpenXML plugin.
Clone this wiki locally