Egenskapen Utskriftsenhet

Gäller för

Form-objekt

Report-objekt

Du kan använda egenskapen PrtDevMode för att ange eller returnera information om utskriftsenhetsläge som angetts för ett formulär och en rapport i dialogrutan Skriv ut. Variant för läsa/skriva.

uttryck. PrtDevMode

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

Anmärkningar

Vi rekommenderar starkt att du använder dig av Win32 Software Development Kit för att få fullständig dokumentation om egenskaperna PrtDevMode, PrtDevNames och PrtMip.

Egenskapsinställningen PrtDevMode är en 94-bytestruktur som speglar DEVMODE-strukturen som definieras i Win32 Software Development Kit. Fullständig information om medlemmarna i egenskapen PrtDevMode finns i Win32 Software Development Kit.

PrtDev -lägesegenskapen använder följande medlemmar.

Medlem

Beskrivning

DeviceName

En sträng på 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. Varje skrivardrivrutin har en unik sträng.

SpecVersion

Ett Integer-värde som anger versionsnumret för DEVMODE-strukturen i Win32 Software Development Kit.

DriverVersion

Ett Integer-värde som anger versionsnumret för skrivardrivrutinen som utvecklaren tilldelar skrivardrivrutinen.

Size

Ett Integer-värde som anger DEVMODE-strukturens storlek i byte. (Det här värdet innehåller inte den valfria dmDriverData-medlemmen för enhetsspecifika data, vilken kan följa den här strukturen.) Om ett program bara ändrar den drivrutinsoberoende delen av informationen kan du använda den här medlemmen för att ta reda på längden på strukturen utan att behöva hantera olika versioner.

DriverExtra

Ett Integer-värde som anger den valfria dmDriverData-medlemmens storlek i byte för enhetsspecifika data, som kan följa den här strukturen. Om ett program inte använder enhetsspecifika information anger du värdet 0 för den här medlemmen.

Fields

Ett Long-värde som anger vilka av de återstående medlemmarna i DEVMODE-strukturen som har initieras.

Orientation

Ett Integer-värde som anger papperets orientering. Det kan vara 1 (stående) eller 2 (liggande).

PaperSize

Ett Integer-värde som anger storleken på papperet som utskriften ska göras på. Om du anger den här medlemmens värde till 0 eller 256 definieras papperets längd och bredd av medlemmarna PaperLength respektive PaperWidth. Annars kan du ange PaperSize-medlemmen till ett fördefinierat värde.

PaperLength

Ett Integer-värde som anger papperets längd i enheten 1/10 av en millimeter. Medlemmen åsidosätter papperslängden som anges av PaperSize-medlemmen för anpassade pappersstorlekar eller för enheter som matrisskrivare som kan skriva ut på en mängd olika pappersstorlekar.

PaperWidth

Ett Integer-värde som anger papperets bredd i enheten 1/10 av en millimeter. Medlemmen åsidosätter pappersbredden som anges av PaperSize-medlemmen.

Scale

Ett Integer-värde som anger faktorn som används för att skala utskrivna utdata. Den sidstorlek som visas skalas från den fysiska sidstorleken med en faktor för scale/100. Ett ark som mäter 8,5 gånger 11 tum (brevformat) med scale-värdet 50 skulle till exempel innehåller lika mycket data som en sida som mäter 17 gånger 22 tum, eftersom utdatatexten och utdatagrafiken skulle vara halva sin ursprungliga höjd och bredd.

Copies

Ett Integer-värde som anger antalet exemplar som skrivs ut, om utskriftsenheten har stöd för exemplar med flera sidor.

DefaultSource

Ett Integer-värde som anger standardfacket som papperet matas in från.

PrintQuality

Ett Integer-värde som anger skrivarupplösningen. Värdena är –4 (hög), –3 (medium), –2 (låg) och –1 (utkast).

Color

Ett Integer-värde. För färgskrivare: anger om utdata skrivs ut i färg. Värdena är 1 (färg) och 2 (svartvitt).

Duplex

Ett Integer-värde. För skrivare som klarar dubbelsidig utskrift: Anger om utdata skrivs ut på båda sidor av papperet. Värdena är 1 (simplex), 2 (vågrätt) och 3 (lodrätt).

YResolution

Ett Integer-värde som anger om skrivarens y-upplösning är punkter per tum (dpi). Om skrivaren initierar den här medlemmen anger PrintQuality-medlemmen skrivarens x-upplösning i dpi.

TTOption

Ett Integer-värde som anger hur TrueType-teckensnitt skrivs ut.

Collate

Ett Integer-värde som anger om sortering ska användas när flera exemplar skrivs ut. Att använda osorterade exemplar ger snabbare och mer effektiva utdata eftersom data skickas till skrivaren bara en gång.

FormName

En sträng med högst 16 tecken som anger storleken på pappret som ska användas, till exempel de amerikanska formaten "Letter" eller "Legal".

Pad

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

Bits

Ett Long-värde som anger färgupplösningen på bildskärmsenheten i bitar per bildpunkt.

PW

Ett Long-värde som anger bredden i antal bildpunkter på den yta av enheten som visas (skärm eller skrivare).

PH

Ett Long-värde som anger höjden i antal bildpunkter på den yta av enheten som visas (skärm eller skrivare).

DFI

Ett Long-värde som anger enhetens visningsläge.

DFR

Ett Long-värde som anger frekvensen i hertz (cykler per sekund) för bildskärmen i ett visst läge.


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

Den här egenskapen är läsa/skriva i designvyn eller layoutvyn, och skrivskyddad i andra vyer.

Skrivardrivrutiner kan lägga till enhetsspecifika data direkt efter 94 byte av DEVMODE-strukturen. Det är därför viktigt att DEVMODE-data som beskrivs ovan inte överstiger 94 byte.

Endast skrivardrivrutiner som exporterar funktionen ExtDeviceMode använder DEVMODE-strukturen.

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

Innan du anger värdet för TTOption-medlemmen bör du ta reda på hur en skrivardrivrutinen kan använda TrueType-teckensnitt genom att använda DC_TRUETYPE-värdet för att anropa funktionen DeviceCapabilities.

Exempel

I följande exempel används egenskapen PrtDevMode för att kontrollera den användardefinierade sidstorleken 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 du kan ändra orienteringen för rapporten. I det här exemplet ändras orienteringen från stående till liggande eller 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
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.

×