Печать из командной строки Windows 7

116455
mizipzor

Я ищу, чтобы автоматизировать некоторые печати в Windows 7. В идеале из командной строки. Так же, как если бы я щелкнул правой кнопкой мыши и выбрал «Печать».

Попробовал команду:

C:\>print /D:"CutePDF Writer" test.txt 

Предполагается, что этот принтер создает файлы PDF (например, принтер XPS), но ему не удалось ничего отобразить в очереди принтера. Идеи?

8
http://technet.microsoft.com/en-us/library/cc775908(v=ws.10).aspx Ishikawa Yoshi 12 лет назад 0
Похоже на ваш вопрос http://stackoverflow.com/questions/5104930/how-to-print-through-cmd Ishikawa Yoshi 12 лет назад 1
Вы пытаетесь создать PDF-файлы или распечатать их (или оба)? martineau 12 лет назад 0
@martineau Я пытаюсь создать PDF-файлы с помощью этого «принтера». Так что, думаю, оба. Но я не ищу физические документы. mizipzor 12 лет назад 0
@mizipzor: Хорошо, я понимаю. Я думаю, что у Денниса есть твой ответ. Я бы назначил его `LPT1`, если это возможно, что по умолчанию для большинства команд. martineau 12 лет назад 0
@martineau действительно он имеет, обращаясь должным образом к принтеру, задание было добавлено в очередь принтера. Однако, это не могло закончиться и застряло с ошибкой. Я предполагаю, что это потому, что этот конкретный принтер открывает диалог «сохранить файл» для вывода. Что-то, что, вероятно, не возможно, когда он запускается из командной строки. mizipzor 12 лет назад 0
@mizipzor: Хорошо. Я подозреваю, что текущая проблема _not_, потому что она была запущена из командной строки, которая сама по себе не помешает программе отображать диалог. Посмотрите, есть ли какая-либо информация об ошибках, доступная для принтера, на панели управления «Устройство и принтеры» - или «распечатайте» тестовую страницу там и посмотрите, что произойдет. martineau 12 лет назад 0
@mizipzor: задание застряло, потому что этот принтер не может использовать входной файл *** TEXT ***! Очереди печати Windows намного тупее в этом отношении (в отличие от очередей CUPS Linux / Unix / OSX - которые могут автоматически вводить входящие данные и автоматически преобразовывать их в то, что соответствующая очередь печати сообщает в качестве усваиваемых данных). Скорее всего, ваш принтер ожидает данные *** PostScript *** в качестве входных данных для создания из него PDF. Следовательно, то, что вы пытаетесь сделать с помощью вашей команды, не сработает: отправьте текстовый файл на «принтер», создающий PDF. Kurt Pfeifle 9 лет назад 0

5 ответов на вопрос

14
Dennis

Команда printиспользует следующий синтаксис для /d:коммутатора:

Указывает принтер, на котором вы хотите распечатать задание. Вы можете указать локальный принтер, указав порт на вашем компьютере, к которому подключен принтер. Допустимые значения для параллельных портов: LPT1, LPT2 и LPT3. Допустимые значения для последовательных портов: COM1, COM2, COM3 и COM4. Вы также можете указать сетевой принтер по имени его очереди (\ ServerName \ ShareName). Если вы не укажете принтер, задание на печать будет отправлено на LPT1.

Это означает, что вы не можете использовать "CutePDF Writer"в качестве аргумента.

Есть два способа, которые должны работать:

  • Назначьте COM-порт вашему принтеру.

    1. Откройте Пуск → Панель управления → Устройства и принтеры .
    2. Щелкните правой кнопкой мыши на CutePDF Writer и выберите Свойства принтера .
    3. В Ports вкладке назначьте неиспользуемый порт от COM1:к COM4:принтеру.
    4. Если вы выбрали, например COM3, печать, используя следующую команду:

      print /d:COM3 test.txt 
  • Поделитесь принтером.

    1. Откройте Пуск → Панель управления → Устройства и принтеры .
    2. Щелкните правой кнопкой мыши на CutePDF Writer и выберите Свойства принтера .
    3. На вкладке « Общий доступ» выберите общий доступ к принтеру и присвойте ему имя общего ресурса.
    4. Если вы выбрали, например CutePDF, печать, используя следующую команду:

      print /d:\\%COMPUTERNAME%\CutePDF test.txt 
если я хочу сканировать с принтера с помощью cmd, что делать? Muath 9 лет назад 0
Возможно, вы захотите сначала конвертировать ваш TXT в PDF, используя бесплатную программу командной строки с именем text2pdf: http://www.eprg.org/pdfcorner/text2pdf/ Sun 8 лет назад 0
4
ansel

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)

3
Кое Кто

Печать зарегистрированных типов файлов Файлы с ассоциацией типов файлов в Windows (95/98 / NT / 2000) можно распечатать правой кнопкой мыши.

Эту связь можно увидеть, например, для файла .rtf в

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

где команда выглядит примерно так:

"%ProgramFiles%\Windows NT\Accessories\WORDPAD.EXE" /pt "%1" "%2" "%3" "%4" 

что значит :

"wordpad.exe /pt TextFileName PrinterName [ DriverName [ PortName ] ]" 

(квадратные скобки означают необязательно). Он может быть вызван из cmd с использованием powershell, поставляется с Windows начиная с Vista.

powershell -command "start -verb printto AnyFile.rtf PrinterName [ DriverName [ PortName ] ]" 

Строго:

"%windir%\System32\WindowsPowerShell\v1.0\powershell.exe" "-Command" "& " 

Он работает практически для любых зарегистрированных типов файлов с таким зарегистрированным глаголом (printto)! Но драйверы принтера обычно показывают диалог пользователя. Показ диалогового окна пользователя может быть отключен на принтере Bullzip Pdf.

1
Kurt Pfeifle

@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
user809460

Затем на панели управления «Устройства и принтеры» щелкните правой кнопкой мыши на принтере, затем на свойствах принтера. Убедитесь, что принтер «Общий» и «Имя общего ресурса» не более 8 символов. При запросе DOS> net use lpt1: \ 127.0.0.1 \ Теперь ваши DOS-программы будут печататься!

Похожие вопросы