PDF Conjurer

Demo to preview the plugin:


Now you can make PDF files in back-end workflows at Bubble with PDF Conjurer!
Make more with the PDF Conjurer at server-side using the PDF Make!
You can insert into your PDF file:
  • Texts
  • Images
  • Tables
  • Columns
  • Header / Footer
There is a total of 20 server-side actions that you can use in the back-end workflows to build your PDF file. These actions are very similar to those used on the client-side, with some particularities from the server-side Bubble actions! So, if you already use it on the client-side, it will be easy for you to use it on the server-side too!
Each action returns the configurations to the next action, and at the end, the plugin returns a base 64 string that the user can use in other actions in the back-end workflow, including make the file upload!
All actions receive the previous action result (except the “Initialize PDF Document” action), it will be always the first parameter you need to insert into the action! Please don’t forget! Each action will be shown below!

Plugin Actions

Initialize PDF document

Load font

Define new style

Add text

Add image

Add table

Start Multi-column

End Multi-column

Active header

Active footer

Start repeating structures

End repeat structure

Start repeated table

Add column to a repeated table

End repeated table

Start advanced table

Add column into advanced table

End advanced table

Conjure PDF

Upload PDF

Upload API workflow

To configure an upload API workflow is very simple:
Create an API Workflow and give it a name
Add a new parameter with the Type file! Remember the key name to insert into the “Upload PDF” action field “File input name”
Image without caption
Return the file’s URL, using the action “Return data from API” at the “Data (Things)” session
Image without caption
Optional: You can also use “Create a new thing...” to save the file’s data that you want in your database, or use it into another workflow
Image without caption

Workflow example

Initializing your App and initial PDF Conjurer configurations:

  1. Create a new App into your account and add the PDF Conjurer plugin
  1. The server side actions only works into the Backend workflows, so just go to the Top Menu and open the

Backend workflows

  1. In the Backend workflows you can create a workflow like you want (if you have a paid plan), here we create a new API Workflow as example, so give it a name, and make the configurations that you need
Image without caption
2. Use the action Initialize PDF Document to set the initial
configurations of your PDF document
Image without caption
  1. After the Initialize PDF Document action, insert the action that you want to add a content, you can use it in any order that you want
Image without caption
  1. Remember to load the previous step result Configurations into the first field of each action
Image without caption

To use special structures like multi-columns and repeating structures:

  1. After the Initialize PDF Document (Not necessarily right after) action, insert the action that initialize the structure
  1. The content must be between the start action and the end action of the corresponding structure, you can use these fields to specify where the content will be inserted, if none of these fields were used, the content will be inserted into the document
  1. Remember to insert the end action, in order to insert the structure into the document, before the “Conjure PDF” action
  1. Repeated tables must be inserted inside a repeating structure
  1. You can also combine multi-columns with repeating structures, using both fields in the actions!
  1. You can insert repeated tables into multi-colunms when this multi-column are into a repeating structure

To activate the header and footer:

  1. Remember to use the activate header/footer on PDF action, you can use only one or both into your document:
  1. The background doesn’t need to be activated
  1. Insert content into these structures:
    1. You can use the fields in an action to put the element into these structures
The elements into the header or footer are placed into a multi-column, so you can use the columns width property to adjust the content size
If the content is larger than the available space, it will be not displayed correctly

After insert all the content you need:

  1. Use the action Conjure PDF
  1. Set the last action into the first field
  1. Set the PDF Document name
  1. Choose if you want to insert the data header at the result base 64 string
The action returns the base 64 string with the document content, and its name with the pdf extension
Image without caption
Both the file name and the base 64 string can be:
  • Returned from your API Workflow
  • Saved into the database
  • Uploaded it into the Bubble server through the action “Upload PDF” and an upload API Workflow (see next page)

Uploading the PDF document

Configure an upload API Workflow (see page 34) and get your Workflow API root URL at your App Settings panel > API
After the action Conjure PDF:
  1. Use the action Upload PDF in your workflow
  1. Into field “Upload file URL” insert your Workflow API root URL plus “/your_upload_workflow_name”
  1. Insert the key name that receive a file into your upload workflow into the field “File input name”
  1. The “File name” field receives the “Conjure PDF” action File name result
  1. The “Content” field receives the “Conjure PDF” action Content result
  1. If you chose not that the workflow run without authentication, you need to insert the API token or a valid token provided by an authentication API Workflow into the “Authentication” field
Image without caption
The action returns the file's URL if it managed to locate it, in other words if you configured your upload workflow correctly:
You can find the file into the App Data panel > File manager
You can also save the file’s URL in the database, with the other information, like the name and his base64 string!
For example, to generate a list of files (periodic reports), or use it to send in an email, a message, show on a page and the user can click and open the file


Update 14.05.24 - Version 5.4.0

  • Fixed problem with Cors policy

Update 23.04.24 - Version 5.2.0

  • minor update

Update 15.04.24 - Version 5.1.0

  • Acquired by Zeroqode

Update 08.03.24 - Version 5.0.5

  • Fix 3 to server side, test before deploying to live.

Update 08.03.24 - Version 5.0.4

  • Fix 2 to server side - TEST before deploying to live!

Update 08.03.24 - Version 5.0.3

  • Fix to server side TEST BEFORE DEPLOYING LIVE

Update 03.03.24 - Version 5.0.2


Update 03.03.24 - Version 5.0.1


Update 02.03.24 - Version 5.0.0

  • V4 + Telemetry ⚠️ TEST BEFORE DEPLOYING ⚠️

Update 01.12.23 - Version 4.2.1

Update 26.09.23 - Version 4.2.0

  • Added external PDF upload option.

Update 25.09.23 - Version 4.1.0

  • External Conjure added! Solution for timeouts.

Update 25.07.23 - Version 4.0.1

  • Fix to new table style.

Update 22.07.23 - Version 4.0.0

  • Hover to read. Potentially breaking: Normal table text style now applied differently. New text margin & table layout.

Update 13.07.23 - Version 3.10.0

  • New: BBcode table + custom fonts, multi column fixed width. Fix: line height.

Update 21.10.22 - Version 3.9.1

  • Description update

Update 13.10.22 - Version 3.9.0

  • Added text style to the footer counter.

Update 22.09.22 - Version 3.8.0

  • Added "Line height" value to the "Define new style" workflow actions.

Update 14.09.22 - Version 3.7.9

  • Description update again.

Update 14.09.22 - Version 3.7.8

  • Description update.

Update 13.09.22 - Version 3.7.7

  • Added info on the "Regexp@native code" error inside the "Parse BBCode" instruction.

Update 13.09.22 - Version 3.7.6

  • Added a lot to the descriptions of "Parse BBCode" and "insert text" actions to offer tips and details on their workings.

Update 24.08.22 - Version 3.7.5

  • Added "buy me a coffee" link in the description 😊☕

Update 16.08.22 - Version 3.7.4

  • Description update.

Update 27.07.22 - Version 3.7.3

  • Do you want to fund this plugin so it never stops working? Reach out to me, the author 😉

Update 02.05.22 - Version 3.7.2

  • Fixed typo on "right" image alignment value.

Update 04.03.22 - Version 3.7.1

  • Added debug option to the "Conjure" action to help diagnosing issues, especially intermittent ones.

Update 28.01.22 - Version 3.7.0

  • Private attach to thing on server side now enabled!

Update 26.01.22 - Version 3.6.0

  • Now advanced columns support empty lists. Will be blank column or header only column if no other column has any value.

Update 28.12.21 - Version 3.5.1

  • One more fix to "getParser is not defined" error.

Update 23.12.21 - Version 3.5.0

  • New: Page counter in footer now can display a divider, like 1/9 or 1 of 9 or anything else you specify, like 1 de 9.

Update 22.12.21 - Version 3.4.2

  • BBCode parser instability fix

Update 27.10.21 - Version 3.4.1

  • BBCode fix.

Update 19.10.21 - Version 3.4.0

  • Server side and bbcode fix. Plus, bbcode now accepted in tables! Just set the "Parse BBCode" field to "yes".

Update 30.08.21 - Version 3.3.2

  • Now pushed the right version containing the backend workflows. Reminder: instructions in the forum thread!

Update 28.08.21 - Version 3.3.1

  • Description update to reflect server side backend feature. Also, check forum thread for instruction manual!

Update 28.08.21 - Version 3.3.0

  • Major non-breaking upgrade: Server side actions! Now all actions have a backend workflow twin! BBCode parser fixed!

Update 18.06.21 - Version 3.2.1

  • Cosmetic adjustments.

Update 18.06.21 - Version 3.2.0

  • BBCode support for text element! Support almost all tags. Known exceptions are image, superscript and subscript.

Update 12.05.21 - Version 3.1.0

  • Slight description update.

Update 19.03.21 - Version 3.0.0

  • Folding back nested builtin loops, not up to standards, building examples with List Shifter loop, check example page!

Update 18.03.21 - Version 2.5.1

  • Stability improvement to table and advanced table elements. Now a single row will not split (break) between two pages.

Update 16.03.21 - Version 2.5.0

  • Nested loops now available! As always, make sure you check the example page on how to make it work 😊

Update 09.03.21 - Version 2.4.0

  • Custom fonts can now be loaded! Use as many fonts that you want! Unleash your creativity 😉

Update 01.03.21 - Version 2.3.0

  • Custom margins now work on the text element too inside the advanced table column. Keep the feedback coming! 😉

Update 22.02.21 - Version 2.2.0

  • New feature: Advanced table element now available! Advantages are one style per column, image in column and fixed width.

Update 16.12.20 - Version 2.1.1

  • Fixed a regression bug: Multicolumn had stopped working in normal conditions.

Update 15.12.20 - Version 2.1.0

  • New feature added: Built in loops! See doc page to know more. Now you can dynamically repeat a structure.

Update 15.12.20 - Version 2.0.0

  • Breaking change: No need to place image names anymore. Existing workflow actions must be updated to include the URL.

Update 09.03.20 - Version 1.6.1

  • Description change

Update 23.12.19 - Version 1.6.0

  • Now with the option to disable the download prompt when conjuring it, allowing you to only save to the database. Find that setting at the "Conjure!" final action.

Update 11.10.19 - Version 1.5.1

  • Ninja edit to previous update. Forgot to paste a few stuff here and there.

Update 11.10.19 - Version 1.5.0

  • Added a checkbox for you to push elements into the background! You can push as many as you want (tables, texts and images).

Update 27.05.19 - Version 1.4.2

  • Pushed small adjustment that cleanses illegal characters from the filename, such as dot and slashes. These rare cases were causing the files to look like they have no extension or other unwanted side effects.

Update 01.05.19 - Version 1.4.1

  • Pushed small adjustment.

Update 29.04.19 - Version 1.4.0

  • Now the PDF can optionally be saved to your app's database! Check forum thread for instructions. This is backward compatible (not a breaking change).

Update 26.01.19 - Version 1.3.3

  • Ninja bugfix to the previous release.

Update 26.01.19 - Version 1.3.2

  • Now you can make an empty column by not setting any data on it, just mark the checkbox to use it and leave it.

Update 16.01.19 - Version 1.3.1

  • Small adjustment.

Update 14.01.19 - Version 1.3.0

  • Removed "field position in thing", just use normal expression, like "list of customer's name". Made multi column name also dynamic.

Update 10.01.19 - Version 1.2.0

  • Image and style names, page and element margins now accept dynamic values. Use this to better control how your pdf will look and even pass some controls to your user, like bigger or smaller text size.

Update 25.11.18 - Version 1.1.0

  • Updating description, still is the first release!

Update 24.11.18 - Version 1.0.0

  • First release!