Я хочу автоматизировать печать в Windows 7. В идеале из командной строки. Так же, как если бы я щелкнул правой кнопкой мыши и выбрал «Печать».
Попробовал команду:
C:\>print /D:"CutePDF Writer" test.txt
Этот принтер должен создавать файлы PDF (как принтер XPS), но не смог ничего отобразить в очереди печати. Идеи?
решение1
Theprint
Команда использует следующий синтаксис для /d:
переключателя:
Указывает принтер, на котором вы хотите напечатать задание. Вы можете указать локальный принтер, указав порт на вашем компьютере, к которому подключен принтер. Допустимые значения для параллельных портов: LPT1, LPT2 и LPT3. Допустимые значения для последовательных портов: COM1, COM2, COM3 и COM4. Вы также можете указать сетевой принтер по имени его очереди (\ServerName\ShareName). Если вы не укажете принтер, задание печати будет отправлено на LPT1.
Это значит, что вы не можете использовать это "CutePDF Writer"
в качестве аргумента.
Есть два способа, которые должны сработать:
Назначьте COM-порт вашему принтеру.
- ОткрытьПуск → Панель управления → Устройства и принтеры.
- Щелкните правой кнопкой мышиМилый PDF Writerи выберитеСвойства принтера.
- вПортыНа вкладке назначьте неиспользуемый порт с
COM1:
наCOM4:
ваш принтер. Если вы выбрали, например,
COM3
, выполните печать с помощью следующей команды:print /d:COM3 test.txt
Предоставьте общий доступ к принтеру.
- ОткрытьПуск → Панель управления → Устройства и принтеры.
- Щелкните правой кнопкой мышиМилый PDF Writerи выберитеСвойства принтера.
- вПоделитьсяНа вкладке «Общий доступ к принтеру» решите предоставить общий доступ к принтеру и присвойте ему имя общего ресурса.
Если вы выбрали, например,
CutePDF
, выполните печать с помощью следующей команды:print /d:\\%COMPUTERNAME%\CutePDF test.txt
решение2
Печать зарегистрированных типов файлов Файлы, имеющие ассоциацию с типом файла в 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-Process -FilePath 'test.txt' -ArgumentList '\"Microsoft Print to PDF\"' -Verb 'printto' }"
Краткая форма ( powershell -command "start -verb printto AnyFile.rtf PrinterName [ DriverName [ PortName ] ]"
) или запуск из командной строки PowerShell не работает на моем компьютере по неизвестной причине.
Он работает практически для любых зарегистрированных типов файлов с таким зарегистрированным глаголом (распечатать)!
ОБНОВЛЕНИЕ:Чтобы просмотреть список установленных принтеров wmic printer list brief
UPD: есть такжеРаспечататьverb. Он не принимает никаких аргументов, кроме файла. Так что почти все вышесказанное верно, если заменитьраспечататьсРаспечататьи отбросьте дополнительные аргументы принтера.
Но драйверы принтера обычно показывают пользовательский диалог. Показ пользовательского диалога можно отключить в принтере Bullzip Pdf.
решение3
Привет, вот простой способ установить CutePDF в качестве принтера по умолчанию. Если вы знаете DOS, то установка принтера по умолчанию не должна вызвать проблем, а затем снова выполнить сброс настроек принтера до значений по умолчанию.
чтобы распечатать текстовый файл, htm-файл, bat-файл или любой текстовый файл, введите следующее
notepad /p test.txt
для других программ найдите формат командной строки для печати (в regedit или в документации)
решение4
Панель управления, затем Устройства и принтеры Щелкните правой кнопкой мыши по принтеру, затем Свойства принтера Убедитесь, что принтер является общим, а "Имя общего ресурса" не превышает 8 символов. В командной строке DOS >net use lpt1: \127.0.0.1\ Теперь ваши программы DOS будут печатать!