use Neodynamic\SDK\Web\Utils;
use Neodynamic\SDK\Web\DefaultPrinter;
use Neodynamic\SDK\Web\InstalledPrinter;
use Neodynamic\SDK\Web\PrintFile;
use Neodynamic\SDK\Web\ClientPrintJob;
// Process request
// Generate ClientPrintJob? only if clientPrint param is in the query string
$urlParts = parse_url($_SERVER['REQUEST_URI']);
$rawQuery = $urlParts['query'];
if (isset($rawQuery)) {
    if ($rawQuery[WebClientPrint::CLIENT_PRINT_JOB]) {
        parse_str($rawQuery, $qs);
        $useDefaultPrinter = $qs['useDefaultPrinter'] === 'checked';
        $printerName = urldecode($qs['printerName']);
        $pr = new Printer();
        $students = $pr->get_print_job();
        $students_arr = explode(",", $students);
        if (count($students_arr) > 0) {
            foreach ($students_arr as $studentid) {
                $cert_path = $_SERVER['DOCUMENT_ROOT'] . "/lms/custom/certificates/{$studentid}/certificate.jpg";
                $fileName = uniqid() . '.' . $cert_path;
                $filePath = $cert_path;
                if (!Utils::isNullOrEmptyString($filePath)) {
                    //Create a ClientPrintJob obj that will be processed at the client side by the WCPP
                    $cpj = new ClientPrintJob();
                    $cpj->printFile = new PrintFile($filePath, $fileName, null);
                    if ($useDefaultPrinter || $printerName === 'null') {
                        $cpj->clientPrinter = new DefaultPrinter();
                    } else {
                        $cpj->clientPrinter = new InstalledPrinter($printerName);
                    }