Setelah bashing kepala lama saya berhasil membuatnya bekerja. Apa yang saya lakukan adalah
-> untuk setiap ukuran kertas yang diperlukan masuk ke preferensi printer dan atur ukuran halaman, lebar, panjang dan pengaturan lain yang diperlukan
-> dalam cmd run setelah semua pengaturan untuk setiap ukuran halaman selesai
rundll32 printui.dll PrintUIEntry /Ss /n "\\network\printer" /a "C:\prefered_location\temp_settings.dat" u
-> untuk setiap ukuran halaman yang saya butuhkan, saya menyimpan pengaturan sebagai 18x113m.dat
dan24x45mm.dat
Ini adalah kode yang saya gunakan di php untuk mengirim pdf saya ke printer
<?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");
?>