PHPackages                             atik/atik-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. atik/atik-pdf

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

atik/atik-pdf
=============

Enterprise-grade hybrid Laravel PDF package with ultra-fast large-table PDF generation and full Bangla font support.

v1.0.0(3w ago)01MITPHPPHP ^8.2

Since May 19Pushed 3w agoCompare

[ Source](https://github.com/atikhasan2090/atik-pdf)[ Packagist](https://packagist.org/packages/atik/atik-pdf)[ RSS](/packages/atik-atik-pdf/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (3)Versions (2)Used By (0)

Atik PDF
========

[](#atik-pdf)

Enterprise-grade hybrid Laravel PDF package with ultra-fast large-table PDF generation and full Bangla font support.

Overview
--------

[](#overview)

`atik-pdf` uses a hybrid engine architecture to solve the classic memory-exhaustion problem when generating huge PDFs in PHP:

1. **PHP Engine (`mPDF`)**: Automatically used for styled HTML documents, invoices, and reports under a configured threshold (default 5,000 rows).
2. **Python Engine (`FastAPI + ReportLab`)**: Automatically used for huge tables, streaming PDFs, and memory-optimized generation for datasets up to 100k+ rows.

Features
--------

[](#features)

- **Hybrid Architecture**: Best of both worlds (PHP for styles, Python for massive data).
- **Automatic Engine Switching**: `AtikPdf::auto()` handles the switching for you.
- **Queue &amp; Async Support**: Generate massive PDFs in the background.
- **Bangla Font Support**: Built-in support for Noto Sans Bengali and SolaimanLipi.

Installation
------------

[](#installation)

### 1. Install the Laravel Package

[](#1-install-the-laravel-package)

```
composer require atik/atik-pdf
```

Publish the configuration and (optionally) the Python service:

```
php artisan vendor:publish --tag=atik-pdf-config
php artisan vendor:publish --tag=atik-pdf-python-service
```

### 2. Run the Python Microservice

[](#2-run-the-python-microservice)

You can run the Python microservice locally or via Docker.

**Via Docker:**

```
cd python-service
docker build -t atik-pdf-python .
docker run -d -p 8000:8000 atik-pdf-python
```

**Via Uvicorn (Local):**

```
cd python-service
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 8000
```

*Don't forget to put your Bangla `.ttf` fonts in `python-service/fonts/`!*

Usage Examples
--------------

[](#usage-examples)

### Standard View (mPDF)

[](#standard-view-mpdf)

Perfect for invoices or certificates.

```
use Atik\Pdf\Facades\AtikPdf;

return AtikPdf::view('invoices.standard', ['invoice' => $data])
    ->download('invoice_001.pdf');
```

### Automatic Engine (Table)

[](#automatic-engine-table)

Automatically switches to Python if rows &gt; 5000.

```
$columns = ['ID', 'Name', 'Amount'];
$rows = [
    [1, 'Atik', '500'],
    // ... 10,000 more rows
];

return AtikPdf::auto($rows, $columns, 'Monthly Report')
    ->stream();
```

### Async / Background Generation

[](#async--background-generation)

For 50k+ rows, queue it!

```
AtikPdf::async($massiveRowArray, $columns, 'Massive Dataset')
    ->webhook('https://myapp.com/api/webhooks/pdf-ready')
    ->queue('reports/massive_report_august.pdf');

return response()->json(['message' => 'PDF is generating in the background!']);
```

Configuration
-------------

[](#configuration)

See `config/atik-pdf.php` to configure:

- `auto_threshold`: Number of rows to trigger the Python engine.
- `python_engine.api_url`: URL of your deployed FastAPI service.
- Queues, disks, and mPDF margins.

atik-pdf
========

[](#atik-pdf-1)

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance95

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity46

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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

21d ago

### Community

Maintainers

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

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/atik-atik-pdf/health.svg)

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

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3325.1M337](/packages/psalm-plugin-laravel)[laravel/ai

The official AI SDK for Laravel.

9782.1M153](/packages/laravel-ai)[moonshine/moonshine

Laravel administration panel

1.3k239.9k72](/packages/moonshine-moonshine)[tallstackui/tallstackui

TallStackUI is a powerful suite of Blade components that elevate your workflow of Livewire applications.

719160.4k12](/packages/tallstackui-tallstackui)[illuminate/pipeline

The Illuminate Pipeline package.

9348.3M264](/packages/illuminate-pipeline)[illuminate/pagination

The Illuminate Pagination package.

10533.5M984](/packages/illuminate-pagination)

PHPackages © 2026

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