Jak wydrukować PDF z C #
Próbuję rozwiązać ten problem przez prawie 2 dni. W sieci jest dużo więcej lub mniej dobrych rozwiązań, ale żaden nie pasuje idealnie do mojego zadania.
Zadanie:Drukuj programowo plik PDFZrób to za pomocą stałej drukarkiNie pozwól użytkownikowi zrobić więcej niż jednego Button_ClickZrób to cicho - im więcej, tym lepiejZrób to po stronie klientaPierwsze rozwiązania:Zrób to za pomocą Forms.WebBrowser
Jeśli mamy zainstalowany program Adobe Reader, dostępna jest wtyczka do wyświetlania plików PDF w przeglądarce internetowej. Dzięki temu rozwiązaniu mamy ładny podgląd i dzięki webbrowserControlName.Print () możemy uruchomić kontrolkę, aby wydrukować jej zawartość.
Problem - wciąż mamy PrintDialog.
Uruchom AcroRd32.exe z argumentami startowymi
Następujące polecenie CMD pozwala nam użyć Adobe Reader do wydrukowania naszego pliku PDF.
InsertPathTo .. AcroRd32.exe / t "C: sample.pdf" "printNetwork nazwa_pliku"
Problemy - potrzebujemy bezwzględnej ścieżki do AcroRd32.exe | istnieje okno Adobe Reader, które musi zostać otwarte, dopóki zadanie drukowania nie będzie gotowe.
Użyj ustawień wstępnych systemu Windows
Process process = new Process();
process.StartInfo.FileName = pathToPdf;
process.StartInfo.Verb = "printto";
process.StartInfo.Arguments = "\"" + printerName + "\"";
process.Start();
process.WaitForInputIdle();
process.Kill();
Problem - wciąż pojawia się okno Adobe Reader, ale po zakończeniu drukowania zwykle się zamyka.
Rozwiązanie - przekonaj klienta do korzystania z Foxit Reader (nie używaj dwóch ostatnich linii kodu).
Konwertuj strony PDF na Drawing.Image
Nie mam pojęcia, jak to zrobić za pomocą kodu, ale kiedy to zrobię, reszta to tylko bułka z masłem. Drukowanie.PrintDocument może spełnić wszystkie wymagania.
Czy masz pomysł na Drawing.Image z tych plików PDF lub innego podejścia, jak to zrobić?Pozdrawiam, Max