Próbuję zmodyfikować obiekt System.Drawing.Printing.PrinterSettings, który otrzymuję z System.Windows.Forms.PrintDialog po wyświetleniu okna dialogowego użytkownikowi. Chociaż mogę zmienić wartości właściwości w obiekcie PrinterSettings, żadna ze zmian, które wprowadzę po wyświetleniu okna dialogowego, nie jest faktycznie brana pod uwagę przy drukowaniu dokumentu.Modyfikowanie ustawień drukarki po wyświetleniu komunikatu PrintDialog
Oto przykład tego, co mam na myśli:
//Show the printdialog and retreive the printersettings
var printDialog = new PrintDialog();
if (printDialog.ShowDialog() != DialogResult.OK)
return;
var printerSettings = printDialog.PrinterSettings;
//Now modify the printersettings object
printerSettings.ToPage = 8;
teraz używać printerSettings obiekt do drukowania. Używam 3rd Party DLL Aspose.Words do tego, ponieważ muszę wydrukować Word, ale to nie wydaje się być problemem. Wygląda na to, że po wyświetleniu okna dialogowego wszystkie ustawienia zostały już zatwierdzone w drukarce, a zmiana ustawień drukarki nic nie daje. Jakieś pomysły, jak to uruchomić?
EDYCJA: Mam kilka obejść tego. Chcę tutaj uzyskać odpowiedź na następujące pytania: Czy jest możliwe zmienić obiekt PrinterSettings po wyświetleniu okna dialogowego i czy zmiany te zostały uwzględnione podczas drukowania. Jeśli ktoś wie tylko jeden sposób, w jaki sposób to działa (możesz zdecydować, jakiego interfejsu API chcesz użyć do drukowania, nie ma to znaczenia, dopóki jest używany obiekt PrinterSettings), byłbym bardzo wdzięczny.
Jakieś powody, dla których nie zmieniasz ustawień przed otwarciem okna dialogowego? –
Tak, w mojej aplikacji mam "dokumenty scalone", które składają się z wielu różnych dokumentów. W oknie dialogowym drukowania powinny pojawić się jako jeden dokument, ale do drukowania muszę je obsługiwać indywidualnie. Mówiąc dokładniej: niektóre ustawienia PrinterSettings powinny dotyczyć wszystkich dokumentów, inne muszę ustawić dla każdego dokumentu indywidualnie. Poszczególne właściwości/ustawienia, które mogę obliczyć bez interakcji użytkownika, ale do drukowania, muszę wprowadzić je do ustawień drukarki. – user1182735
Z opisu nie wynika jasno, w jaki sposób obiekt PrinterSettings jest stosowany do faktycznego zadania drukowania. Brak tych elementów w kodzie wyjaśnia przyczynę problemu. –