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 * 94End TypePrivate 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 LongEnd TypePublic 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 = NothingEnd 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 = NothingEnd Sub