PHPackages                             jaxwilko/php-chrome-pdf - 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. jaxwilko/php-chrome-pdf

ActiveLibrary[PDF &amp; Document Generation](/categories/documents)

jaxwilko/php-chrome-pdf
=======================

A package to leverage Chrome as a PDF renderer for PHP

v0.1.2(2y ago)3131MITPHP

Since Jul 10Pushed 2y ago2 watchersCompare

[ Source](https://github.com/jaxwilko/php-chrome-pdf)[ Packagist](https://packagist.org/packages/jaxwilko/php-chrome-pdf)[ RSS](/packages/jaxwilko-php-chrome-pdf/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (4)Used By (0)

PHP Chrome PDF
==============

[](#php-chrome-pdf)

This package offers an interface for generating PDFs using Chrome.

> Notice: This package requires google-chrome/chromium to be installed and available to the php user

### Install

[](#install)

```
composer require jaxwilko/php-chrome-pdf
```

### Usage

[](#usage)

For basic usage, you can use the `make()` helper method:

```
$pdf = \ChromePdf\ChromePdf::make($content);
// or printing to file
\ChromePdf\ChromePdf::make($content, '/path/to/out.pdf');
```

`ChromePdf` supports multiple input types, these include:

- `url` for rendering a website url (i.e. `https://example.com`)
- `file` for rendering a file
- `text` for rendering text content

```
use ChromePdf\ChromePdf;

$chromePdf = new ChromePdf();

// Render text content (this is the default option)
$chromePdf->setInput($content);
$chromePdf->setInput($content, ChromePdf::INPUT_TEXT);

// Render a url
$chromePdf->setInput('https://example.com', ChromePdf::INPUT_URL);

// Render a file
$chromePdf->setInput('/path/to/example.html', ChromePdf::INPUT_FILE);

// Print PDF to file
$chromePdf->print(__DIR__ . '/example.pdf');

// Print PDF and get as binary
$pdf = $chromePdf->print();
```

If you need to customise the chrome flags, you can use the following methods:

```
// Set a single flag
$chromePdf->setFlag('--example-flag');

// Set multiple flags
$chromePdf->setFlag([
    '--example-flag-a',
    '--example-flag-b',
]);

// Replace all flags
$chromePdf->setFlags([
    '--example-flag-a',
    '--example-flag-b',
    '--example-flag-c'
]);

// You can also retrieve flag via
$flags = $chromePdf->getFlags();

// Removing a flag
$chromePdf->clearFlag('--example-flag');
```

### Chrome flags

[](#chrome-flags)

The following are some useful flags which may help.

- `--virtual-time-budget=1000` This will make sure remote assets (e.g. fonts) finish loading before printing the page. If set the system waits the specified number of virtual milliseconds before deeming the page to be ready. For determinism virtual time does not advance while there are pending network fetches (i.e no timers will fire). Once all network fetches have completed, timers fire and if the system runs out of virtual time is fastforwarded so the next timer fires immediately, until the specified virtual time budget is exhausted
- `--run-all-compositor-stages-before-draw` Effectively disables pipelining of compositor frame production stages by waiting for each stage to finish before completing a frame.

For more see [Peter Beverloo's very helpful page](https://peter.sh/experiments/chromium-command-line-switches/).

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 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.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

1043d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/be47e8bcfe3307d05fd25d12abc09a9e213596e04507ccc62084c675959ebb60?d=identicon)[jaxwilko](/maintainers/jaxwilko)

---

Top Contributors

[![jaxwilko](https://avatars.githubusercontent.com/u/31214002?v=4)](https://github.com/jaxwilko "jaxwilko (6 commits)")

### Embed Badge

![Health badge](/badges/jaxwilko-php-chrome-pdf/health.svg)

```
[![Health](https://phpackages.com/badges/jaxwilko-php-chrome-pdf/health.svg)](https://phpackages.com/packages/jaxwilko-php-chrome-pdf)
```

###  Alternatives

[spatie/browsershot

Convert a webpage to an image or pdf using headless Chrome

5.2k32.1M102](/packages/spatie-browsershot)[ismaelw/laratex

A package for creating PDFs in Laravel using LaTeX

12730.1k](/packages/ismaelw-laratex)[rockett/weasyprint

A feature-rich Laravel wrapper for the WeasyPrint Document Factory.

28199.7k](/packages/rockett-weasyprint)[padam87/rasterize-bundle

HTML to PDF Symfony bundle. Works with Puppeteer, PhantomJS, and more.

1579.4k](/packages/padam87-rasterize-bundle)[enzim/tika-wrapper

This is a simple PHP Wrapper for Apache Tika (using the tika-app jar)

6021.3k](/packages/enzim-tika-wrapper)[karkowg/php-mupdf

Minimal PDF to image converter using MuPDF

202.8k](/packages/karkowg-php-mupdf)

PHPackages © 2026

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