dscmall/barcodegen

生成 PNG 或 DATA-URL 格式的条形码图像

v1.5.0 2020-12-31 10:04 UTC

This package is auto-updated.

Last update: 2024-08-29 05:43:43 UTC


README

Author

Barcode Generator 是一个简单的库,帮助您创建条形码图像。它为 Laravel 5 设计,可以创建 PNG 图像或 DATA-URL 字符串。基于 php-generator,由 David Tufts 开发

安装

显然,通过 Composer

composer require dscmall/barcodegen

或者您可以编辑 composer.json 文件,并在 "require" 部分添加 "dscmall/barcodegen": "~1.0"

设置

在 Laravel 5 中成功测试。使其工作步骤如下

  • 按照上述说明编辑 composer.json 中的 "require" 部分
  • 在 Laravel 5.5 或更高版本中忽略此步骤 - 包将自动发现 编辑 config/app.php 文件并在 providers 中添加 PicoPrime\BarcodeGen\BarcodeGenServiceProvider::class,
  • 创建控制器或向现有控制器添加新方法(示例在 "docs" 文件夹中)。您可以直接使用 PicoPrime\BarcodeGen\BarcodeGenerator 类或 PicoPrime\BarcodeGen\BarcodeGen 门面。还可以将 BarcodeGenerator 注入。在调用 generate() 方法之前,您必须像这样传递变量到 init()
$this->barcode
    ->init($text, $size, $orientation, $codeType, $scale)
    ->generate()

$this->barcode
    ->generate($text, $size, $orientation, $codeType, $scale)

其中

  • "text" 是您希望转换为条形码的文本,
  • "size" 是条形码的像素高度。如果您还需要更改宽度,请使用 "scale" 与 "size" 一起!
  • "orientation" 如其名所示 - 改变条形码的朝向。可用:水平或垂直,
  • "codeType" 是您想要生成的代码类型。可用:code128、code128a、code39、code25、codabar。
  • "scale" - 如果您需要更宽或更大的条形码,请输入一个数字:1 - 默认,2 - 2 倍更大,2.5,...

您也可以将这些参数作为关联数组或数字数组传递,如下所示

$this->barcode
    ->generate(compact('text', 'size', 'orientation', 'codeType', 'scale'))

或使用门面

\PicoPrime\BarcodeGen\BarcodeGen::generate(['textToTransform', 50, 'horizontal', 'code128', 1])

生成图像的最后一步是将上面生成的任何内容发送到 ->response('png')->encode('data-url')。响应将创建 Laravel 的响应并显示图像,而 "encode" 将创建一个字符串。

请参阅 docs 文件夹中的示例控制器。

路由

您可以创建您喜欢的路由。以下是通常使用的两个示例

Route::get('barcode/img/{text}/{size?}/{scale?}/{codeType?}/{orientation?}', 'BarcodeController@barcodeAsPng');
Route::get('barcode/url/{text}/{size?}/{scale?}/{codeType?}/{orientation?}', 'BarcodeController@barcodeAsDataUrl');

请参阅 docs 文件夹中的示例路由。

前端使用

最后,为了在前端使用它,只需在 img 的 "src" 属性中使用您的路由即可

<img src="/barcode/img/someText" alt="barcode">

此示例应生成水平、50 像素、code128 条形码 "someText"。

问题

如果您遇到任何错误或有改进的想法,请随时在 GitHub 上创建一个问题。

欢迎使用

哦,如果您已经阅读到这里,您可以关注我的 twitter 或查看我的 公司网站