PDA

Показать полную графическую версию : [решено] Как распечатать файл из командной строки "правильным" приложением?


Yewgeniy
18-03-2009, 14:05
так чтобы например pdf распечататался правильно как если бы его отправили на печать из например акробат ридера.
Если значок файла перетащить мышью на значок принтера, файл будет распечатан автоматически с использованием "родного" приложения.
Как сделать также из командной строки (или програмного кода)?

Petya V4sechkin
18-03-2009, 15:35
Yewgeniy, можно .vbs скриптом:
Dim objShell
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "имя_файла", "", "", "print", 0
WScript.Sleep 1000

Iska
20-03-2009, 21:51
Как сделать также из командной строки…? »
NirCmd (http://www.nirsoft.net/utils/nircmd.zip):
nircmd.exe shexec "print" "<full file name>"

Vadikan
23-03-2009, 07:45
Собственно говоря, у Adobe Reader есть свои параметры командной строки, в т. ч. и для печати.

Тихая печать
AcroRd32.exe /N /T PdfFile PrinterName [ PrinterDriver [ PrinterPort ] ]

http://www.robvanderwoude.com/commandlineswitches.php#Acrobat

Vic12
05-09-2012, 17:43
objShell.ShellExecute "имя_файла", "", "", "print", 0
Здесь где-нибудь можно указать сетевое имя принтера, чтобы, независимо от установленного по умолчанию, печатать на сетевом?

Michael
30-01-2019, 11:29
Надо в автоматическом режиме печатать и сразу удалять pdf-файлы в определенном каталоге.
Строка
"c:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /n /t c:\temp\print\small.pdf
печатает как положено, но не закрывается окно adobe acrobat - оно остается свернутым в панель задач, соответственно батник не переходит к следующей команде.
Если использовать NirCmd
nircmd.exe shexec "print" "c:\TEMP\print\big.pdf"
то батник переходит к следующей строке не дожидаясь полного выполнения команды, т.е. непонятно когда можно удалять направленный на печать pdf-файл.
Как-то можно выйти из этой ситуации?
Версия Adobe acrobat reader - 11.0.15

mwz
30-01-2019, 16:58
то батник переходит к следующей строке не дожидаясь полного выполнения команды »

Если из пакетного файла — то
start /wait nircmd.exe shexec "print" "c:\TEMP\print\big.pdf"

Iska
30-01-2019, 19:08
mwz, не думаю, что это поможет: nircmd просто выполняет глагол «print», а саму печать осуществляет ассоциированное с данным глаголом приложение в асинхронном режиме.

Michael
31-01-2019, 08:19
mwz, не работает.
start /wait nircmd.exe shexec "print" "c:\TEMP\print\big.pdf"
"c:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /n /t c:\temp\print\small.pdf

сначала печатает small.pdf, потом big.pdf, т.е. ожидания нет, ключ wait не работает.
Пробую пойти по другому пути - сначала pdf-файл перенести из каталога печати в подкаталог, отправлять его на печать из подкаталога через NirCmd, удалять позже - может на следующий день, может вручную

Iska
31-01-2019, 18:40
сначала печатает small.pdf, потом big.pdf, т.е. ожидания нет, ключ wait не работает. »
Michael, ещё раз: команда start /wait работает. Но дело не в ней. И не в nircmd.exe. Дело в том, что nircmd.exe просто отсылает команду за запуск ассоциированного приложения, и на этом его миссия закончена. И снова: он просто запустил ассоциированное приложение и завершил свою работу. Печать ещё даже не начата, а он уже завершил свою работу. И начинает исполняться следующая команда. Посему не поможет тут никакая start /wait (она тут вообще совершенно лишняя).

Michael
31-01-2019, 19:52
Iska, я это понял. Я имел в виду, что не работает в том смысле, который нужен мне - не ожидания конца постановки на печать

Iska
01-02-2019, 06:47
Michael, так и задумывалось. Иначе все окна Проводника намертво зависали бы после открытия любого приложения — вплоть до того момента, пока Вы не завершите работу этого приложения.

Именно потому здесь: VBS: Скрипт автоматической печати "всяких" документов из папки — Серый форум (http://forum.script-coding.com/viewtopic.php?id=3059) похожая задача решалась не исполнением глагола указанного типа файла, а либо посредством Automation (там, где сие поддерживалось приложениями — например, Microsoft Office, Adobe Photoshop и т.п.), либо использованием командной строки (в частности — оговоренный выше в данной теме pdf — посредством утилиты pdfp.exe). Причём, в той теме, в общем-то, можно было обойтись и без этой утилиты, наплевав на то, что Adobe Reader не закрывает своё окно: ну, висит скрытое окно Adobe Reader'а — ну, и хрен с ним, пусть себе висит, есть не просит, для решения тамошней задачи этого было достаточно.

Michael
01-02-2019, 11:47
Решил завести свою тему
Печатьpdf-файлов из командной строки. (http://forum.oszone.net/thread-339009.html)

Iska
01-02-2019, 12:32
Michael, ссылка не на ту тему ведёт.

Michael
01-02-2019, 13:05
Iska, спасибо, исправил




© OSzone.net 2001-2012