Após um longo ataque de cabeça, consegui fazê-lo funcionar. O que eu fiz é
- > para cada tamanho de papel necessário, vá para as preferências da impressora e defina o tamanho da página, a largura, o comprimento e qualquer outra configuração necessária
- > em cmd executado após todas as configurações de cada tamanho de página serem concluídas
rundll32 printui.dll PrintUIEntry /Ss /n "\network\printer" /a "C:\prefered_location\temp_settings.dat" u
- > para cada tamanho de página que eu solicitei salvei as configurações como 18x113m.dat
e 24x45mm.dat
Este é o código que eu uso no php para enviar meus pdfs para a impressora
<?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");
?>