Egenskaben PrtDevMode

Gælder for

Formularobjekt

Rapportobjekt

Du kan bruge egenskaben PrtDevMode til at angive eller returnere tilstandsoplysninger om en udskrivningsenhed, der er angivet for en formular eller en rapport i dialogboksen Udskriv. Variant med læse/skriveadgang.

udtryk.PrtDevMode

udtryk Obligatorisk. Et udtryk, der returnerer et af objekterne på listen Gælder for.

Bemærkninger

Det anbefales kraftigt at læse Win32 Software Development Kit, der indeholder en udførlig dokumentation til egenskaberne PrtDevMode, PrtDevNames og PrtMip.

Indstillingen for egenskaben PrtDevMode er en 94-byte-struktur, der afspejler den DEVMODE-struktur, der er defineret i Win32 Software Development Kit. Yderligere oplysninger om PrtDevMode-egenskabsmedlemmer finder du i Win32 Software Development Kit.

Egenskaben PrtDevMode anvender følgende medlemmer.

Medlem

Beskrivelse

DeviceName

En streng med maksimalt 32 byte, der angiver navnet på den enhed, som driveren understøtter – f.eks. "HP LaserJet IIISi", hvis Hewlett-Packard LaserJet IIISi er den angivne printer. Hver printerdriver har en entydig streng.

SpecVersion

Et datatypen Heltal, der angiver versionsnummeret for DEVMODE-strukturen i Win32 Software Development Kit.

DriverVersion

Et Heltal, der angiver versionsnummeret på den printerdriver, som er tildelt af udvikleren af printerdriveren.

Størrelse

Et Heltal, der angiver størrelsen af DEVMODE-strukturen målt i byte (denne værdi omfatter ikke det valgfri dmDriverData-medlem for enhedsspecifikke data, som kan følge denne struktur). Hvis et program kun manipulerer den driveruafhængige del af dataene, kan du bruge dette medlem til at finde længden af denne struktur uden at skulle tage højde for forskellige versioner.

DriverExtra

Et Heltal, der angiver størrelsen udtrykt i byte af det valgfri dmDriverData-medlem for enhedsspecifikke data, som kan følge denne struktur. Hvis disse enhedsspecifikke oplysninger ikke bruges af et program, kan du angive medlemmet til 0.

Fields

En Datatypen Lang værdi, der angiver, hvilke af de resterende medlemmer i DEVMODE-strukturen, der er initialiseret.

Retning

Et Heltal, der angiver papirets retning. Det kan enten være 1 (stående) eller 2 (liggende).

PaperSize

Et heltal, der angiver størrelsen på det papir, der skal udskrives på. Hvis dette medlem angives til 0 eller 256, angives længden og bredden af papir ved hjælp af indstillingerne PaperLength og PaperWidth. Ellers kan du angive PaperSize-indstillingen til en foruddefineret værdi.

PaperLength

Et heltal, der angiver papirlængden i enheder af 1/10 millimeter. Denne indstilling tilsidesætter den papirlængde, der er angivet af PaperSize-indstillingen for brugerdefinerede papirstørrelser eller for enheder som matrixprintere, der kan udskrive på mange forskellige papirstørrelser.

PaperWidth

Et heltal, der angiver papirbredden i enheder af 1/10 millimeter. Denne indstilling tilsidesætter den papirbredde, der er angivet af PaperSize-indstillingen.

Decimaler

Et heltal, der angiver den faktor, som udskriften skaleres med. Den tilsyneladende sidestørrelse skaleres på grundlag af den fysiske sidestørrelse med skaleringsfaktoren/100. En side i Letter-størrelse med skaleringsværdien 50 kan indeholde lige så mange data som en side med målene 17 x 22 tommer, fordi den udskrevne tekst og de udskrevne billeder er halvt så høje og halvt så brede som originalen.

Copies

Et heltal, der angiver antallet af kopier, som udskrives, hvis udskriftsenheden understøtter kopier med flere sider.

DefaultSource

Et heltal, der angiver den bakke, papiret som standard indføres fra.

PrintQuality

Et heltal, der angiver printeropløsningen. De tilgængelige værdier er -4 (høj), -3 (mellem), -2 (lav) og -1 (kladde).

Farve

Et heltal. I forbindelse med en farveprinter angiver denne værdi, om der udskrives i farver. Værdierne er 1 (farve) og 2 (sort-hvid).

Duplex

Et heltal. I forbindelse med en printer, der kan udskrive i duplex, angiver værdien, om der skal udskrives på begge sider af papiret. De tilgængelige værdier er 1 (simplex), 2 (vandret) og 3 (lodret).

YResolution

Et heltal, der angiver y-opløsningen af printeren i punkter pr. tomme (dpi). Hvis printeren initialiserer denne indstilling, angiver PrintQuality-indstillingen x-opløsningen for printeren i punkter pr. tomme.

TTOption

Et heltal, der angiver, hvordan TrueType-skrifttyper udskrives.

Collate

Et heltal, der angiver, om der skal anvendes sortering ved udskrivning af flere kopier. Hvis kopierne ikke sorteres sætvis, er udskrivningen hurtigere, da dataene kun sendes til printeren én gang.

FormName

En streng bestående af maksimalt 16 tegn, der angiver størrelsen på papiret, der skal bruges, f.eks. "Letter" eller "Legal".

Pad

En langt heltal, der bruges til at udfylde mellemrum, tegn eller værdier til fremtidige versioner.

Bits

Et langt heltal, der i bit pr. pixel angiver skærmens farveopløsning.

PW

Et langt heltal, der angiver bredden, i pixel, af enhedens synlige overflade (skærm eller printer).

PH

Et langt heltal, der angiver højden, i pixel, af enhedens synlige overflade (skærm eller printer).

DFI

Et langt heltal, der angiver enhedens visningstilstand.

DFR

Et langt heltal, der angiver skærmens frekvens i hertz (cyklusser pr. sekund) i en bestemt tilstand.


Bemærk: Du kan indstille egenskaben PrtDevMode ved hjælp af Visual Basic for Applications (VBA)-kode.

Denne egenskabsindstilling har læse/skriveadgang i design- eller layoutvisning og er skrivebeskyttet i andre visninger.

Printerdrivere kan tilføje enhedsspecifikke data umiddelbart efter DEVMODE-strukturens 94 byte. Derfor er det vigtigt, at de DEVMODE-data, der er beskrevet ovenfor, ikke overstiger 94 byte.

Der er kun printerdrivere, der eksporterer funktionen ExtDeviceMode, der bruger DEVMODE-strukturen.

Et program kan hente de papirstørrelser og -navne, der understøttes af en printer, ved hjælp af de DC_PAPERS-, DC_PAPERSIZE- og DC_PAPERNAMES-værdier, der kalder funktionen DeviceCapabilities.

Inden du angiver værdien af TTOption-indstillingen, skal programmer finde ud af, hvordan en printerdriver kan bruge TrueType-skrifttyper ved at bruge DC_TRUETYPE-værdien til at kalde funktionen DeviceCapabilities.

Eksempel

I følgende eksempel bruges egenskaben PrtDevMode til at kontrollere den brugerdefinerede sidestørrelse til en rapport:

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

Følgende eksempel viser, hvordan udskrivningsretningen ændres for rapporten. I eksemplet ændres retningen fra stående til liggende eller liggende til stående alt efter rapportens aktuelle retning.

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
Del Facebook Facebook Twitter Twitter Mail Mail

Var disse oplysninger nyttige?

Fantastisk! Har du mere feedback?

Hvordan kan vi forbedre det?

Tak for din feedback!

×