Bubble2PDF Exporter — Plugin to Convert Pages & Elements to PDF

Hey Bubblers :waving_hand:

Sharing a free plugin I built: Bubble2PDF Exporter — convert any Bubble page or element to a multi-page PDF, directly from the browser. No external API, no subscription, no server costs.

### What it does

- Export a full page or a single element by its ID

- Multi-page support with automatic content splitting

- All standard page formats (A4, Letter, Legal, Tabloid, A3, A5, B-series, Executive, Custom)

- Portrait and landscape orientation

- Configurable margins (top, right, bottom, left)

- Headers and footers with `{{pageNumber}}` / `{{totalPages}}` placeholders

- Page numbers (left, center, or right)

- Page break control (Pagebreaker IDs, avoid-inside, break-after)

- Watermark text with configurable opacity and angle

- Custom CSS injection for print-specific styles

- Dynamic file names

- Auto-download or manual trigger

- Progress tracking (0-100%)

- Upload to Bubble’s file manager

- All states exposed: PDF URL, Base64, Page Count, File Size, Error Message

### How to use

1. Place the ConverterToPDF element on your page

2. Set the Element ID of the group you want to export

3. Add a button → workflow → Element Actions → Convert to PDF

4. Done. PDF downloads automatically.

### Demo

### Plugin page

### Plugin Documentation

### Why I built this

I needed reliable PDF export across multiple projects. The existing options were either $100+, required external API subscriptions, or had reliability issues. Bubble2PDF Exporter runs entirely in the browser — no API keys, no server infrastructure, no usage limits.

### Features at a glance

| Feature | Bubble2PDF Exporter |

|---------|:—:expressionless:

| Convert page or element to PDF | :white_check_mark: |

| All standard page formats + custom | :white_check_mark: |

| Multi-page with auto-splitting | :white_check_mark: |

| Page break control (breaker IDs, avoid-inside, break-after) | :white_check_mark: |

| Headers & footers with page numbers | :white_check_mark: |

| Watermark (text, opacity, angle) | :white_check_mark: |

| Progress tracking | :white_check_mark: |

| Custom CSS injection | :white_check_mark: |

| Base64 output for workflows | :white_check_mark: |

| Upload to Bubble file manager | :white_check_mark: |

| Dynamic file names | :white_check_mark: |

| No external API / no server | :white_check_mark: |

### Known limitations

- Cross-origin images (from Bubble’s CDN) may appear blank due to browser CORS restrictions. Same-origin images and inline SVGs work fine. For full image support, host assets on a CORS-enabled CDN.

- Maps, WebGL, iframes won’t render (browser-level limitation shared by all client-side PDF tools).

-–

Happy to answer questions. If you run into issues, drop them here and I’ll help out.

Cheers! :rocket: