PHPackages                             chenm/endroid-qrcode-v5 - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. chenm/endroid-qrcode-v5

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

chenm/endroid-qrcode-v5
=======================

Endroid QR Code

v5.1.0(1y ago)011MITPHPPHP ^8.1

Since Mar 20Pushed 1y ago1 watchersCompare

[ Source](https://github.com/chenmxgg/endroid-qrcode-v5)[ Packagist](https://packagist.org/packages/chenm/endroid-qrcode-v5)[ Docs](https://gitee.com/chenmengwl/endroid-qrcode)[ RSS](/packages/chenm-endroid-qrcode-v5/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (2)Used By (0)

endroid-qrcode
==============

[](#endroid-qrcode)

#### 介绍

[](#介绍)

Endroid\\QrCode中文字库版，可以自定义字库文件路径！！基于Endroid\\QrCode-v5.1.0 ，由于官方的不内置中文字体且不能直接自定义字体，我稍改了一下，内置中文字体且支持自定义字库路径，支持如ttf、off等所有字体格式

#### 软件架构

[](#软件架构)

随便改了一下，以后再拉取不用手动改了

#### 安装教程

[](#安装教程)

```
composer require  chenm/endroid-qrcode-v5

```

#### 使用说明

[](#使用说明)

使用非常简单，参考下面代码即可

```
namespace app\common\util;

use Endroid\QrCode\Encoding\Encoding;
use Endroid\QrCode\ErrorCorrectionLevel;
use Endroid\QrCode\Label\Font\CnSans;
use Endroid\QrCode\RoundBlockSizeMode;
use Endroid\QrCode\Builder\Builder;
use Endroid\QrCode\Label\LabelAlignment;
use Endroid\QrCode\Label\Margin\Margin;
use Endroid\QrCode\Writer\PngWriter;
use Endroid\QrCode\Writer\SvgWriter;
use Endroid\QrCode\Writer\PdfWriter;

/**
 * 快捷二维码类 基于 Endroid\QrCode-v5.1.0  new Qrcode('png')->create('测试二维码内容',100, 12)
 */
class Qrcode
{

    /**
     * 错误信息
     * @var string
     */
    public static $error = '';

    public $options = [
        // 文字大小
        'labelSize' => 20,
        // 文字编码格式
        'charset'   => 'UTF-8',
    ];

    /**
     * 二维码实例
     *
     * @var \Endroid\QrCode\Builder\BuilderInterface
     */
    private $qrcodeBuilder = '';

    /**
     * 初始化
     *
     * @param string $ext 填充格式 支持pdf、svg、png三种
     * @return Qrcode
     */
    public function __construct($ext = 'png')
    {

        switch ($ext) {
            case 'pdf':
                $this->qrcodeBuilder = Builder::create()
                    ->writer(new PdfWriter());
                break;
            case 'svg':
                $this->qrcodeBuilder = Builder::create()
                    ->writer(new SvgWriter());
                break;
            default:
                $this->qrcodeBuilder = Builder::create()
                    ->writer(new PngWriter());
                break;
        }
    }

    /**
     * 生成二维码
     *
     * @param string $text  文本内容
     * @param integer $size 二维码大小 单位PX
     * @param integer $qrcode_margin 边距大小 单位PX
     * @param array $options
     * @return \Endroid\QrCode\Writer\Result\ResultInterface
     */
    public function create($text = '', $size = 100, $qrcode_margin = 12, $options = ['labelSize' => 16, 'labelText' => ''])
    {
        $this->options = array_merge($this->options, $options);

        // 创建 QrCode 实例
        $qrCode = $this->qrcodeBuilder->data($text);
        // 禁用结果验证
        $qrCode = $qrCode->validateResult(false);
        $qrCode = $qrCode->encoding(new Encoding(strtoupper($this->options['charset'] ?? 'UTF-8')));
        $qrCode = $qrCode->errorCorrectionLevel(ErrorCorrectionLevel::High);
        $qrCode = $qrCode->size($size);
        $qrCode =    $qrCode->margin($qrcode_margin);
        $qrCode =    $qrCode->roundBlockSizeMode(RoundBlockSizeMode::Margin);

        // 添加标签（如果有）
        if ($this->options['labelText'] ?? '') {
            $labelSize = intval($this->options['labelSize'] ?? 16);
            $labelSize = $labelSize > 10 ? $labelSize : 14;
            $qrCode = $qrCode->labelText($this->options['labelText']);
            $qrCode = $qrCode->labelFont(new CnSans($labelSize));
            $qrCode = $qrCode->labelAlignment(LabelAlignment::Center);
            $qrCode = $qrCode->labelMargin(new Margin(2, 0, 8, 0));
        }
        // 使用 Builder 生成二维码
        $result = $qrCode->build();
        return $result;
    }
}
```

#### 参与贡献

[](#参与贡献)

基于Endroid\\QrCode，v5.1.0版本，专用请自行注明

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance48

Moderate activity, may be stable

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity45

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

415d ago

### Community

Maintainers

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

---

Top Contributors

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

---

Tags

phpqrcodeqrcodeendroid

### Embed Badge

![Health badge](/badges/chenm-endroid-qrcode-v5/health.svg)

```
[![Health](https://phpackages.com/badges/chenm-endroid-qrcode-v5/health.svg)](https://phpackages.com/packages/chenm-endroid-qrcode-v5)
```

###  Alternatives

[endroid/qr-code

Endroid QR Code

4.8k67.6M347](/packages/endroid-qr-code)[amirezaeb/heroqr

A Powerful QR Code Management Library For PHP

9510.3k](/packages/amirezaeb-heroqr)[arcanedev/qr-code

QR Code generator

1231.9k1](/packages/arcanedev-qr-code)[linkxtr/laravel-qrcode

A clean, modern, and easy-to-use QR code generator for Laravel

295.1k](/packages/linkxtr-laravel-qrcode)

PHPackages © 2026

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