Egenskapen PrtDevMode

Viktigt!: Den här artikeln är maskinöversatt, se ansvarsfriskrivningen. Den engelska versionen av den här artikeln finns här för din referens.

Gäller för

Objektet Form

Objektet Report

Använd egenskapen PrtDevMode när du vill ange eller returnera lägesinformation för utskriftsenheten som anges för ett formulär eller en rapport i dialogrutan Skriv ut. Läs-/skrivbart värde av datatypen Variant.

uttryck.PrtDevMode

uttryck Obligatoriskt. Ett uttryck som returnerar ett av objekten i listan Gäller för.

Kommentarer

Det rekommenderas starkt att du utnyttjar Win32 Software Development Kit där det finns fullständig dokumentation till egenskaperna PrtDevMode, PrtDevNames och PrtMip.

Inställningen på egenskapen PrtDevMode är en 94-bytestruktur som avspeglar den DEVMODE-struktur som definieras i Win32 Software Development Kit. Fullständig information om PrtDevMode-egenskapsmedlemmarna finns i Win32 Software Development Kit.

Egenskapen PrtDevläge har följande medlemmar.

Medlem

Beskrivning

DeviceName

En sträng med högst 32 byte som anger namnet på enheten som drivrutinen stöder, till exempel "HP LaserJet IIISi" om Hewlett-Packard LaserJet IIISi är den angivna skrivaren. Alla skrivardrivrutiner har en unik sträng.

SpecVersion

En heltal som anger versionsnummer för DEVMODE-strukturen i Win32 Software Development Kit.

DriverVersion

Ett heltal som anger skrivardrivrutinens versionsnummer som är tilldelat av drivrutinens utvecklare.

Size

Ett heltal som anger storlek på DEVMODE-strukturen, i byte. (I det här värdet ingår inte den valfria dmDriverData-medlemmen för enhetsspecifika data, som kan följa den här strukturen.) Om ett program bara manipulerar den drivrutinsoberoende delen av data, kan du använda den här medlemmen för att ta reda på strukturens längd utan att ta hänsyn till olika versioner.

DriverExtra

Ett heltal som anger storlek, i byte, på den valfria medlemmen dmDriverData för enhetsspecifika data, som kan följa den här strukturen. Om ett program inte använder enhetsspecifik information, anger du den här medlemmen till 0.

Fields

A långt heltal som anger vilken av de återstående medlemmarna i DEVMODE-strukturen har initierats.

Orientation

Ett heltal som anger papperets orientering. Det kan vara 1 (stående) eller 2 (liggande).

PaperSize

Ett heltal som anger storleken på papperet som du ska skriva ut på. Om du anger den här medlemmen till 0 eller 256, anges längden och bredden på papperet av medlemmarna PaperLength respektive PaperWidth. Annars kan du ange medlemmen PaperSize till ett fördefinierat värde.

PaperLength

Ett heltal som anger papperets längd i enheter om 1/10 millimeter. Den här medlemmen åsidosätter papperslängden som anges med medlemmen PaperSize för egna pappersstorlekar eller för enheter som matrisskrivare, vilka kan skriva ut på en mängd olika pappersstorlekar.

PaperWidth

Ett heltal som anger papperets bredd i enheter om 1/10 millimeter. Den här medlemmen åsidosätter pappersbredden som anges med medlemmen PaperSize.

Scale

Ett heltal som anger faktorn som utskriften ska skalas efter. Sidstorleken skalas från den fysiska sidstorleken med faktorn scale/100. Ett papper med till exempel måtten 210 gånger 297 mm (storleken A4) med värdet 50 på Scale kommer att innehålla lika mycket data som en sida med måtten 420 gånger 894 mm, eftersom utdatatexten och -grafiken får halva den ursprungliga höjden och bredden.

Copies

Ett heltal som anger antalet kopior som ska skrivas ut om utskriftsenheten har stöd för flersidiga kopior.

DefaultSource

Ett heltal som anger standardfacket som papper matas från.

PrintQuality

Ett heltal som anger skrivarens upplösning. Värdena är -4 (hög), -3 (medel), -2 (låg) och -1 (utkast).

Color

Ett heltal. För en färgskrivare anger detta om utskriften sker i färg. Värdena är 1 (färg) och 2 (monokrom).

Duplex

Ett heltal. För en skrivare som klarar dubbelsidig utskrift anger detta om utdata skrivs ut på båda sidorna av papperet. Värdena är 1 (enkelsidig), 2 (vågrät) och 3 (lodrät).

YResolution

Ett heltal som anger y-upplösningen för skrivaren i punkter per tum (dpi). Om skrivaren initierar den här medlemmen, anger PrintQuality-medlemmen x-upplösningen för skrivare i dpi.

TTOption

Ett heltal som anger hur TrueType-teckensnitt skrivs ut.

Collate

Ett heltal som anger om sortering ska användas när flera kopior skrivs ut. Om du inte sorterar kopiorna går utskriften snabbare, eftersom data då bara skickas till skrivaren en gång.

FormName

En sträng med högst 16 tecken som anger storleken på papperet som ska användas, till exempel "A4" eller "A5".

Pad

Ett värde av datatypen Long som används för att fylla ut mellanrum, tecken eller värden för framtida versioner.

Bits

Ett värde av datatypen Long som anger utskriftsenhetens färgupplösning, i bitar per bildpunkt.

PW

Ett värde av datatypen Long som anger bredd, i bildpunkter, för den synliga enhetsytan (skärm eller skrivare).

PH

Ett värde av datatypen Long som anger höjd, i bildpunkter, för den synliga enhetsytan (skärm eller skrivare).

DFI

Ett värde av datatypen Long som anger enhetens visningsläge.

DFR

Ett värde av datatypen Long som anger frekvens, i hertz (cykler per sekund), för bildskärmsenheten i ett visst läge.


Obs!: Du kan ange egenskapen PrtDevMode med Visual Basic for Applications (VBA) kod.

Den här egenskapsinställningen är läs-/skrivbar i designvyn och layoutvyn, och skrivskyddad i andra vyer.

Skrivardrivrutiner kan infoga enhetsspecifika data omedelbart efter DEVMODE-strukturens 94 byte. Därför är det viktigt att de DEVMODE-data som beskrivs ovan inte överskrider 94 byte.

Det är bara skrivardrivrutiner som exporterar funktionen ExtDeviceMode som använder DEVMODE-strukturen.

Ett program kan hämta pappersstorlekar och namn som stöds av en skrivare genom att anropa funktionen DeviceCapabilities med värdena DC_PAPERS, DC_PAPERSIZE och DC_PAPERNAMES.

Innan programmen anger värdet på en TTOption-medlem, måste de ta reda på hur en skrivardrivrutin kan använda TrueType-teckensnitt genom att anropa funktionen DeviceCapabilities med värdet DC_TRUETYPE.

Exempel

I följande exempel används egenskapen PrtDevMode för att kontrollera den användardefinierade pappersstorleken för 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

I följande exempel visas hur rapportens orientering ändras. I exemplet byts orienteringen från stående till liggande eller från liggande till stående beroende på rapportens aktuella orientering.

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

Obs!: Ansvarsfriskrivning för maskinöversättning: Den här artikeln har översatts av ett datorsystem utan mänsklig inblandning. Microsoft erbjuder dessa maskinöversättningar för att hjälpa icke engelskspråkiga användare att ta del av information om Microsofts produkter, tjänster och tekniker. Eftersom artikeln är maskinöversatt kan den innehålla fel i ordval, syntax och grammatik.

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×