PHPackages                             psukhedelos/queuedjobs-pdf-export - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PDF &amp; Document Generation](/categories/documents)
4. /
5. psukhedelos/queuedjobs-pdf-export

ActiveSilverstripe-module[PDF &amp; Document Generation](/categories/documents)

psukhedelos/queuedjobs-pdf-export
=================================

Export PDFs using QueuedJobs

091PHP

Since Jan 24Pushed 9y ago2 watchersCompare

[ Source](https://github.com/PsukheDelos/queuedjobs-pdf-export)[ Packagist](https://packagist.org/packages/psukhedelos/queuedjobs-pdf-export)[ RSS](/packages/psukhedelos-queuedjobs-pdf-export/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

SilverStripe Queued Jobs PDF Export Module
==========================================

[](#silverstripe-queued-jobs-pdf-export-module)

Maintainer Contact
------------------

[](#maintainer-contact)

[Glen Peek](mailto:glen@silverstripe.com?Subject=%5BSilverStripe%5D%20Queued%20Jobs%20PDF%20Export%20Module "Email Glen")

Use
---

[](#use)

By default, this job starts at the first page and produces PDFs in batches of 20

If you would like to create a custom job, enter the desired batch size as the first parameter and the Page ID of the page you'd like the job to start on as the second parameter.

In the example below, we have specified to run the job in batches of 42 starting at Page 1024. [![alt text](docs/en/_images/example.png "ExportPDFJob Example")](docs/en/_images/example.png)

Requirements
------------

[](#requirements)

- CWP
- SilverStripe Queued Jobs Module 2.x
- This module requires that pdf\_export is enabled. For example, you may include in your config.yml:

    ```
    BasePage:
      pdf_export: 1

    ```
- Currently, only works with themes that are self contained (e.g. in one folder). For instance, the default CWP theme does not work as it relies on a separate folder for bootstrap styling.

Version info
------------

[](#version-info)

The master branch of this module is currently aiming for SilverStripe 3.x compatibility

Documentation
-------------

[](#documentation)

The Queued Jobs PDF Export module provides a process for exporting all Live Pages to PDF.

By default, when PDF export is enabled on a CWP site, a download PDF link is added to all BasePages. The first time this link is hit, a PDF is generated of the page and then served to the user. On subsequent requests, the already generated PDF is served to the user instead of regenerating the PDF.

However, it was discovered that this was causing some CWP instances to overload. Bots crawling the web would happen upon a CWP site. They would then go about hitting every path they could. In doing so, they would hit the generatePDF function of every page in a short space of time. As many pages across the site had not had PDFs generated, this would cause the CWP instance to overload as it would now have to generate countless PDFs.

This was designed to prevent PDF Generation from overloading CWP instances by pushing generation of PDFs out to QueuedJobs to be run during off peak hours. This would ensure that all pages had a cached, pre-generated PDF available for download.

Future Work
-----------

[](#future-work)

At present, this module would be run every so often on off peak hours. Ideally, the Export PDF Job would be run once over a website to generate all PDFs initially. BasePage could then be modified to published a new PDF every time it is updated / published.

Quick Usage Overview
--------------------

[](#quick-usage-overview)

- To run, select the ExportPDFJob from the Jobs tab of the CMS and run. Ideally, this should be done during off peak hours.

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/87c26f2686998bd3f99b4b5193b86468bffcd043828dae1493862f64df88ea95?d=identicon)[PsukheDelos](/maintainers/PsukheDelos)

---

Top Contributors

[![PsukheDelos](https://avatars.githubusercontent.com/u/2417969?v=4)](https://github.com/PsukheDelos "PsukheDelos (16 commits)")

### Embed Badge

![Health badge](/badges/psukhedelos-queuedjobs-pdf-export/health.svg)

```
[![Health](https://phpackages.com/badges/psukhedelos-queuedjobs-pdf-export/health.svg)](https://phpackages.com/packages/psukhedelos-queuedjobs-pdf-export)
```

###  Alternatives

[phpoffice/phpspreadsheet

PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine

13.9k293.5M1.3k](/packages/phpoffice-phpspreadsheet)[spatie/browsershot

Convert a webpage to an image or pdf using headless Chrome

5.2k32.1M102](/packages/spatie-browsershot)[smalot/pdfparser

Pdf parser library. Can read and extract information from pdf file.

2.7k34.5M216](/packages/smalot-pdfparser)[barryvdh/laravel-snappy

Snappy PDF/Image for Laravel

2.8k24.8M48](/packages/barryvdh-laravel-snappy)[openspout/openspout

PHP Library to read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way

1.1k57.6M131](/packages/openspout-openspout)[keboola/csv

Keboola CSV reader and writer

1451.8M21](/packages/keboola-csv)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
