Vzťahuje sa na
Objekt Formulár |
Objekt Report |
Vlastnosť PrtDevMode môžete použiť na nastavenie alebo vrátenie informácii o režime tlačového zariadenia, ktoré sú špecifikované pre formulár alebo zostavu v dialógovom okne Tlačiť. Variant na čítanie a zapisovanie.
výraz.PrtDevMode
Výraz Povinný argument. Výraz, ktorý vráti jeden z objektov v zozname Vzťahuje sa na.
Poznámky
Dôrazne sa odporúča pozrieť si úplnú dokumentáciu k vlastnostiam PrtDevMode, PrtDevNames a PrtMip v súprave Win32 Software Development Kit.
Vlastnosť PrtDevMode je 94-bajtová štruktúra, ktorá zrkadlí štruktúru DEVMODE definovanú v súprave Win32 Software Development Kit. Úplné informácie o členoch vlastnosti PrtDevMode získate v súprave Win32 Software Development Kit.
Vlastnosť PrtDevMode používa nasledovných členov.
Člen |
Popis |
Názov zariadenia |
Reťazec podporuje maximálne 32 bajtov, ktoré určujú názov zariadenia podporovaného ovládačom, napríklad HP LaserJet IIISi, ak je zadanou tlačiarňou Hewlett-Packard LaserJet IIISi. Každý ovládač tlačiarne má jedinečný reťazec. |
SpecVersion |
Celé číslo, ktoré určuje číslo verzie štruktúry DEVMODE v súprave Win32 Software Development Kit. |
DriverVersion |
Celé číslo, ktoré určuje číslo verzie ovládača tlačiarne a ktoré priradil vývojár ovládača tlačiarni. |
Veľkosť |
Celé číslo, ktoré určuje veľkosť štruktúry DEVMODE v bajtoch. (Táto hodnota nezahŕňa voliteľného člena dmDriverData týkajúceho sa údajov špecifických pre zariadenie, ktoré môžu využívať túto štruktúru.) Ak aplikácia pracuje iba s časťou údajov, ktoré sú nezávislé na ovládači, môžete tohto člena používať na zisťovanie dĺžky štruktúry bez nutnosti zohľadňovania rôznych verzií. |
DriverExtra |
Celé číslo, ktoré určuje veľkosť voliteľného člena dmDriverData týkajúceho sa údajov špecifických pre zariadenie, ktoré môžu využívať túto štruktúru. Ak aplikácia nepoužíva informácie špecifické pre zariadenie, nastavte tohto člena na hodnotu 0. |
Polia |
Hodnota Long, ktorá určuje, ktorí zo zostávajúcich členov štruktúry DEVMODE boli inicializovaní. |
Orientácia |
Celé číslo, ktoré určuje orientáciu papiera. Môže mať hodnotu 1 (na výšku) alebo 2 (na šírku). |
Veľkosť papiera |
Celé číslo, ktoré určuje veľkosť papiera, ktorý sa použije pri tlači. Ak nastavíte tohto člena na hodnotu 0 alebo 256, dĺžka a šírka papiera budú určené členmi PaperLength a PaperWidth. Ak nie, môžete nastaviť člena Veľkosť papiera na preddefinovanú hodnotu. |
PaperLength |
Celé číslo, ktoré určuje dĺžku papiera v jednotkách s veľkosťou minimálne 1/10 milimetra. Tento člen prepíše dĺžku papiera, ktorá je zadaná pomocou člena Veľkosť papiera pre vlastné veľkosti papiera alebo pre zariadenia ako ihličkové tlačiarne, ktoré dokážu tlačiť na papieri s rôznymi veľkosťami. |
PaperWidth |
Celé číslo, ktoré určuje šírku papiera v jednotkách s veľkosťou minimálne 1/10 milimetra. Tento člen prepíše šírku papiera, ktorá je zadaná pomocou člena Veľkosť papiera. |
Mierka |
Celé číslo, ktoré určuje koeficient, ktorým sa mení mierka tlačeného výstupu. Pravá veľkosť strany sa stanovuje zmenou mierky skutočnej veľkosti strany a koeficientu mierka/100. Napríklad papier s rozmermi 8,5 x 11 palcov (listový formát) s mierkou v hodnote 50 by obsahoval rovnaký počet údajov ako strana s rozmermi 17 x 22 palcov, pretože výsledný text a grafika by mali iba polovicu ich pôvodnej výšky a šírky. |
Kópie |
Celé číslo, ktoré určuje počet kópií na vytlačenie, ak zariadenie podporuje viacstranového kópie. |
DefaultSource |
Celé číslo, ktoré určuje predvolený zásobník, z ktorého sa podáva papier. |
PrintQuality |
Celé číslo, ktoré určuje rozlíšenie tlačiarne. Hodnoty sú – 4 (vysoká), – 3 (stredná) – 2 (nízka), a -1 (koncept). |
Farba |
Celé číslo. Vo farebných tlačiarňach určuje, či sa má tlačiť farebne alebo nie. Hodnoty sú 1 (farebne) a 2 (čiernobielo). |
Obojstranne |
Celé číslo. V tlačiarňach umožňujúcich obojstrannú tlač určuje, či sa má tlačiť na oboch stranách papiera. Hodnoty sú 1 (jednostranne), 2 (vodorovne) a 3 (zvislo). |
YResolution |
Celé číslo, ktoré určuje rozlíšenie na osi y tlačiarne v počte bodov na palec (dpi). Ak tlačiareň inicializuje tohto člena, člen PrintQuality určuje rozlíšenie na osi x tlačiarne v dpi. |
TTOption |
Celé číslo, ktoré určuje, ako sa vytlačia písma TrueType. |
Zoradiť |
Celé číslo, ktoré určuje, či sa má pri tlači viacerých kópií použiť zoradenie. Nezoradenie kópií znamená rýchlejšiu a efektívnejšiu tlač, pretože údaje sa do tlačiarne odosielajú iba raz. |
FormName |
Reťazec s maximálne 16 znakmi, ktorý určuje veľkosť použitého papiera, napríklad Letter alebo Legal. |
Pad |
Hodnota Long, ktorá sa používa ako výplň pre medzery, znaky alebo hodnoty v budúcich verziách. |
Bits |
Hodnota Long, ktorá určuje farebné rozlíšenie v bitoch na pixel zobrazovacieho zariadenia. |
PW |
Hodnota Long, ktorá určuje šírku v pixeloch viditeľnej plochy zariadenia (obrazovky alebo tlačiarne). |
PH |
Hodnota Long, ktorá určuje výšku v pixeloch viditeľnej plochy zariadenia (obrazovky alebo tlačiarne). |
DFI |
Hodnota Long, ktorá určuje režim zobrazenia zariadenia. |
DFR |
Hodnota Long, ktorá určuje frekvenciu v Hz (cykly za sekundu) zobrazovacieho zariadenia v konkrétnom režime. |
Poznámka: Vlastnosť PrtDevMode môžete nastaviť pomocou kódu programu Visual Basic for Applications (VBA).
Táto vlastnosť je v návrhovom zobrazení alebo zobrazení rozloženia nastavená na čítanie a zapisovanie, a v ostatných zobrazeniach iba na čítanie.
Ovládače tlačiarní môžu pridávať údaje špecifické pre zariadenie hneď po 94 bajtoch štruktúry DEVMODE. Z tohto dôvodu je dôležité, aby údaje štruktúry DEVMODE neprekračovali veľkosť 94 bajtov.
Štruktúru DEVMODE môžu používať iba ovládače tlačiarní, ktoré exportujú funkciu ExtDeviceMode.
Aplikácia môže načítať veľkosti a názvy papiera podporované tlačiarňou vykonaním funkcie DeviceCapabilities pomocou hodnôt DC_PAPERS, DC_PAPERSIZE a DC_PAPERNAMES.
Pred nastavením hodnoty člena TTOption by aplikácie mali zistiť, ako ovládač tlačiarne používa písma TrueType vykonaním funkcie DeviceCapabilities pomocou hodnoty DC_TRUETYPE.
Príklad
V nasledujúcom príklade sa používa vlastnosť PrtDevMode na kontrolu veľkosti strany zadanej používateľom pre zostavu:
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
Nasledujúci príklad popisuje zmenu orientácie zostavy. V tomto príklade sa uskutoční zmena z orientácie Na výšku na orientáciu Na šírku alebo z orientácie Na šírku na orientáciu Na výšku v závislosti od aktuálnej orientácie zostavy.
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