Я пытаюсь решить эту проблему в течение почти 2 дней. В сети много более-менее хороших решений, но ни одно идеально не подходит под мою задачу.
Сделайте это с помощью Forms.WebBrowser
Если у нас установлен Adobe Reader, есть плагин для отображения PDF-файлов в веб-браузере. С помощью этого решения у нас есть хороший предварительный просмотр, а с помощью webbrowserControlName.Print ()мы можем активировать элемент управления для печати его содержимого.
Проблема -у нас все еще есть PrintDialog.
Запустите AcroRd32.exe с параметрами запуска
. Следующая команда CMD позволяет нам использовать Adobe Reader для печати нашего PDF-файла.
InsertPathTo..\AcroRd32.exe /t "C :\sample.pdf" "\printerNetwork\имя_принтера"
Проблемы -нам нужен абсолютный путь к AcroRd32.exe | открывается окно Adobe Reader, и его нужно открывать до тех пор, пока задание на печать не будет готово.
Использовать предустановки Windows
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 (не использовать последние две строки кода ).
Преобразование страниц PDF в Drawing.Image
Я понятия не имею, как это сделать с помощью кода, но когда я заставлю это работать, все остальное — просто кусок пирога. Printing.PrintDocument может удовлетворить все требования.
Наилучшие пожелания, Макс