PHP code example of obray / ipp
1. Go to this page and download the library: Download obray/ipp library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
obray / ipp example snippets
$printer = new \obray\ipp\Printer(
{printer-uri},
{username}, // optional
{password}, // optional
{curlOptions} // optional
);
$response = $printer->printJob({raw document}, {attributes});
$printer = new \obray\ipp\Printer(
{printer-uri},
{username}, // optional
{password}, // optional
{curlOptions} // optional
);
$attributes = $printer->getPrinterAttributes();
$printer = new \obray\ipp\Printer(
{printer-uri},
{username}, // optional
{password}, // optional
{curlOptions}, // optional
);
$attributes = $printer->printJob(
{raw document},
123, // optional request ID
[
'document-format': 'application/pdf'
]
);
$printer = new \obray\ipp\Printer(
{printer-uri},
{username}, // optional
{password}, // optional
{curlOptions}, // optional
{requestClass} // optional
);
$response = $printer->printJob(
{raw document},
{request-id}, // optional
{[attributes]} // optional
);
$response = $printer->printURI({document-uri}, {request-id}, {[attributes]});
$response = $printer->validateJob({request-id}, {[attributes]});
$response = $printer->createJob({request-id}, {[attributes]});
$response = $printer->getPrinterAttributes({request-id}, {[requested-attributes]}, {document-format});
$response = $printer->getJobs({request-id}, {which-jobs}, {limit}, {my-jobs}, {[requested-attributes]});
$response = $printer->pausePrinter({request-id});
$response = $printer->resumePrinter({request-id});
$response = $printer->purgeJobs({request-id});
$response = $printer->getDefault({request-id}, {[requested-attributes]});
$response = $printer->getPrinters({request-id}, {[requested-attributes]}, {limit});
$response = $printer->getClasses({request-id}, {[requested-attributes]}, {limit});
$response = $printer->identifyPrinter({request-id}, {[identify-actions]}, {message});
$response = $printer->setPrinterAttributes({attributes}, {request-id});
$response = $printer->createPrinterSubscription({subscription-attributes}, {request-id});
$subGroup = $response->subscriptionAttributes[0];
$subscriptionId = (int)(string) $subGroup->{'notify-subscription-id'};
$subscription = new \obray\ipp\Subscription($printerUri, $subscriptionId, $user, $password);
$response = $printer->getSubscriptions({request-id}, {notify-job-id}, {requested-attributes}, {my-subscriptions});
$response = $printer->getNotifications({subscription-ids}, {request-id}, {sequence-numbers}, {wait});
$subscription = new \obray\ipp\Subscription(
{printer-uri},
{subscription-id},
{username}, // optional
{password}, // optional
{curlOptions} // optional
);
$response = $subscription->getSubscriptionAttributes({request-id});
$response = $subscription->renewSubscription({request-id}, {lease-duration});
$response = $subscription->cancelSubscription({request-id});
$response = $subscription->getNotifications({request-id}, {last-sequence-number}, {wait});
foreach ($response->eventNotificationAttributes as $event) {
echo $event->{'notify-subscribed-event'} . PHP_EOL;
}
$document = new \obray\ipp\Document(
{printer-uri},
{job-id}, // integer job-id or full job-uri string
{document-number}, // 1-based document sequence number
{username}, // optional
{password}, // optional
{curlOptions} // optional
);
$response = $document->getDocumentAttributes({request-id}, {requested-attributes});
$response = $document->setDocumentAttributes({attributes}, {request-id});
$response = $document->cancelDocument({request-id});
$jobById = new \obray\ipp\Job(
{printer-uri},
{job-id},
{username}, // optional
{password}, // optional
{curlOptions}, // optional
{requestClass} // optional
);
$jobByUri = new \obray\ipp\Job(
{printer-uri},
{job-uri},
{username}, // optional
{password}, // optional
{curlOptions}, // optional
{requestClass} // optional
);
$response = $job->sendDocument({document}, {last-document}, {request-id}, {[attributes]});
$response = $job->sendURI({document-uri}, {last-document}, {request-id}, {[attributes]});
$response = $job->cancelJob({request-id});
$response = $job->getJobAttributes({request-id}, {[requested-attributes]});
$response = $job->holdJob({request-id}, {job-hold-until});
$response = $job->releaseJob({request-id});
$response = $job->restartJob({request-id}, {job-hold-until});
$response = $job->moveJob({destination-printer-uri}, {request-id});
$response = $job->authenticateJob({request-id});
$response = $job->setJobAttributes({attributes}, {request-id});
$response = $job->createJobSubscription({subscription-attributes}, {request-id});
$subGroup = $response->subscriptionAttributes[0];
$subscriptionId = (int)(string) $subGroup->{'notify-subscription-id'};
$subscription = new \obray\ipp\Subscription($printerUri, $subscriptionId, $user, $password);
$response = $job->getDocuments({request-id}, {requested-attributes});
foreach ($response->documentAttributes as $doc) {
echo $doc->{'document-number'} . ': ' . $doc->{'document-name'} . PHP_EOL;
}
$response = $job->createDocument({document-attributes}, {request-id});
use obray\ipp\exceptions\IppStatusException;
use obray\ipp\exceptions\NetworkError;
try {
$response = $printer->printJob($document);
} catch (IppStatusException $e) {
// $e->getMessage() — e.g. "IPP error from ipp://…: client-error-document-format-not-supported"
// $e->getStatusCode() — \obray\ipp\types\StatusCode instance
// $e->getResponse() — full \obray\ipp\transport\IPPPayload for inspection
echo (string) $e->getStatusCode(); // "client-error-document-format-not-supported"
} catch (NetworkError $e) {
// $e->getPrinterURI() — the printer URI that was targeted
// $e->getCurlErrorCode() — the cURL error code (CURLE_* constant value)
}