{"id":33993945,"url":"https://github.com/row-bloom/row-bloom","last_synced_at":"2026-05-28T06:36:17.656Z","repository":{"id":172227077,"uuid":"649016240","full_name":"row-bloom/row-bloom","owner":"row-bloom","description":"Powerful and extensible library to render tabular data into templates and generate PDFs","archived":false,"fork":false,"pushed_at":"2024-01-01T17:14:03.000Z","size":859,"stargazers_count":2,"open_issues_count":18,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-30T02:02:56.780Z","etag":null,"topics":["generation","html","library","pdf","php","rendering","spreadsheet"],"latest_commit_sha":null,"homepage":"https://github.com/row-bloom/row-bloom/wiki","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/row-bloom.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-06-03T14:07:20.000Z","updated_at":"2024-07-07T10:03:20.000Z","dependencies_parsed_at":"2023-12-10T18:39:37.106Z","dependency_job_id":null,"html_url":"https://github.com/row-bloom/row-bloom","commit_stats":null,"previous_names":["elaborate-code/row-bloom","row-bloom/row-bloom"],"tags_count":5,"template":false,"template_full_name":"spatie/package-skeleton-laravel","purl":"pkg:github/row-bloom/row-bloom","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/row-bloom%2Frow-bloom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/row-bloom%2Frow-bloom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/row-bloom%2Frow-bloom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/row-bloom%2Frow-bloom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/row-bloom","download_url":"https://codeload.github.com/row-bloom/row-bloom/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/row-bloom%2Frow-bloom/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27702065,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-13T02:00:09.769Z","response_time":147,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["generation","html","library","pdf","php","rendering","spreadsheet"],"created_at":"2025-12-13T07:36:49.544Z","updated_at":"2025-12-13T07:36:55.085Z","avatar_url":"https://github.com/row-bloom.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Row bloom\n\n[![Latest Version on Packagist](https://img.shields.io/packagist/v/row-bloom/row-bloom.svg?style=flat-square)](https://packagist.org/packages/row-bloom/row-bloom)\n[![Pest action](https://img.shields.io/github/actions/workflow/status/row-bloom/row-bloom/run-tests.yml?branch=main\u0026label=tests\u0026style=flat-square)](https://github.com/row-bloom/row-bloom/actions?query=workflow%3Arun-tests+branch%3Amain)\n[![Pint action](https://img.shields.io/github/actions/workflow/status/row-bloom/row-bloom/fix-php-code-style-issues.yml?branch=main\u0026label=code%20style\u0026style=flat-square)](https://github.com/row-bloom/row-bloom/actions?query=workflow%3A\"Fix+PHP+code+style+issues\"+branch%3Amain)\n[![Total Downloads](https://img.shields.io/packagist/dt/row-bloom/row-bloom.svg?style=flat-square)](https://packagist.org/packages/row-bloom/row-bloom)\n\nThis 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.\n\nThe 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.\n\n![illustration](./illustration.png)\n\n```php\nuse RowBloom\\ChromePhpRenderer\\ChromePhpRenderer;\nuse RowBloom\\RowBloom\\DataLoaders\\FolderDataLoader;\nuse RowBloom\\RowBloom\\DataLoaders\\JsonDataLoader;\nuse RowBloom\\RowBloom\\Interpolators\\PhpInterpolator;\nuse RowBloom\\CssLength\\PaperFormat;\nuse RowBloom\\RowBloom\\Options;\nuse RowBloom\\RowBloom\\Support;\n\n$support = (new Support)\n    -\u003eregisterDataLoaderDriver(FolderDataLoader::NAME, FolderDataLoader::class)\n    -\u003eregisterDataLoaderDriver(JsonDataLoader::NAME, JsonDataLoader::class)\n    -\u003eregisterInterpolatorDriver(PhpInterpolator::NAME, PhpInterpolator::class)\n    -\u003eregisterRendererDriver(ChromePhpRenderer::NAME, ChromePhpRenderer::class);\n\n$r = rowBloom(support: $support)-\u003erowBloom;\n\n$r-\u003esetInterpolator('PHP')-\u003esetRenderer('Chrome')\n    -\u003eaddTable([\n        ['title' =\u003e 'Title1', 'body' =\u003e 'body1'],\n        ['title' =\u003e 'Title2', 'body' =\u003e 'body2'],\n    ])\n    -\u003esetTemplate('\n        \u003ch1\u003e\u003c?= $title ?\u003e\u003c/h1\u003e\n        \u003cdiv\u003e\u003c?= $body ?\u003e\u003c/div\u003e\n    ')\n    -\u003eaddCss('h1 {color: red;}')\n    -\u003etapOptions(function (Options $options) {\n        $options-\u003eformat = PaperFormat::_A4;\n        $options-\u003edisplayHeaderFooter = true;\n        $options-\u003emargin = '1 in';\n    })\n    -\u003esave(__DIR__.'/foo.pdf');\n```\n\n## Setup\n\n```bash\ncomposer require row-bloom/row-bloom\n```\n\n## Usage\n\nHead over to the [full documentation](https://github.com/row-bloom/row-bloom/wiki).\n\n## Changelog\n\nPlease see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.\n\n## Contributing\n\nPlease see [CONTRIBUTING](CONTRIBUTING.md) for details.\n\n![class diagram](./class_diagram.drawio.png)\n\n## License\n\nThe MIT License (MIT). Please see [License File](LICENSE.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frow-bloom%2Frow-bloom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frow-bloom%2Frow-bloom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frow-bloom%2Frow-bloom/lists"}