PrtDevMode, propriété

Important :  Cet article a été traduit automatiquement, voir l’avertissement. Vous pouvez consulter la version en anglais de cet article ici.

S'applique à

Objet Form

Objet Report

La propriété PrtDevMode permet de définir ou de renvoyer des informations relatives au mode du périphérique d'impression pour un formulaire ou un état dans la boîte de dialogue Imprimer. Type de données Variante en lecture/écriture.

expression.PrtDevMode

expression Obligatoire. Expression qui renvoie l'un des objets de la liste S'applique à.

Remarques

Nous vous conseillons vivement de consulter le Kit de développement logiciel Win32 pour obtenir une documentation complète sur les propriétés PrtDevMode, PrtDevNames et PrtMip.

Le paramètre de la propriété PrtDevMode est une structure à 94 octets qui reflète la structure DEVMODE définie dans le Kit de développement logiciel Win32. Pour en savoir plus sur les membres de la propriété PrtDevMode, veuillez consulter ce SDK.

La propriété deModePrtDevutilise les membres suivants.

Membre

Description

DeviceName

chaîne de 32 octets maximum spécifiant le nom du périphérique pris en charge par le pilote. Par exemple, « HP LaserJet IIISi » si cette dernière est l'imprimante spécifiée. Chaque imprimante est représentée par une chaîne unique.

SpecVersion

Un entier qui spécifie le numéro de version de la structure DEVMODE dans le Kit de développement logiciel Win32.

DriverVersion

Entier qui spécifie le numéro de version du pilote d'imprimante affecté par son développeur.

Taille

Entier qui spécifie la taille, en octets, de la structure DEVMODE. (Cette valeur ne comprend pas le membre dmDriverData facultatif pour les données spécifiques au périphérique qui peut suivre cette structure.) Si une application utilise uniquement la partie indépendante du pilote, vous pouvez utiliser ce membre pour rechercher la longueur de cette structure sans avoir à tenir compte des différentes versions.

DriverExtra

Entier qui spécifie la taille, en octets, du membre dmDriverData facultatif pour les données spécifiques au périphérique qui peut suivre cette structure. Si une application n'utilise aucune information spécifique au périphérique, définissez ce membre sur 0.

Fields

A valeur de type Long qui indique les autres membres de la structure DEVMODE ont été initialisés.

Orientation

Entier qui spécifie l'orientation du papier. La valeur peut être 1 (portrait) ou 2 (paysage).

PaperSize

Entier qui spécifie la taille du papier d'impression. Si vous définissez ce membre sur 0 ou 256, la longueur et la largeur du papier sont respectivement spécifiés par les membres PaperLength et PaperWidth. Sinon, vous pouvez attribuer une valeur prédéfinie au membre PaperSize.

PaperLength

Entier qui spécifie la longueur du papier en 1/10è de millimètre. Ce membre prévaut sur la longueur de papier spécifiée par le membre PaperSize pour les papiers personnalisés ou les périphériques du type imprimantes matricielles qui peuvent imprimer sur divers formats de papier.

PaperWidth

Entier qui spécifie la largeur du papier en 1/10è de millimètre. Ce membre prévaut sur la largeur de papier spécifiée par le membre PaperSize.

Échelle

Entier qui spécifie le facteur de mise à l'échelle de la sortie imprimée. La taille de page apparente est mise à l'échelle à partir de la taille de page physique par un facteur de échelle/100. Par exemple, une feuille de papier de format Lettre avec une valeur Scale de 50 contient autant de données qu'une page de 43 x 55 cm car la taille du texte et des graphiques est diminuée de moitié.

Copies

Entier qui spécifie le nombre de copies imprimées si le périphérique d'impression prend en charge les copies de plusieurs pages.

DefaultSource

Entier qui spécifie le bac d'alimentation du papier par défaut.

PrintQuality

Entier qui spécifie la résolution de l'imprimante. Les valeurs sont –4 (haute), –3 (moyenne), –2 (faible), and –1 (brouillon).

Couleur

Entier. Pour une imprimante couleur, indique si la sortie est imprimée en couleur. Les valeurs sont 1 (couleur) et 2 (monochrome).

Duplex

Entier. Pour une imprimante prenant en charge l'impression recto verso, spécifie si la sortie est imprimée sur les deux côtés du papier. Les valeurs sont 1 (recto), 2 (horizontal) et 3 (vertical).

YResolution

Entier qui spécifie la résolution Y de l'imprimante en points par pouce (ppp). Si l'imprimane initialise ce membre, le membre PrintQuality spécifie la résolution X de l'imprimante en ppp.

TTOption

Entier qui spécifie la manière dont les polices TrueType sont imprimées.

Collate

Entier qui détermine l'utilisation ou non du classement lors de l'impression de plusieurs copies. La sortie de copies non classées est plus rapide et efficace, car les données ne sont envoyées qu'une seule fois à l'imprimante.

FormName

Chaîne de 16 caractères maximum qui spécifie le format de papier à utiliser. Par exemple, Lettre ou Legal.

Pad

Valeur Longue utilisée pour ajouter des espaces, des caractères ou des valeurs aux futures versions.

Bits

Valeur Longue qui spécifie en bits par pixel la résolution couleur du périphérique d'affichage.

PW

Valeur Longue qui spécifie la largeur, en pixels, de la surface visible du périphérique (écran ou imprimante).

PH

Valeur Longue qui spécifie la hauteur, en pixels, de la surface visible du périphérique (écran ou imprimante).

DFI

Valeur Longue qui spécifie le mode d'affichage du périphérique.

DFR

Valeur Longue qui spécifie la fréquence, en hertz (cycles par seconde), du périphérique d'affichage dans un mode précis.


Remarque : Vous pouvez définir la propriété PrtDevMode avec Visual Basic pour Applications (VBA).

Le paramètre de cette propriété est en lecture/écriture en mode Création et Mise en forme, et en lecture seule dans les autres modes.

Les pilotes d'imprimante peuvent ajouter des données spécifiques au périphérique juste après les 94 octets de la structure DEVMODE. Il est donc important que les données DEVMODE présentées plus haut ne dépassent pas 94 octets.

Seuls les pilotes d'imprimante qui exportent la fonction ExtDeviceMode utilisent la structure DEVMODE.

Une application peut extraire les formats et noms de papier pris en charge par une imprimante en utilisant les valeurs DC_PAPERS, DC_PAPERSIZE et DC_PAPERNAMES pour invoquer la fonction DeviceCapabilities.

Avant de définir la valeur du membre TTOption, les applications doivent savoir comment un pilote d'imprimante utilise les polices TrueType en utilisant la valeur DC_TRUETYPE pour invoquer la fonction DeviceCapabilities.

Exemple

L'exemple suivant utilise la propriété PrtDevMode pour vérifier la taille de page personnalisée d'un état :

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

L'exemple suivant montre comment changer l'orientation de l'état. Il passe de l'orientation portrait à paysage et inversement, en fonction de l'orientation active de l'état.

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

Remarque : Avertissement traduction automatique : cet article a été traduit par un ordinateur, sans intervention humaine. Microsoft propose cette traduction automatique pour offrir aux personnes ne maîtrisant pas l’anglais l’accès au contenu relatif aux produits, services et technologies Microsoft. Comme cet article a été traduit automatiquement, il risque de contenir des erreurs de grammaire, de syntaxe ou de terminologie.

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×