Я не знаю, можете ли вы сделать это с другими читателями PDF таким образом, чтобы эти зрители были заменой Plug-and-Play для Adobe Reader. Вам, вероятно, придется адаптировать его к каждой программе, которую вы хотите поддержать. Не так сложно иметь Reader на своей системе, действительно, если это необходимо для выполнения задания, и большинство компьютеров поставляется с предустановленной.
Первое, что вы должны знать, что, когда вы говорите это, чтобы напечатать через этот глагол, либо через код или в контекстном меню Проводника, вы делаете что-то вроде этого:
""C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe"" /p /h "%1"
Примечание аргументы:/p (говорит, что печатается) и/h (свести к минимуму).
Есть еще один вариант. Adobe Developer FAQ (http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/intro_to_sdk/DeveloperFAQ.pdf) утверждает, что эта командная строка работает за файл:
AcroRd32.exe /t path "printername" "drivername" "portname"
В документе указывается, что это инициирует Adobe Reader и печатает файл, чей путь должен быть полностью определены, при подавлении диалогового окна Печати , (Скопировано в папку с вопросом разработчиков.)
Существует также опция/n, которая «запускает отдельный экземпляр Acrobat или Adobe Reader, даже если он открыт». (Часто задаваемые вопросы о разработчике.) Это может быть использовано для запуска нескольких заданий печати параллельно, я полагаю.
я нашел еще одну ссылку командной строки на: Adobe Reader Command Line Reference
Так в основном, вы можете перебирать свой список PDF-файлов, и для каждого из них начать новый процесс печати с Process.Start вызова и ждать его, чтобы закрыть через Process.WaitForExit. Это заставит вашу программу появляться, и я ненавижу, когда программы зависают во время выполнения операций, поэтому вы действительно должны это делать в отмене BackgroundWorker, который сообщает о прогрессе и все еще оставляет ваш графический интерфейс несколько интерактивным.
У нас была такая же (и связанная) проблема и, наконец, использовалась [gsprint] (http://pages.cs.wisc.edu/~ghost/gsview/gsprint.htm) в качестве обходного пути. – Silas
Первое, что я сделал бы, это проверить, что именно происходит на вашей машине, копаясь в 'regedit' (осторожно, конечно). – AakashM
ОК @ Силас, я надеялся не прийти к такому выводу. =/ – Skywise