После долгого удара головой мне удалось заставить его работать. Что я сделал
-> для каждого необходимого формата бумаги зайдите в настройки принтера и установите размер страницы, ширину, длину и любые другие необходимые параметры
-> в cmd запустить после выполнения всех настроек для каждого размера страницы
rundll32 printui.dll PrintUIEntry /Ss /n "\\network\printer" /a "C:\prefered_location\temp_settings.dat" u
-> для каждого требуемого размера страницы я сохранил настройки как 18x113m.dat
и24x45mm.dat
Это код, который я использую в php для отправки моих PDF-файлов на принтер
<?php //save current printer settings to a temp file echo system("rundll32 printui.dll PrintUIEntry /Ss /n \"\\\\network\\printer\" /a \"C:\\location\\temp_settings.dat\" u"); //load the required page settings echo system("rundll32 printui.dll PrintUIEntry /Sr /n \"\\\\network\\printer\" /a \"C:\\location\\24x45mm.dat\" u"); //send pdf to printer. I've used in this case pdfprint.exe. Foxit can be used as well. Adobe didn't work. Sumatra still sends the pdf only to a 36mm tape echo system("C:\\location\\pdfprint_cmd\\pdfprint.exe -printer \"\\\\network\\printer\" C:\\location\\mypdf.pdf"); //restore temp settings echo system("rundll32 printui.dll PrintUIEntry /Sr /n \"\\\\network\\printer\" /a \"C:\\location\\temp_settings.dat\" u"); //delete temp settings file echo system("del C:\\location\\temp_settings.dat"); ?>