Thiết lập in đảo mặt tự động cho máy in bằng cmd/powershell

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!

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
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?