Mengubah pengaturan printer melalui baris perintah

2

Saya memiliki printer label Brother PT-9800PCN yang menggunakan kaset 6mm hingga 36mm. Apakah ada cara mengubah ukuran kertas standar (lebar, panjang, orientasi) melalui baris perintah? Saya membuat label 18x113mm dan 24x50mm dalam pdf menggunakan fpdf dan ketika mengirim pdf ke printer melalui php hanya mencetak pada ukuran kertas apa yang ditetapkan sebagai default. Saya sudah mencoba perintah dengan Adobe, Foxit dan Sumatra. Saya juga sudah mencoba baris perintah Verypdf pdfprint yang memiliki opsi untuk mengatur ukuran kertas dengan hasil yang sama. Berpikir bahwa jika saya mengubah melalui baris perintah ukuran kertas default dan kemudian mengirim pekerjaan cetak itu harus berfungsi.

xlucian
sumber

Jawaban:

1

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.datdan24x45mm.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");
?>
xlucian
sumber