A PHP 7.4+ package for managing IPP printers in Yii2 applications using the nateobray/IPP library.
to composer add
"repositories": [
{ "type": "git", "url": "https://github.com/DBRisinajumi/IPP.git"},
]
composer require yourcompany/yii2-ipp-printer-managerIn config console add comand:
'controllerMap' => [
'printeripp' => 'd3yii2\d3printeripp\commands\PrinterCommand',
'printeripp-spool' => 'd3yii2\d3printeripp\commands\SpoolerCommand',
],Add the components
'modules' => [
'd3printeripp' => [
'class' => 'd3yii2\d3printeripp\Module',
/** roles for view dashboard panel */
'panelViewRoleNames' => ['D3PrinterViewPanel'],
],
],
'components' => [
/** use for printer files spooling */
'printerSpooler' => [
'class' => 'd3yii2\d3printer\components\Spooler',
'baseDirectory' => 'd3printer'
],
/** define alert config for printers. class d3yii2\d3printeripp\components\components */
'ippAlertConfig' => [
'class' => 'ea\app\components\IppPrinter3002dnAlertConfig'
],
/** define mailer for printers. */
'ippPrinterMailer' => [
'class' => 'd3yii2\d3printeripp\components\Mailer',
'from' => 'zzzz@zzzz.lv',
'to' => ['zz@sss.lv'],
],
/** define printer status cache */
'printerStatusCache' => [
'class' => 'd3yii2\d3printeripp\components\cache\PrinterCache',
],
/** define printer component */
'ippTest' => [
'class' => '\d3yii2\d3printeripp\components\BasePrinter',
'printerName' => 'ippTest',
'name' => 'ippTest',
'host' => '192.168.88.168',
'port' => 631,
'username' => 'admin',
'password' => '',
'pincode' => '111111',
'timeout' => 30,
'encryption' => false,
'spoolerComponentName' => 'printerSpooler',
'alertConfigComponentName' => 'ippAlertConfig',
'mailerComponentName' => 'ippPrinterMailer',
'cacheComponentName' => 'printerStatusCache',
// 'pageOrientation' => 3, // d3yii2\d3printeripp\types\PrinterAttributeValues::ORIENTATION_PORTRAIT
'pageOrientation' => 4, // d3yii2\d3printeripp\types\PrinterAttributeValues::LANDSCAPE
// 'pageSize' => 'iso_a4_210x297mm', // d3yii2\d3printeripp\types\PrinterAttributeValues::MEDIA_SIZE_A4
'pageSize' => 'iso_a5_148x210mm', // d3yii2\d3printeripp\types\PrinterAttributeValues::MEDIA_SIZE_A5
],
],show printer ippTest status
php yii printeripp/status ippTest
show printer ippTest status
php yii printeripp/status ippTest 0 1check alert and send one time alert email Mostly add to crontab
php yii printeripp/status ippTest 0 1spooler printing - create as deamon
php yii printeripp-spool/index spoolerPrinting $config['components']['dashboard']['panels']['notifications'][] = [
'route' => '/d3printeripp/printer-panel/dashboard',
'params' => [
'printerComponentName' => 'ippTest'
],
'tag' => 'div',
'options' => ['class' => 'col-sm-6 col-md-4 col-lg-3']
];Yii::$app->ippTest->printToSpoolDirectory($filePath),create deamon or add to crontab
php yii printeripp/status ippTest 0 1- in web config define module d3printeripp. Use in dashboard panel.
- create service components. If neccesery many same configuration for printers, use same components:
- ippAlertConfig - alert configuration - create class lika doc/examples/IppPrinter3002dnAlertConfig.php
- ippPrinterMailer - for sending alert email
- printerSpooler - for spooling files for printers
- printerStatusCache - for cashing actual printer actual status. Use in dashboard panel
- spoolerPrinting - for daemon, what print files to printer
- add to dashboard panel.
- create crontab job for printer monitoring: php yii printeripp/status atlikumiMpPrinterIpp 0 1
- create daemon for printing spooled foles to printers: php yii printeripp-spool/index spoolerPrinting printercomponent1,printercomponent2