Printing from Windows 7 command line
I'm looking to automate some printing in Windows 7. Ideally from command line. Just as if I would've right-clicked and selected "Print".
Tried the command:
C:\>print /D:"CutePDF Writer" test.txt
That printer is supposed to created PDF files (like the XPS printer) but haven't managed to get anything show up in the printer queue. Ideas?
The print
command uses the following synatx for the /d:
switch:
Specifies the printer on which you want to print the job. You can specify a local printer by specifying the port on your computer to which the printer is connected. Valid values for parallel ports are LPT1, LPT2, and LPT3. Valid values for serial ports are COM1, COM2, COM3, and COM4. You can also specify a network printer by its queue name (\ServerName\ShareName). If you do not specify a printer, the print job is sent to LPT1.
This means you can't use "CutePDF Writer"
as an argument.
There are two ways that should work:
-
Assign a COM port to your printer.
- Open Start → Control Panel → Devices and Printers.
- Right-click the CutePDF Writer and select Printer Properties.
- In the Ports tab, assign an unused port from
COM1:
toCOM4:
to your printer. -
If you chose, e.g.,
COM3
, print using the following command:print /d:COM3 test.txt
-
Share the printer.
- Open Start → Control Panel → Devices and Printers.
- Right-click the CutePDF Writer and select Printer Properties.
- In the Sharing tab, decide to share the printer and assign a share name to it.
-
If you chose, e.g.,
CutePDF
, print using the following command:print /d:\\%COMPUTERNAME%\CutePDF test.txt
Hi The following is easier set CutePDF as default printer if you know DOS then setting a printer as default should be no problem and then resetting to default printer setting again.
to print a text file or htm file or a bat file or any text file enter the following
notepad /p test.txt
for other programs find the command line format for printing (in regedit or in documentation)
Print Registered File Types Files that have a file type association in Windows (95/98/NT/2000) can be printed using the right mouse button
This association can be seen, e.g. for .rtf file in
"HKEY_LOCAL_MACHINE\SOFTWARE\Classes\rtffile\shell\printto\command"
where command looks something like this:
"%ProgramFiles%\Windows NT\Accessories\WORDPAD.EXE" /pt "%1" "%2" "%3" "%4"
which means :
"wordpad.exe /pt TextFileName PrinterName [ DriverName [ PortName ] ]"
(square brackets mean optional). It can be called from cmd using powershell, shipped in Windows since Vista.
powershell -command "start -verb printto AnyFile.rtf PrinterName [ DriverName [ PortName ] ]"
Strictly:
"%windir%\System32\WindowsPowerShell\v1.0\powershell.exe" "-Command" "& {Start-Process -FilePath 'test.txt' -ArgumentList '\"CutePDF Writer\"' -Verb 'printto' }"
It works for almost any Registered File Types with such registered verb (printto)! But printer drivers will usually shows user dialog. User dialog showing can be disabled in Bullzip Pdf printer.
@mizipzor:
The job file successfully gets into the printqueue when you follow Dennis' answer.
-
But then the job processing gets stuck because that printer cannot consume a TEXT input file! The reasons:
- Windows print queues are a lot more dumb in this respect (in contrast to CUPS Linux/Unix/OSX queues -- which can auto-type the incoming data and automatically convert them to what the respective printqueue reports as digestable data).
- Your printer very likely expects PostScript data as input in order to create a PDF from it.
Hence, what you try to do with your command will not work: send a text file to a PDF-creating "printer". And it is not possible to make it work in any other "simple" way either...