Как распечатать PDF с C #

Я пытаюсь решить эту проблему почти 2 дня. В сети есть много более или менее хороших решений, но ни одно из них не подходит мне идеально.

Task: Print a PDF programmatically Do it with a fixed printer Don´t let the user do more than one Button_Click Do it silent - the more, the better Do it client side First Solutions:

Do it with a Forms.WebBrowser

Если у нас установлен Adobe Reader, есть плагин для отображения PDF-файлов в браузере. С этим решением у нас есть хороший предварительный просмотр, а с помощью webbrowserControlName.Print () мы можем запустить элемент управления для печати его содержимого.

Проблема - у нас все еще есть PrintDialog.

Start the AcroRd32.exe with start arguments

Следующая команда CMD позволяет нам использовать Adobe Reader для печати нашего PDF.

InsertPathTo..\AcroRd32.exe /t "C:\sample.pdf" "\printerNetwork\printerName"

Проблемы - нам нужен абсолютный путь к AcroRd32.exe | окно Adobe Reader открывается, и его нужно открывать до тех пор, пока задача печати не будет готова.

Use windows presets

Process process = new Process();

process.StartInfo.FileName = pathToPdf; 
process.StartInfo.Verb = "printto";
process.StartInfo.Arguments = "\"" + printerName + "\""; 
process.Start();

process.WaitForInputIdle();
process.Kill();

Проблема - все еще появляется окно Adobe Reader, но после завершения печати оно обычно закрывается.

Решение - убедить клиента использовать Foxit Reader (не используйте последние две строки кода).

Convert PDF pages to Drawing.Image

Я не знаю, как это сделать с кодом, но когда я заставлю это работать, все остальное - просто кусок пирога. Printing.PrintDocument может удовлетворить все требования.

Anyone an idea to get some Drawing.Image´s out of those PDF´s or another approach how to do it?

С уважением, Максимум

Ответы на вопрос(11)

Ваш ответ на вопрос