graze/unicontroller-client

Domino Unicontroller client written in PHP

v0.1.3 2019-09-05 15:06 UTC

This package is auto-updated.

Last update: 2024-12-06 02:27:13 UTC


README

Latest Version on Packagist Software License Build Status Code Coverage Scrutinizer Code Quality Total Downloads

A Domino Unicontroller client written in PHP.

Check out the Class Generator Readme to see how this client was written.

Install

Via Composer

$ composer require graze/unicontroller-client

Usage

# instantiate a client
$client = Graze\UnicontrollerClient\UnicontrollerClient::factory();

# connect to a printer
$dsn = '172.16.1.1:9100';
$client->connect($dsn);

# send the 'ReadDesign' command to the printer
$designName = 'current.Design';
$designCurrent = $client->ReadDesign($designName, 0, 0);

# client returns the 'ReadDesign' entity, as defined in the Unicontroller specification
if (!$designCurrent->getReadOk()) {
    echo sprintf('failed to read design, does %s exist?', $designName);
    exit;
}

# modify some text
$ttfItem = $designCurrent->getTtfArray()[0];
$ttfItem->setData('this is some example text');

# add an image
$imageData = file_get_contents('/path/to/image.bmp');

$pictureItem = new Graze\UnicontrollerClient\Entity\Entity\EntityPictureItem();
$pictureItem->setAnchorPoint(0);
$pictureItem->setXPos(9500);
$pictureItem->setYPos(400);
$pictureItem->setWidth(0);
$pictureItem->setHeight(0);
$pictureItem->setOrion(0);
$pictureItem->setDescription('image1');
$pictureItem->setMaintain(1);
$pictureItem->setPrinterReferenceName('image.bmp');
$pictureItem->setUsePixelSize(1);
$pictureItem->setPictureData($imageData);
$pictureItem->setStoreInternally(0);
$pictureItem->setPhantomField(0);

$designCurrent->setPictureArray([$pictureItem]);

# push the design to the printer
$entity->setName('new.Design');
$entity->setSaveDesign(1);
$designNew = $client->serialise($designCurrent);
$resp = $client->send('Design', $designNew, 1);

if (!$resp->success()) {
    echo 'something went wrong';
}

Change log

Please see CHANGELOG for more information what has changed recently.

Testing

$ make test

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email security@graze.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.