PHPackages                             row-bloom/row-bloom - 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. [Templating &amp; Views](/categories/templating)
4. /
5. row-bloom/row-bloom

ActiveLibrary[Templating &amp; Views](/categories/templating)

row-bloom/row-bloom
===================

Table rows to pdf cards

v0.5.0(2y ago)2462↓33.3%[18 issues](https://github.com/row-bloom/row-bloom/issues)1MITPHPPHP ^8.1

Since Jul 23Pushed 2y agoCompare

[ Source](https://github.com/row-bloom/row-bloom)[ Packagist](https://packagist.org/packages/row-bloom/row-bloom)[ Docs](https://github.com/row-bloom/row-bloom)[ RSS](/packages/row-bloom-row-bloom/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (6)Dependencies (14)Versions (7)Used By (1)

Row bloom
=========

[](#row-bloom)

[![Latest Version on Packagist](https://camo.githubusercontent.com/ef13f02299393907cb8776ff43293706a3e9ab7841e60d05c706861a5ebd8dbc/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f726f772d626c6f6f6d2f726f772d626c6f6f6d2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/row-bloom/row-bloom)[![Pest action](https://camo.githubusercontent.com/312706d51727b54528f9ca53b426cfeec72dc8147f58ad6406ca5f286c43c74a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f726f772d626c6f6f6d2f726f772d626c6f6f6d2f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/row-bloom/row-bloom/actions?query=workflow%3Arun-tests+branch%3Amain)[![Pint action](https://camo.githubusercontent.com/10703f2f82b618432d0081c07fc9394555a1f03cdaa5c03a09d3d4ba4886c7e4/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f726f772d626c6f6f6d2f726f772d626c6f6f6d2f6669782d7068702d636f64652d7374796c652d6973737565732e796d6c3f6272616e63683d6d61696e266c6162656c3d636f64652532307374796c65267374796c653d666c61742d737175617265)](https://github.com/row-bloom/row-bloom/actions?query=workflow%3A%22Fix+PHP+code+style+issues%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/464a19322e71ad1753c0e994b8a1e2396c2b40ede78e1b3aa3c4fc98653b62a3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f726f772d626c6f6f6d2f726f772d626c6f6f6d2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/row-bloom/row-bloom)

This package is used to generate PDFs using a table of data with one or many rows, and a template that gets applied for each row.

The goal is to allow the usage of any templating engine with any PDF generation library, by abstracting them as drivers and trying to ensure an idempotent output no matter what driver the user picks.

[![illustration](./illustration.png)](./illustration.png)

```
use RowBloom\ChromePhpRenderer\ChromePhpRenderer;
use RowBloom\RowBloom\DataLoaders\FolderDataLoader;
use RowBloom\RowBloom\DataLoaders\JsonDataLoader;
use RowBloom\RowBloom\Interpolators\PhpInterpolator;
use RowBloom\CssLength\PaperFormat;
use RowBloom\RowBloom\Options;
use RowBloom\RowBloom\Support;

$support = (new Support)
    ->registerDataLoaderDriver(FolderDataLoader::NAME, FolderDataLoader::class)
    ->registerDataLoaderDriver(JsonDataLoader::NAME, JsonDataLoader::class)
    ->registerInterpolatorDriver(PhpInterpolator::NAME, PhpInterpolator::class)
    ->registerRendererDriver(ChromePhpRenderer::NAME, ChromePhpRenderer::class);

$r = rowBloom(support: $support)->rowBloom;

$r->setInterpolator('PHP')->setRenderer('Chrome')
    ->addTable([
        ['title' => 'Title1', 'body' => 'body1'],
        ['title' => 'Title2', 'body' => 'body2'],
    ])
    ->setTemplate('

    ')
    ->addCss('h1 {color: red;}')
    ->tapOptions(function (Options $options) {
        $options->format = PaperFormat::_A4;
        $options->displayHeaderFooter = true;
        $options->margin = '1 in';
    })
    ->save(__DIR__.'/foo.pdf');
```

Setup
-----

[](#setup)

```
composer require row-bloom/row-bloom
```

Usage
-----

[](#usage)

Head over to the [full documentation](https://github.com/row-bloom/row-bloom/wiki).

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

[![class diagram](./class_diagram.drawio.png)](./class_diagram.drawio.png)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 99.5% 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 ~32 days

Total

6

Last Release

860d ago

### Community

Maintainers

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

---

Top Contributors

[![medilies](https://avatars.githubusercontent.com/u/35309918?v=4)](https://github.com/medilies "medilies (416 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")

---

Tags

generationhtmllibrarypdfphprenderingspreadsheetpdftablegenerationRendering

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/row-bloom-row-bloom/health.svg)

```
[![Health](https://phpackages.com/badges/row-bloom-row-bloom/health.svg)](https://phpackages.com/packages/row-bloom-row-bloom)
```

###  Alternatives

[phpoffice/phpword

PHPWord - A pure PHP library for reading and writing word processing documents (OOXML, ODF, RTF, HTML, PDF)

7.5k34.7M183](/packages/phpoffice-phpword)[anourvalar/office

Generate documents from existing Excel &amp; Word templates | Export tables to Excel (Grids)

24085.2k](/packages/anourvalar-office)[helhum/typoscript-rendering

Can render a TypoScript path by URL, especially useful for Ajax dispatching

68653.7k12](/packages/helhum-typoscript-rendering)[view-components/view-components

Flexible Framework-Agnostic UI for Enterprise Web Applications

2498.7k7](/packages/view-components-view-components)[icircle/docx-template-in-php

Create Templates in MS Word docx format and use them Creating Business documents using PHP

4422.7k](/packages/icircle-docx-template-in-php)[itstructure/laravel-grid-view

Grid view for laravel framework

2546.6k2](/packages/itstructure-laravel-grid-view)

PHPackages © 2026

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