WPF, configura și gestiona imprimare
Până în prezent, toată atenția sa concentrat asupra a două metode de clasă PrintDialog: PrintVisual () și PrintDocument (). Acest lucru este tot ceea ce este necesar pentru a obține o imprimare satisfăcătoare, dar dacă doriți să controlați setările locurilor de muncă imprimantă și imprimare, veți avea nevoie de altceva. Punctul de plecare este clasa PrintDialog ().
Suport pentru setările de imprimare
Exemplele din articolele anterioare, sa arătat modul în care clasa PrintDialog vă permite să utilizați imprimanta și setările acestuia. Cu toate acestea, în cazul în care sunt utilizate aceste exemple pentru mai mult de o imprimare, veți observa unele anomalie. De fiecare dată când reveniți la Print restaurează setările implicite pentru caseta de dialog de imprimare. Din nou, avem de a alege imprimanta și personaliza complet.
Puteți salva aceste informații și să-l utilizați din nou. O buna abordare este de a menține PrintDialog ca variabilă membru al ferestrei. Astfel, pentru a crea un PrintDialog înainte de fiecare nou de imprimare nu va avea nevoie de o operație - se va folosi pur și simplu un obiect existent. Aceasta funcționează pentru că PrintDialog încapsulează intervalul imprimantei și instalarea imprimantei prin intermediul a două proprietăți: PrintQueue și PrintTicket.
proprietate PrintQueue se referă la un System.Printing.PrintQueue obiect, care este coada de imprimare pentru imprimanta selectată. PrintQueue încapsulează, de asemenea, o cantitate semnificativă de resurse pentru administrarea imprimantei și locurile de muncă.
proprietate PrintTicket se referă la obiect System.Printing.PrintTicket care definește setările pentru lucrarea de imprimare. Acesta include detalii, cum ar fi rezoluția de imprimare și imprimarea față-verso. Dacă setările PrintTicket dorite poate fi ajustată în funcție de software-ul. Clasa chiar PrintTicket include GetCmlStream () și Salvarepentru (). permițând fluxului obiect serializate, și un constructor care permite PrintTicket recrea obiectul în flux. Aceasta este o opțiune interesantă atunci când aveți nevoie pentru a păstra anumite setări ale imprimantei între sesiunile de aplicare. (De exemplu, această caracteristică ar fi utilă pentru a crea un mijloc de „profiluri ale presei.“)
Atâta timp cât proprietățile PrintQueue și PrintTicket rămân consecvente, imprimanta selectată și proprietățile sale vor fi la fel de fiecare dată când deschideți caseta de dialog Print. Prin urmare, dacă doriți să creați în mod repetat de dialog PrintDialog, puteți seta pur și simplu aceste proprietăți pentru a salva setările personalizate.
game Imprimare pagină
O clasă înseamnă PrintDialog nu a fost încă luate în considerare. Puteți permite utilizatorului să aleagă pentru a imprima doar un subset al ieșirii imprimate, utilizând Pagini caseta de text (pagini) în pagina Gama (interval de pagini).
Un câmp de text permite utilizatorului pentru a specifica un grup de pagini, care intră la începutul și sfârșitul paginii (de exemplu, 4-6), sau selectați o anumită pagină (de exemplu, 4). Ea nu permite să intre mai multe intervale de pagini (cum ar fi 1-3,5). Câmp text Pagini implicite dezactivate. Înainte de a apela ShowDialog () pentru a putea instala proprietatea PrintDialog.UserPageRangeEnabled la true.
Opțiuni de selecție (fragment izolat) și Pagina curentă (pagina curentă) rămân cu handicap, deoarece acestea nu sunt susținute de clasa PrintDialog. Proprietăți Set și MaxPage MinPage limitate la paginile pe care utilizatorul poate alege.
După afișarea casetei de dialog Print, puteți stabili dacă utilizatorul are posibilitatea de a introduce o serie de pagini prin verificarea PageRangeSelection de proprietate. În cazul în care conține o valoare UserPages, prin urmare, există o serie de pagini. PageRange proprietate reprezintă pagina de start (PageRange.PageFrom) și o pagină de capăt (PageRange.PageTo). Codul poate lua în considerare valorile și imprimați numai paginile solicitate.
managementul cozii de imprimare
De obicei, aplicația client are posibilități de interacțiune cu coada de imprimare limitată. Odată ce sarcina a început, ați putea dori să afișeze statutul său, sau (mai rar), pentru a oferi o oportunitate de a întrerupe, relua sau anula lucrarea. clase de imprimare WPF merge mult dincolo de acest nivel și vă permit să construiască instrumente care pot gestiona cozile locale sau la distanță de imprimare.
Clase în numele System.Printing oferă suport pentru gestionarea cozii de imprimare. Pentru a efectua majoritatea activităților sunt câteva clase cheie care sunt listate în tabelul de mai jos:
Clasele de imprimare Managementul
PrintServer și LocalPrintServer
Reprezintă un computer care furnizează o imprimantă sau alt dispozitiv. ( „Un alt dispozitiv“ poate fi o imprimantă cu echipamentul de rețea, care servește ca un server de imprimare.)
Folosind Class PrintServer, puteți obține o colecție de obiecte pentru un calculator PrintQueue dat. Puteți utiliza, de asemenea, clasa LocalPrintServer, care derivă dintr-o PrintServer, care reprezintă întotdeauna computerul curent. El adaugă DefaultPrintQueue de proprietate. cu care puteți obține (sau set) imprimanta implicită, și metoda statică GetDefaultPrintQueue (). care poate fi utilizat fără a crea o instanță de LocalPrintServer.
Imprimanta este configurată pe serverul de imprimare. clasa PrintQueue furnizează informații despre starea imprimantei și de a gestiona coada de imprimare. Puteți obține, de asemenea, o colecție de obiecte PrintQueueJoblnfo pentru această imprimantă.
Este o sarcină care a fost trimis la coada de imprimantă. Puteți obține informații despre starea lui sau șterge.
Folosind aceste ingrediente de bază, puteți crea un program care inițiază imprimarea fără intervenția utilizatorului:
De asemenea, puteți crea și de a folosi obiect PrintTicket la PrintDialog, pentru a configura alte setări pentru imprimare.