Druckereinstellungen über die Befehlszeile ändern

1887
xlucian

Ich habe einen Brother PT-9800PCN-Etikettendrucker, der Bänder von 6 mm bis 36 mm verwendet. Gibt es eine Möglichkeit, das Standardpapierformat (Breite, Länge, Ausrichtung) über die Befehlszeile zu ändern? Ich generiere 18x113mm und 24x50mm Etiketten in pdfs mit fpdf und wenn Sie die pdfs per PHP an den Drucker senden, wird nur das Papierformat gedruckt, das als Standard eingestellt ist. Ich habe Befehle mit Adobe, Foxit und Sumatra ausprobiert. Ich habe auch die Befehlszeile Verypdf pdfprint ausprobiert, die die Option hat, das Papierformat mit dem gleichen Ergebnis festzulegen. Ich dachte, wenn ich über die Befehlszeile das Standardpapierformat ändere und dann den Druckauftrag sende, sollte es funktionieren.

2

1 Antwort auf die Frage

1
xlucian

Nach langem Headbashing gelang es mir, es zum Laufen zu bringen. Was ich getan habe, ist

-> Gehen Sie für jedes erforderliche Papierformat in die Druckereinstellungen und legen Sie das Seitenformat, die Breite, die Länge und alle anderen erforderlichen Einstellungen fest

-> in cmd ausführen, nachdem alle Einstellungen für jede Seitengröße vorgenommen wurden

rundll32 printui.dll PrintUIEntry /Ss /n "\\network\printer" /a "C:\prefered_location\temp_settings.dat" u 

-> Für jede Seitengröße habe ich die Einstellungen als 18x113m.datund gespeichert24x45mm.dat

Dies ist der Code, den ich in PHP verwende, um meine PDF-Dateien an den Drucker zu senden

<?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"); ?>