Em đang cố gắng dùng lệnh cmd/powershell để thiết lập chế độ in đảo mặt tự động với kiểu lật giấy là cạnh ngắn trên (short edge top) với tên máy in được lấy tự động bằng tên máy in mặc định.
Anh/chị nào biết vui lòng chỉ cho em với ạ, em cảm ơn!
Thiết lập in đảo mặt tự động cho máy in bằng cmd/powershell
Mình hỏi chatgpt thì nó trả lời thế này, không chắc là đúng đâu nhé, nhưng mà hướng đi có thể là làm thế này
Dùng powershell
$printer = Get-Printer -Default
$duplex = 1
$duplexsetting = New-Object System.Printing.PrintProperty("Duplex", "Default", $duplex)
$printschema = "http://schemas.microsoft.com/windows/2003/08/printing/printschemaframework"
$shortedgetopsetting = New-Object System.Printing.PrintProperty("InputBin", $printschema, 259)
$shortedgetop = New-Object System.Printing.PrintTicket
$shortedgetop.PageMediaSize = New-Object System.Printing.PageMediaSize("A4", "297", "210")
$shortedgetop.PageOrientation = "Portrait"
$shortedgetop.UserPrintTicket = New-Object System.Printing.PrintTicket
$shortedgetop.UserPrintTicket.Properties.Add($duplexsetting.Name, $duplexsetting.Value)
$shortedgetop.UserPrintTicket.Properties.Add($shortedgetopsetting.Name, $shortedgetopsetting.Value)
$printername = $printer.Name
$printserver = $printer.ServerName
$queue = $printserver + "\" + $printername
$queueobj = New-Object System.Printing.PrintQueue(New-Object System.Printing.PrintServer($printserver), $printername)
$queueobj.UserPrintTicket = $shortedgetop
Dùng cmd
wmic printer where default='true' set Duplex=1
wmic printer where default='true' set PrintDuplexSupported=TRUE
rundll32 printui.dll,PrintUIEntry /Xg /n "%defaultprinter%" | findstr /C:"/short"
if %errorlevel% == 0 (
rundll32 printui.dll,PrintUIEntry /Xg /n "%defaultprinter%" | findstr /C:"/short" && goto end
rundll32 printui.dll,PrintUIEntry /Xs /n "%defaultprinter%" attributes +direct | findstr /C:"direct" && goto end
)
rundll32 printui.dll,PrintUIEntry /Xs /n "%defaultprinter%" attributes -direct | findstr /C:"direct" && rundll32 printui.dll,PrintUIEntry /Xs /n "%defaultprinter%" attributes +direct | findstr /C:"direct"
:end
2 Likes
Em cảm ơn anh đã góp ý. Tuy nhiên mã Powershell và CMD này đều không hoạt động ạ.
Em vẫn đang cố gắng tìm cách, nếu được em sẽ chia sẻ lên diễn đàn ạ.
1 Like