Mam opcję, że użytkownik może wybrać opcję drukowania, gdzie wywołuje PrintDialog
, gdzie użytkownik może wybrać już zdefiniowany profil drukarki.Drukuj plik z wybranym profilem drukarki/rozmiarem strony
Dla tej drukarki domyślny rozmiar papieru to A4, ale wybór tego profilu powoduje zmianę na A5.
Korzystam z poniższego kodu, który wysyła zadanie drukowania, aby poprawić drukarkę, ale nie pobiera prawidłowego rozmiaru papieru, ponieważ zawsze jest drukowany w formacie A4. Czy tu brakuje czegoś lub czy istnieje alternatywny sposób osiągnięcia tego?
using (var pd = new PrintDialog())
{
if (pd.ShowDialog() == DialogResult.OK)
{
var info = new ProcessStartInfo(filepath)
{
Arguments = "\"" + pd.PrinterSettings + "\"",
CreateNoWindow = true,
WindowStyle = ProcessWindowStyle.Hidden,
UseShellExecute = true,
Verb = "Print"
};
Process.Start(info);
}
}
Jest zbyt mało prawdopodobne, że bez względu na program związany jest z * filepath * idzie docenić tych przekazanych argumentów. Zasadniczo każdy program, który implementuje czasownik Drukuj, sam decyduje, jakiego papieru użyć. Prawie zawsze domyślny wybór skonfigurowany w Panelu sterowania. –
Wygląda to podejrzanie jak domyślne okno dialogowe opcji konfiguracyjnych sterownika drukowania, ale wydaje się, że otwierasz go jako oddzielny proces. Czy próbujesz utworzyć program, który zmienia domyślne ustawienia drukarki? Innymi słowy, jestem bardzo zdezorientowany tym, co dokładnie próbujesz zrobić. Odpowiedź S. Hooleya pokazuje zwykły sposób drukowania strony z poziomu aplikacji. Uważam, że można go używać w połączeniu z PrintDialog, aby umożliwić użytkownikom dostosowanie ustawień drukowania. TLDR: Proszę wyjaśnić, co dokładnie próbujesz zrobić. – ashbygeek