PrtDevMode (printermodus), eigenschap

Van toepassing op
Access voor Microsoft 365 Access 2021 Access 2019 Access 2016

Van toepassing op

Formulierobject
Report-object

Met de eigenschap PrtDevMode kunt u de modusinformatie van het afdrukapparaat instellen of uitlezen die voor een formulier of rapport is opgegeven in het dialoogvenster Afdrukken. Lezen/schrijven Variant.

expressie.PrtDevMode

Expressie Vereist. Een expressie die een van de objecten in de lijst Van toepassing op retourneert.

Opmerkingen

Het is zeer raadzaam om de Win32 Software Development Kit te raadplegen voor volledige documentatie over de eigenschappen PrtDevMode, PrtDevNames en PrtMip.

De instelling van de eigenschap PrtDevMode is een structuur van 94 bytes die een weerspiegeling vormt van de structuur DEVMODE zoals gedefinieerd in de Win32 Software Development Kit. Raadpleeg de Win32 Software Development Kit voor volledige informatie over de leden van de eigenschap PrtDevMode.

De eigenschap PrtDevMode gebruikt de volgende leden.

Lid Beschrijving
DeviceName Een tekenreeks met een maximum van 32 bytes die de naam aangeeft van het apparaat dat het stuurprogramma ondersteunt, bijvoorbeeld 'HP LaserJet IIISi' als de Hewlett-Packard LaserJet IIISi de opgegeven printer is. Bij elk printerstuurprogramma hoort een unieke tekenreeks.
SpecVersion Een Integer met het versienummer van de structuur DEVMODE in de Win32 Software Development Kit.
DriverVersion Een Integer die het versienummer specificeert van het printerstuurprogramma, zoals toegewezen door de ontwikkelaar van het printerstuurprogramma.
Size Een Integer die in bytes het formaat specificeert van de structuur DEVMODE. (Deze waarde bevat niet het optionele dmDriverData-lid voor apparaatspecifieke gegevens, die deze structuur kunnen volgen.) Als een toepassing alleen het stuurprogramma-onafhankelijke deel van de gegevens manipuleert, kunt u dit lid gebruiken om de lengte van deze structuur te bepalen zonder rekening te hoeven houden met verschillende versies.
DriverExtra Een Integer die in bytes het formaat specificeert van het optionele lid dmDriverData voor apparaatspecifieke gegevens, dat na deze structuur kan worden geplaatst. Als er in een toepassing geen gebruik wordt gemaakt van apparaatspecifieke informatie, stelt u dit lid in op 0.
Fields Een Long-waarde die aangeeft welke van de resterende leden in de structuur DEVMODE zijn geïnitialiseerd.
Orientation Een Integer die de afdrukstand van het papier aangeeft. Deze kan 1 zijn (staand) of 2 (liggend).
PaperSize Een Integer die het formaat aangeeft van het papier waarop wordt afgedrukt. Als u dit lid instelt op 0 of 256, worden de lengte en breedte van het papier respectievelijk bepaald door de leden PaperLength en PaperWidth. Anders kunt u het lid PaperSize instellen op een vooraf gedefinieerde waarde.
PaperLength Een Integer die de lengte van het papier aangeeft in eenheden van 0,1 millimeter. Bij instelling van dit lid wordt de papierlengte genegeerd die wordt gespecificeerd door het lid PaperSize voor aangepaste papierformaten of voor apparaten zoals matrixprinters, die op verschillende papierformaten kunnen afdrukken.
PaperWidth Een Integer die de breedte van het papier aangeeft in eenheden van 0,1 millimeter. Bij instellen van dit lid wordt de papierbreedte genegeerd die wordt gespecificeerd door het lid PaperSize.
Scale Een Integer die de factor aangeeft waarmee het afdrukresultaat wordt geschaald. De resulterende paginagrootte wordt geschaald op basis van de fysieke paginagrootte met een factor schaal/100. Een stuk papier van 8,5 bij 11 inch (Letter-formaat) met een waarde Scale van 50 bevat bijvoorbeeld evenveel gegevens als een pagina van 17 bij 22 inch, aangezien de afgedrukte tekst en graphics half zo hoog en breed zijn als het origineel.
Copies Een Integer die het aantal afgedrukte exemplaren specificeert, indien het afdrukapparaat exemplaren van meerdere pagina's ondersteunt.
DefaultSource Een Integer die de standaardlade specificeert waaruit het papier wordt ingevoerd.
PrintQuality Een Integer die de afdrukresolutie aangeeft. De waarden zijn -4 (hoog), -3 (gemiddeld), -2 (laag) en -1 (concept).
Color Een Integer. Geeft voor een kleurenprinter aan of het resultaat in kleur wordt afgedrukt. De waarden zijn 1 (kleur) en 2 (monochroom).
Duplex Een Integer. Geeft voor een printer die dubbelzijdig kan afdrukken aan of het resultaat op beide kanten van het papier wordt afgedrukt. De waarden zijn 1 (enkelzijdig), 2 (horizontaal) en 3 (verticaal).
YResolution Een Integer die de y-resolutie van de printer aangeeft in punten (dots) per inch (dpi). Als de printer dit lid initialiseert, specificeert het lid PrintQuality de x-resolutie van de printer in dpi.
TTOption Een Integer die specificeert hoe TrueType-lettertypen worden afgedrukt.
Collate Een Integer die aangeeft of de exemplaren moeten worden gesorteerd als er meerdere exemplaren worden afgedrukt. Niet-gesorteerde exemplaren afdrukken geeft een sneller, efficiënter resultaat omdat de gegevens maar één keer naar de printer hoeven te worden gestuurd.
FormName Een tekenreeks van maximaal 16 tekens dat het formaat aangeeft van het gebruikte papier, bijvoorbeeld 'Letter' of 'Legal'.
Pad Een Long-waarde die wordt gebruikt voor het opvullen van spaties, tekens of waarden voor toekomstige versies.
Bits Een Long-waarde die in bits per pixel de kleurenresolutie van het weergaveapparaat specificeert.
PW Een Long-waarde die in pixels de breedte specificeert van het zichtbare apparaatoppervlak (scherm of printer).
PH Een Long-waarde die in pixels de hoogte specificeert van het zichtbare apparaatoppervlak (scherm of printer).
DFI Een Long-waarde die de weergavemodus van het apparaat specificeert.
DFR Een Long-waarde die in hertz (cycli per seconde) de frequentie van het weergaveapparaat in een bepaalde modus specificeert.

      

Opmerking

U kunt de eigenschap PrtDevMode met VBA-code (Visual Basic for Applications) instellen.

Deze eigenschapsinstelling is lezen/schrijven in de ontwerpweergave en de indelingsweergave, en alleen-lezen in andere weergaven.

Printerstuurprogramma's kunnen direct na de 94 bytes van de structuur DEVMODE apparaatspecifieke gegevens toevoegen. Het is belangrijk dat informatie die is opgenomen na de eerste 94 bytes van de DEVMODE-gegevens, niet wordt overschreven.

Alleen printerstuurprogramma's die de functie ExtDeviceMode exporteren, maken gebruik van de structuur DEVMODE.

De papierformaten en -namen die op de printer worden ondersteund, kunnen worden opgehaald door de functie DeviceCapabilities aan te roepen met de waarden DC_PAPERS, DC_PAPERSIZE en DC_PAPERNAMES.

Voordat de waarde van het lid TTOption wordt ingesteld, moet eerst worden bepaald hoe een printerstuurprogramma TrueType-lettertypen kan gebruiken. Hiertoe wordt met de waarde DC_TRUETYPE de functie DeviceCapabilities aangeroepen.

Voorbeeld

In het onderstaande voorbeeld wordt met behulp van de eigenschap PrtDevMode gecontroleerd welk papierformaat de gebruiker voor een rapport heeft gedefinieerd:

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

In het volgende voorbeeld ziet u hoe u de afdrukstand van het rapport kunt wijzigen. Met dit voorbeeld wordt de afdrukstand Staand gewijzigd in Liggend of omgekeerd, afhankelijk van de huidige afdrukstand van het rapport.

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