Se aplică la
Obiectul Form |
Obiectul Report |
Puteți utiliza proprietatea PrtDevMode pentru a seta sau a returna informațiile specificate despre modul dispozitivului de imprimare pentru un formular sau un raport în caseta de dialog Imprimare. Variant în citire/scriere.
expresie.PrtDevMode
expresie Obligatoriu. O expresie care returnează unul dintre obiectele din lista Se aplică la.
Observații
Se recomandă ferm să consultați Kitul de dezvoltare software Win32 pentru documentația completă despre proprietățile PrtDevMode, PrtDevNames și PrtMip.
Setarea proprietății PrtDevMode este o structură pe 94 de byți care oglindește structura DEVMODE definită în Kitul de dezvoltare software Win32. Pentru informații complete despre membrii proprietății PrtDevMode, consultați Kitul de dezvoltare software Win32.
Proprietatea PrtDevMode utilizează următorii membri.
Membru |
Descriere |
DeviceName |
Un șir cu un număr maxim de 32 de byți care specifică numele dispozitivului acceptat de driver, de exemplu, „HP LaserJet IIISi”, dacă Hewlett-Packard LaserJet IIISi este imprimanta specificată. Fiecare driver de imprimantă are un șir de caractere unic. |
SpecVersion |
Un număr întreg care specifică numărul de versiune al structurii DEVMODE în Kitul de dezvoltare de software Win32. |
DriverVersion |
Un număr întreg care specifică numărul de versiune al driverului imprimantei atribuit de dezvoltatorul driverului de imprimantă. |
Size |
Un număr întreg care specifică dimensiunea, în byți, a structurii DEVMODE. (Această valoare nu include membrule opțional dmDriverData pentru datele specifice dispozitivului, care poate urma această structură.) Dacă o aplicație manipulează doar porțiunea independentă de driver a datelor, puteți utiliza acest membru pentru a afla lungimea acestei structuri fără a fi necesar să luați în considerare versiuni diferite. |
DriverExtra |
Un număr întreg care specifică dimensiunea, în byți, a membrului opțional dmDriverData pentru datele specifice de dispozitiv, care poate urma această structură. Dacă o aplicație nu utilizează informații specifice dispozitivului, setați acest membru la 0. |
Fields |
O valoare Lungă care specifică care dintre membrii rămași în structura DEVMODE au fost inițializați. |
Orientation |
Un număr întreg care specifică orientarea hârtiei. Acesta poate fi 1 (portret) sau 2 (vedere). |
PaperSize |
Un număr întreg care specifică dimensiunea hârtiei pe care se imprimă. Dacă setați acest membru la 0 sau 256, lungimea și lățimea hârtiei sunt specificate de membrii PaperLength, respectiv PaperWidth. În caz contrar, puteți seta membrul PaperSize la o valoare predefinită. |
PaperLength |
Un număr întreg care specifică lungimea hârtiei în unități de 1/10 dintr-un milimetru. Acest membru înlocuiește lungimea de hârtie specificată de membrul PaperSize pentru dimensiunile de hârtie particularizate sau pentru dispozitive cum ar fi imprimantele matriciale ce pot imprima pe o varietate de dimensiuni de hârtie. |
PaperWidth |
Un număr întreg care specifică lățimea hârtiei în unități de 1/10 dintr-un milimetru. Acest membru înlocuiește lățimea de hârtie specificată de membrul PaperSize. |
Scale |
Un număr întreg care specifică factorul după care va fi scalată ieșirea imprimării. Dimensiunea de pagină aparentă este scalată din dimensiunea paginii fizice după un factor de scară/100. De exemplu, o foaie de hârtie cu dimensiunea de 21,6 pe 28 cm (dimensiune Letter) cu o valoare de scară de 50 ar conține la fel de multe date ca o pagină cu dimensiunea de 43,2 pe 56 cm, deoarece textul de ieșire și ilustrațiile ar fi la jumătate din înălțimea și lățimea lor originale. |
Copies |
Un număr întreg care specifică numărul de copii imprimate, dacă dispozitivul de imprimare acceptă copierea mai multor pagini. |
DefaultSource |
Un număr întreg care specifică recipientul implicit din care se va face alimentarea cu hârtie. |
PrintQuality |
Un număr întreg care specifică rezoluția imprimantei. Valorile sunt –4 (mare), –3 (mediu), –2 (minim) și –1 (schiță). |
Color |
Un număr întreg. Pentru o imprimantă color, specifică dacă ieșirea să fie imprimată color. Valorile sunt 1 (color) și 2 (monocrom). |
Duplex |
Un număr întreg. Pentru o imprimantă cu capacități de imprimare duplex, specifică dacă ieșirea este imprimată pe ambele fețe ale hârtiei. Valorile sunt 1 (simplex), 2 (orizontal) și 3 (vertical). |
YResolution |
Un număr întreg care specifică rezoluția y a imprimantei în puncte pe inchi (dpi). Dacă imprimanta inițializează acest membru, membrul PrintQuality specifică rezoluția x a imprimantei în dpi. |
TTOption |
Un număr întreg care specifică modalitatea de imprimare a fonturilor TrueType. |
Collate |
Un număr întreg care specifică dacă trebuie utilizată asamblarea atunci când se imprimă mai multe copii. Utilizarea de copii neasamblate oferă rezultate mai rapide și mai eficiente, deoarece datele se trimit imprimantei o singură dată. |
FormName |
Un șir cu un număr maxim de 16 caractere care specifică dimensiunea hârtiei de utilizat; de exemplu, „Letter” sau „Legal”. |
Pad |
O valoare Lungă care este utilizată pentru a completa cu spații, caractere sau valori, pentru versiunile viitoare. |
Bits |
O valoare Lungă care specifică în byți per pixel rezoluția de culori a dispozitivului de afișare. |
PW |
O valoare Lungă care specifică lățimea, în pixeli, a suprafeței vizibile a dispozitivului (ecran sau imprimantă). |
PH |
O valoare Lungă care specifică înălțimea, în pixeli, a suprafeței vizibile a dispozitivului (ecran sau imprimantă). |
DFI |
O valoare Lungă care specifică modul de afișare a dispozitivului. |
DFR |
O valoare Lungă care specifică frecvența, în hertzi (cicluri pe secundă), a dispozitivului de afișare într-un anumit mod. |
Notă: Puteți seta proprietatea PrtDevMode utilizând cod Visual Basic for Applications (VBA).
Această setare de proprietate este în citire/scriere în Vizualizarea proiect sau în Vizualizarea aspect și doar în citire în alte vizualizări.
Driverele de imprimantă pot adăuga date specifice dispozitivelor imediat după cei 94 de byți din structura DEVMODE. Din acest motiv, este important ca datele DEVMODE prezentate mai sus să nu depășească 94 de byți.
Doar driverele de imprimantă care exportă funcția ExtDeviceMode utilizează structura DEVMODE.
O aplicație poate regăsi dimensiunile de hârtie și numele acceptate de o imprimantă utilizând valorile DC_PAPERS, DC_PAPERSIZE și DC_PAPERNAMES pentru a apela funcția DeviceCapabilities.
Înainte de a seta valoarea membrului TTOption, aplicațiile trebuie să afle cum poate un driver de imprimantă să utilizeze fonturi TrueType utilizând valoarea DC_TRUETYPE pentru a apela funcția DeviceCapabilities.
Exemplu
Următorul exemplu utilizează proprietatea PrtDevMode pentru a verifica dimensiunea paginii definite de utilizator pentru un raport:
Private Type str_DEVMODE
RGB As String * 94 End Type Private Type type_DEVMODE strDeviceName As String * 32 intSpecVersion As Integer intDriverVersion As Integer intSize As Integer intDriverExtra As Integer lngFields As Long intOrientation As Integer intPaperSize As Integer intPaperLength As Integer intPaperWidth As Integer intScale As Integer intCopies As Integer intDefaultSource As Integer intPrintQuality As Integer intColor As Integer intDuplex As Integer intResolution As Integer intTTOption As Integer intCollate As Integer strFormName As String * 32 lngPad As Long lngBits As Long lngPW As Long lngPH As Long lngDFI As Long lngDFr As Long End Type Public Sub CheckCustomPage(ByVal rptName As String) Dim DevString As str_DEVMODE Dim DM As type_DEVMODE Dim strDevModeExtra As String Dim rpt As Report Dim intResponse As Integer ' Opens report in Design view. DoCmd.OpenReport rptName, acDesign Set rpt = Reports(rptName) If Not IsNull(rpt.PrtDevMode) Then strDevModeExtra = rpt.PrtDevMode ' Gets current DEVMODE structure. DevString.RGB = strDevModeExtra LSet DM = DevString If DM.intPaperSize = 256 Then ' Display user-defined size. intResponse = MsgBox("The current custom page size is " & _ DM.intPaperWidth / 254 & " inches wide by " & _ DM.intPaperLength / 254 & " inches long. Do you want " & _ "to change the settings?", vbYesNo + vbQuestion) Else ' Currently not user-defined. intResponse = MsgBox("The report does not have a custom page size. " & _ "Do you want to define one?", vbYesNo + vbQuestion) End If If intResponse = vbYes Then ' User wants to change settings. Initialize fields. DM.lngFields = DM.lngFields Or DM.intPaperSize Or _ DM.intPaperLength Or DM.intPaperWidth ' Set custom page. DM.intPaperSize = 256 ' Prompt for length and width. DM.intPaperLength = InputBox("Please enter page length in inches.") * 254 DM.intPaperWidth = InputBox("Please enter page width in inches.") * 254 ' Update property. LSet DevString = DM Mid(strDevModeExtra, 1, 94) = DevString.RGB rpt.PrtDevMode = strDevModeExtra End If End If Set rpt = Nothing End Sub
Următorul exemplu vă arată cum să modificați orientarea raportului. Acest exemplu va comuta orientarea de la portret la vedere sau de la vedere la portret, în funcție de orientarea curentă a raportului.
Public Sub SwitchOrient(ByVal strName As String)
Const DM_PORTRAIT = 1 Const DM_LANDSCAPE = 2 Dim DevString As str_DEVMODE Dim DM As type_DEVMODE Dim strDevModeExtra As String Dim rpt As Report ' Opens report in Design view. DoCmd.OpenReport strName, acDesign Set rpt = Reports(strName) If Not IsNull(rpt.PrtDevMode) Then strDevModeExtra = rpt.PrtDevMode DevString.RGB = strDevModeExtra LSet DM = DevString DM.lngFields = DM.lngFields Or DM.intOrientation ' Initialize fields. If DM.intOrientation = DM_PORTRAIT Then DM.intOrientation = DM_LANDSCAPE Else DM.intOrientation = DM_PORTRAIT End If ' Update property. LSet DevString = DM Mid(strDevModeExtra, 1, 94) = DevString.RGB rpt.PrtDevMode = strDevModeExtra End If Set rpt = Nothing End Sub