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)
}