PHPackages                             eduplus/qr - 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. eduplus/qr

ActiveLibrary

eduplus/qr
==========

Laravel package for QR Code and Barcode generation using EduplusQR and EduplusBarcode with configurable binary paths.

1.0.1(4mo ago)010MITPHPPHP &gt;=7.4

Since Nov 25Pushed 4mo agoCompare

[ Source](https://github.com/md-mojahed/EduplusQRLaravel)[ Packagist](https://packagist.org/packages/eduplus/qr)[ RSS](/packages/eduplus-qr/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (3)Used By (0)

Eduplus QR - Laravel Package
============================

[](#eduplus-qr---laravel-package)

[![License: MIT](https://camo.githubusercontent.com/784362b26e4b3546254f1893e778ba64616e362bd6ac791991d2c9e880a3a64e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e2e737667)](LICENSE)

Laravel package for QR Code and Barcode generation using EduplusQR and EduplusBarcode with configurable binary paths. This approach allows you to use a single set of binaries across all your Laravel projects without bundling heavy binary files in each project.

---

Features
--------

[](#features)

---

- **Configurable Binary Paths**: Set binary locations once, use across all projects
- **Lightweight Package**: No bundled binaries, reducing package size
- **Fluent API**: Clean, chainable method syntax
- **Laravel Integration**: Service provider and config publishing
- **QR Code Generation**: Full EduplusQR functionality
- **Barcode Generation**: Support for Code128, Code39, EAN-13
- **Environment Configuration**: Set paths via .env file

---

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

[](#installation)

---

Install via Composer:

```
composer require eduplus/qr
```

Publish the configuration file:

```
php artisan vendor:publish --tag=eduplusqr-config
```

This will create `config/eduplusqr.php` in your Laravel project.

---

Binary Setup
------------

[](#binary-setup)

---

### 1. Download Binaries

[](#1-download-binaries)

Download the appropriate binaries for your system from EduplusQR and EduplusBarcode packages, or place them in a shared location:

```
# Example: Create a shared binary directory
sudo mkdir -p /usr/local/bin/eduplus

# Copy binaries (adjust paths as needed)
sudo cp EduplusQR-linux-amd64 /usr/local/bin/eduplus/
sudo cp EduplusBarcode-linux-amd64 /usr/local/bin/eduplus/

# Make them executable
sudo chmod +x /usr/local/bin/eduplus/EduplusQR-linux-amd64
sudo chmod +x /usr/local/bin/eduplus/EduplusBarcode-linux-amd64
```

### 2. Configure Binary Paths

[](#2-configure-binary-paths)

Option A: Via `.env` file (recommended):

```
EDUPLUS_QR_BINARY_PATH=/usr/local/bin/eduplus/EduplusQR-linux-amd64
EDUPLUS_BARCODE_BINARY_PATH=/usr/local/bin/eduplus/EduplusBarcode-linux-amd64
```

Option B: Via `config/eduplusqr.php`:

```
return [
    'qr_binary_path' => '/usr/local/bin/eduplus/EduplusQR-linux-amd64',
    'barcode_binary_path' => '/usr/local/bin/eduplus/EduplusBarcode-linux-amd64',
];
```

### Platform-Specific Binary Names

[](#platform-specific-binary-names)

- Linux x86\_64: `EduplusQR-linux-amd64`, `EduplusBarcode-linux-amd64`
- Linux ARM64: `EduplusQR-linux-arm64`, `EduplusBarcode-linux-arm64`
- macOS Intel: `EduplusQR-darwin-amd64`, `EduplusBarcode-darwin-amd64`
- macOS Apple Silicon: `EduplusQR-darwin-arm64`, `EduplusBarcode-darwin-arm64`
- Windows: `EduplusQR-windows-amd64.exe`, `EduplusBarcode-windows-amd64.exe`

---

Usage
-----

[](#usage)

---

### QR Code Generation

[](#qr-code-generation)

#### Basic Usage

[](#basic-usage)

```
use Eduplus\QrCode;

// Simple QR code
QrCode::quick("Hello World", public_path('qr.png'));

// Fluent API
QrCode::create()
    ->text("https://eduplus-bd.com")
    ->output(public_path('qr.png'))
    ->size(512)
    ->errorCorrection('H')
    ->generate();
```

#### JSON Data QR Code

[](#json-data-qr-code)

```
$data = json_encode([
    'user_id' => 12345,
    'name' => 'John Doe',
    'email' => 'john@example.com'
]);

QrCode::create()
    ->text($data)
    ->output(storage_path('app/public/user_qr.png'))
    ->size(512)
    ->errorCorrection('H')
    ->generate();
```

#### Get Base64 Encoded QR Code

[](#get-base64-encoded-qr-code)

```
$base64 = QrCode::create()
    ->text("Base64 QR Code")
    ->output(storage_path('app/temp_qr.png'))
    ->generateBase64();

// Use in Blade template

```

#### Controller Example

[](#controller-example)

```
namespace App\Http\Controllers;

use Eduplus\QrCode;
use Illuminate\Http\Request;

class QrController extends Controller
{
    public function generate(Request $request)
    {
        $qr = QrCode::create()
            ->text($request->input('text'))
            ->output(storage_path('app/public/qr_' . time() . '.png'))
            ->size(400)
            ->generate();

        if ($qr) {
            return response()->json(['success' => true]);
        }

        return response()->json(['success' => false], 500);
    }

    public function generateInline(Request $request)
    {
        $binary = QrCode::create()
            ->text($request->input('text'))
            ->output(storage_path('app/temp_qr.png'))
            ->size(400)
            ->generateAndReturn();

        return response($binary)
            ->header('Content-Type', 'image/png');
    }
}
```

### Barcode Generation

[](#barcode-generation)

#### Basic Usage

[](#basic-usage-1)

```
use Eduplus\BarCode;

// Simple barcode
BarCode::quick("ABC123", public_path('barcode.png'));

// Fluent API
BarCode::create()
    ->text("PRODUCT-001")
    ->output(public_path('barcode.png'))
    ->type('code39')
    ->width(400)
    ->height(120)
    ->generate();
```

#### Different Barcode Types

[](#different-barcode-types)

```
// Code128 (default)
BarCode::create()
    ->text("ABC-123-XYZ")
    ->output(storage_path('app/public/code128.png'))
    ->type('code128')
    ->generate();

// Code39
BarCode::create()
    ->text("PRODUCT-001")
    ->output(storage_path('app/public/code39.png'))
    ->type('code39')
    ->generate();

// EAN-13
BarCode::create()
    ->text("1234567890128")
    ->output(storage_path('app/public/ean13.png'))
    ->type('ean13')
    ->generate();
```

#### Get Base64 Encoded Barcode

[](#get-base64-encoded-barcode)

```
$base64 = BarCode::create()
    ->text("SKU-12345")
    ->output(storage_path('app/temp_barcode.png'))
    ->generateBase64();

// Use in Blade template

```

---

API Reference
-------------

[](#api-reference)

---

### QrCode Methods

[](#qrcode-methods)

- `create()` - Create new QrCode instance
- `text($text)` - Set text or JSON data to encode
- `output($path)` - Set output file path
- `size($pixels)` - Set QR code size (default: 256)
- `errorCorrection($level)` - Set error correction: L, M, Q, H (default: M)
- `margin($pixels)` - Set border margin (default: 0)
- `generate()` - Generate and save QR code
- `generateAndReturn()` - Generate and return binary data
- `generateBase64()` - Generate and return base64 string
- `quick($text, $output, $size = 256)` - Quick generation

### BarCode Methods

[](#barcode-methods)

- `create()` - Create new BarCode instance
- `text($text)` - Set text to encode
- `output($path)` - Set output file path
- `type($type)` - Set barcode type: code128, code39, ean13 (default: code128)
- `width($pixels)` - Set barcode width (default: 300)
- `height($pixels)` - Set barcode height (default: 100)
- `generate()` - Generate and save barcode
- `generateAndReturn()` - Generate and return binary data
- `generateBase64()` - Generate and return base64 string
- `quick($text, $output, $type = 'code128', $width = 300, $height = 100)` - Quick generation

### Error Handling

[](#error-handling)

Both classes expose a public `$errors` array:

```
$qr = QrCode::create()
    ->text("Test")
    ->output("qr.png")
    ->generate();

if (!$qr) {
    $instance = QrCode::create();
    print_r($instance->errors);
}
```

---

Benefits of This Approach
-------------------------

[](#benefits-of-this-approach)

---

1. **Reduced Package Size**: No bundled binaries in each project
2. **Single Binary Location**: One set of binaries for all Laravel projects
3. **Easy Updates**: Update binaries once, all projects benefit
4. **Flexible Deployment**: Configure different paths per environment
5. **Server Optimization**: Shared binaries reduce disk usage

---

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

[](#requirements)

---

- PHP 7.4 or higher
- Laravel 8.x, 9.x, 10.x, or 11.x
- EduplusQR and EduplusBarcode binaries installed on the system

---

Author
------

[](#author)

---

**Md Mojahedul Islam**

- Email:
- Website:

---

License
-------

[](#license)

---

MIT License - see LICENSE file for details

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance74

Regular maintenance activity

Popularity6

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

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 ~27 days

Total

2

Last Release

147d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0403e8a92974746d5f64be048597e5e0c4c97933d2f85ce1799a725a9b31634d?d=identicon)[md-mojahed](/maintainers/md-mojahed)

### Embed Badge

![Health badge](/badges/eduplus-qr/health.svg)

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

PHPackages © 2026

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