Показать полную графическую версию : [решено] Как распечатать файл из командной строки "правильным" приложением?
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
Как сделать также из командной строки…? »
NirCmd (http://www.nirsoft.net/utils/nircmd.zip):
nircmd.exe shexec "print" "<full file name>"
Собственно говоря, у Adobe Reader есть свои параметры командной строки, в т. ч. и для печати.
Тихая печать
AcroRd32.exe /N /T PdfFile PrinterName [ PrinterDriver [ PrinterPort ] ]
http://www.robvanderwoude.com/commandlineswitches.php#Acrobat
objShell.ShellExecute "имя_файла", "", "", "print", 0
Здесь где-нибудь можно указать сетевое имя принтера, чтобы, независимо от установленного по умолчанию, печатать на сетевом?
Надо в автоматическом режиме печатать и сразу удалять 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
то батник переходит к следующей строке не дожидаясь полного выполнения команды »
Если из пакетного файла — то
start /wait nircmd.exe shexec "print" "c:\TEMP\print\big.pdf"
mwz, не думаю, что это поможет: nircmd просто выполняет глагол «print», а саму печать осуществляет ассоциированное с данным глаголом приложение в асинхронном режиме.
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, удалять позже - может на следующий день, может вручную
сначала печатает small.pdf, потом big.pdf, т.е. ожидания нет, ключ wait не работает. »
Michael, ещё раз: команда start /wait работает. Но дело не в ней. И не в nircmd.exe. Дело в том, что nircmd.exe просто отсылает команду за запуск ассоциированного приложения, и на этом его миссия закончена. И снова: он просто запустил ассоциированное приложение и завершил свою работу. Печать ещё даже не начата, а он уже завершил свою работу. И начинает исполняться следующая команда. Посему не поможет тут никакая start /wait (она тут вообще совершенно лишняя).
Iska, я это понял. Я имел в виду, что не работает в том смысле, который нужен мне - не ожидания конца постановки на печать
Michael, так и задумывалось. Иначе все окна Проводника намертво зависали бы после открытия любого приложения — вплоть до того момента, пока Вы не завершите работу этого приложения.
Именно потому здесь: VBS: Скрипт автоматической печати "всяких" документов из папки — Серый форум (http://forum.script-coding.com/viewtopic.php?id=3059) похожая задача решалась не исполнением глагола указанного типа файла, а либо посредством Automation (там, где сие поддерживалось приложениями — например, Microsoft Office, Adobe Photoshop и т.п.), либо использованием командной строки (в частности — оговоренный выше в данной теме pdf — посредством утилиты pdfp.exe). Причём, в той теме, в общем-то, можно было обойтись и без этой утилиты, наплевав на то, что Adobe Reader не закрывает своё окно: ну, висит скрытое окно Adobe Reader'а — ну, и хрен с ним, пусть себе висит, есть не просит, для решения тамошней задачи этого было достаточно.
Решил завести свою тему
Печатьpdf-файлов из командной строки. (http://forum.oszone.net/thread-339009.html)
Michael, ссылка не на ту тему ведёт.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.