https://github.com/php-aidc/label-printer
A PHP package for label printers (Honeywell, Intermec, TSC)
https://github.com/php-aidc/label-printer
aidc fingerprint honeywell intermec php7 printer tsc tspl tspl2
Last synced: 6 months ago
JSON representation
A PHP package for label printers (Honeywell, Intermec, TSC)
- Host: GitHub
- URL: https://github.com/php-aidc/label-printer
- Owner: php-aidc
- License: mit
- Created: 2020-06-30T12:18:29.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-12-28T11:03:20.000Z (almost 4 years ago)
- Last Synced: 2025-04-13T00:35:27.970Z (6 months ago)
- Topics: aidc, fingerprint, honeywell, intermec, php7, printer, tsc, tspl, tspl2
- Language: PHP
- Homepage:
- Size: 97.7 KB
- Stars: 58
- Watchers: 4
- Forks: 12
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
PhpAidc LabelPrinter
PhpAidc LabelPrinter is a library that help you create and print labels on printers that support
Direct Protocol, Fingerprint, TSPL/TSPL2 languages (Honeywell, Intermec, TSC) via TCP/IP.---
- [Requirements](#requirements)
- [Installation](#installation)
- [Basic usage](#basic-usage)## Requirements
- PHP 7.1+
- ext-mbstring## Installation
LabelPrinter is installed via [Composer](https://getcomposer.org/):
```bash
composer require php-aidc/label-printer
```You can of course also manually edit your composer.json file
```json
{
"require": {
"php-aidc/label-printer": "v0.4"
}
}
```## Basic usage
> Some TSPL2-like printers, such as Atol BP41/Rongta RP410, do not support all TSPL2 features.
#### Read data from printer
```php
use PhpAidc\LabelPrinter\Printer;
use PhpAidc\LabelPrinter\Connector\NetworkConnector;$printer = new Printer(new NetworkConnector('192.168.x.x'));
\var_dump($printer->ask('? VERSION$(0)'));
// "Direct Protocol 10.15.017559 \r\n"
```#### Create and print label
```php
use PhpAidc\LabelPrinter\Enum\Unit;
use PhpAidc\LabelPrinter\Enum\Anchor;
use PhpAidc\LabelPrinter\Enum\Charset;
use PhpAidc\LabelPrinter\Printer;
use PhpAidc\LabelPrinter\Label\Label;
use PhpAidc\LabelPrinter\Label\Element;
use PhpAidc\LabelPrinter\CompilerFactory;
use PhpAidc\LabelPrinter\Connector\NetworkConnector;$label = Label::create(Unit::MM(), 43, 25)
->charset(Charset::UTF8())
->add(Element::textBlock(168, 95, 'Hello!', 'Univers', 8)->box(338, 100, 0)->anchor(Anchor::CENTER()))
->add(Element::barcode(10, 10, '123456', 'CODE93')->height(60))
;(new Printer(new NetworkConnector('192.168.x.x'), CompilerFactory::tspl()))->print($label);
```#### Add elements only for a specific language
```php
use PhpAidc\LabelPrinter\Label\Label;
use PhpAidc\LabelPrinter\Label\Element;
use PhpAidc\LabelPrinter\Language\Tspl;
use PhpAidc\LabelPrinter\Language\Fingerprint;$label = Label::create()
->for(Fingerprint::class, static function (Label $label) {
$label->add(Element::textLine(168, 95, 'Hello!', 'Univers', 8));
})
->for(Tspl::class, static function (Label $label) {
$label->add(Element::textLine(10, 10, 'Hello!', 'ROMAN.TTF', 8));
})
;
```#### Add elements if some value is truthy
```php
use PhpAidc\LabelPrinter\Label\Label;
use PhpAidc\LabelPrinter\Label\Element;$text = '';
$label = Label::create()
->when($text, static function (Label $label, $text) {
// will not be added until the $text is empty
$label->add(Element::textLine(168, 95, $text, 'Univers', 8));
})
;
```#### Print images
```php
use PhpAidc\LabelPrinter\Label\Label;
use PhpAidc\LabelPrinter\Label\Element;
use PhpAidc\LabelPrinter\Language\Tspl;
use PhpAidc\LabelPrinter\Language\Fingerprint;$image = new \Imagick('gift.svg');
$label = Label::create()
->for(Fingerprint::class, static function (Label $label) {
// from printer's memory — png, bmp, pcx
$label->add(Element::intImage(10, 10, 'GLOBE.1'));
// from filesystem
$label->add(Element::extImage(10, 10, \realpath('alien.png')));
})
->for(Tspl::class, static function (Label $label) {
// from printer's memory — bmp, pcx
$label->add(Element::intImage(10, 10, 'ALIEN.BMP'));
})
// from filesystem via Imagick — any supported types
->add(Element::bitmap(50, 10, $image))
;
```#### Print text with emulation
```php
use PhpAidc\LabelPrinter\Label\Label;
use PhpAidc\LabelPrinter\Label\Element;$label = Label::create()
->add(Element::textLine(10, 10, 'Hello!', '/path/to/font/roboto.ttf', 20)->emulate())
->add(Element::textBlock(100, 10, 'Hello again!', '/path/to/font/roboto.ttf', 20)->box(300, 20)->emulate())
;
```
Text will be drawn with Imagick and printed as bitmap.#### Specify the number of copies
```php
use PhpAidc\LabelPrinter\Label\Label;
use PhpAidc\LabelPrinter\Label\Element;$label = Label::create()
->add(Element::textLine(168, 95, 'Hello!', 'Univers', 8))
->copies(3)
;
```#### Batch printing
```php
use PhpAidc\LabelPrinter\Printer;
use PhpAidc\LabelPrinter\Label\Batch;
use PhpAidc\LabelPrinter\Label\Label;
use PhpAidc\LabelPrinter\Label\Element;
use PhpAidc\LabelPrinter\CompilerFactory;
use PhpAidc\LabelPrinter\Connector\NetworkConnector;$batch = (new Batch())
->add(Label::create()->add(Element::textLine(168, 95, 'Hello!', 'Univers', 8)))
->add(Label::create()->add(Element::textLine(168, 95, 'Bye!', 'Univers', 8)))
;(new Printer(new NetworkConnector('192.168.x.x'), CompilerFactory::fingerprint()))->print($label);
```## License
The PhpAidc LabelPrinter is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT).
> Some ideas taken from [mike42/escpos-php](https://github.com/mike42/escpos-php).