10

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?

8

5 Answers 5

18

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.

    1. Open Start → Control Panel → Devices and Printers.
    2. Right-click the CutePDF Writer and select Printer Properties.
    3. In the Ports tab, assign an unused port from COM1: to COM4: to your printer.
    4. If you chose, e.g., COM3, print using the following command:

      print /d:COM3 test.txt
      
  • Share the printer.

    1. Open Start → Control Panel → Devices and Printers.
    2. Right-click the CutePDF Writer and select Printer Properties.
    3. In the Sharing tab, decide to share the printer and assign a share name to it.
    4. If you chose, e.g., CutePDF, print using the following command:

      print /d:\\%COMPUTERNAME%\CutePDF test.txt
      
2
  • if i want to scan from printer using cmd what to do?
    – Muath
    Jun 3, 2015 at 12:08
  • You might want to convert your TXT to PDF first using a free command line program called text2pdf: eprg.org/pdfcorner/text2pdf
    – Sun
    May 25, 2016 at 15:34
6

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 the key of a registry:

"HKEY_LOCAL_MACHINE\SOFTWARE\Classes\rtffile\shell\printto\command"

where the 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). That mean you can use this information form the registry key to call the actual app directly from cmd according to this pattern. Or you can call it indirectly through this association from using powershell, shipped in Windows since Vista:

powershell "-Command" "& {Start-Process -FilePath  'test.txt'  -ArgumentList '\"Microsoft Print to PDF\"' -Verb 'printto' }"

Concise form of it (powershell -command "start -verb printto AnyFile.rtf PrinterName [ DriverName [ PortName ] ]") or running it from powershell prompt doesn't work on my pc for unknown reason.

It works for almost any Registered File Types with such registered verb (printto)!

UPD: To List Installed Printers wmic printer list brief

UPD: there is also a print verb. It doesn't accept any arguments the except file. So almost all the above is true if you replace printto with print and drop additional printer arguments.

But printer drivers will usually shows user dialog. User dialog showing can be disabled in Bullzip Pdf printer.

1
  • How to put it into one command using the second example "wordpad.exe e.g my printer name is XP-80C
    – Salem F
    Jul 1 at 20:27
5

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)

1

@mizipzor:

  1. The job file successfully gets into the printqueue when you follow Dennis' answer.

  2. 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...

0

Control panel then Devices and Printers Right click on printer then printer properties Make sure printer is Shared and the "Share Name" is 8 characters or less. At DOS prompt >net use lpt1: \127.0.0.1\ Now your DOS programs will print!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.