picoprime/barcodegen

此包已被弃用且不再维护。未建议替代包。

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

1.5 2017-12-21 10:09 UTC

This package is auto-updated.

Last update: 2020-01-16 19:38:19 UTC


README

警告!
此项目不再维护!
警告!

条码生成器是一个简单的库,帮助您创建条形码图像。它专为Laravel 5设计,可以创建PNG图像或DATA-URL字符串。基于由David Tufts编写的优秀的php-generator

安装

通过Composer,显然

composer require picoprime/barcodegen

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

设置

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

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

或者使用外观和直接调用generate

\PicoPrime\BarcodeGen\BarcodeGen::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">

此示例应生成水平、50px、code128条形码,内容为"someText"。

问题

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

享受

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