PrtDevMode, propriété

S’applique à

Objet Form

Objet Report

La propriété ModePérImp permet de définir ou de renvoyer les informations relatives au mode du périphérique d’impression spécifiées pour un formulaire ou un état dans la boîte de dialogue Imprimer. Variant en lecture/écriture.

expression.ModePérImp

expression Obligatoire. Expression qui renvoie l’un des objets figurant dans la liste S’applique à.

Remarques

Pour une complète documentation sur les propriétés ModePérImp, NomsPérImp et PrtMip, il est vivement recommandé de consulter le Kit de développement logiciel (SDK) Win32.

La définition de propriété ModePérImp est une structure de 94 octets qui reflète la structure DEVMODE définie dans le Kit de développement logiciel (SDK) Win32. Pour plus d’informations sur les membres de la propriété ModePérImp, consultez le Kit de développement logiciel (SDK) Win32.

La propriété ModePérImp utilise les membres suivants.

Membre

Description

DeviceName

chaîne de maximum 32 octets spécifiant le nom du périphérique que le pilote prend en charge, par exemple, « HP LaserJet IIISi » si l’imprimante spécifiée est du modèle Hewlett-Packard LaserJet IIISi. À chaque pilote d’imprimante correspond une chaîne unique.

SpecVersion

Entier spécifiant le numéro de version de la structure DEVMODE dans le Kit de développement logiciel (SDK) Win32.

DriverVersion

Entier spécifiant le numéro de version du pilote d’imprimante assigné par le développeur de pilote d’imprimante.

Size

Entier spécifiant la taille, en octets, de la structure DEVMODE (cette valeur n’inclut pas le membre dmDriverData facultatif pour les données spécifiques de l’appareil qui peuvent suivre cette structure). Si une application manipule uniquement la partie des données indépendante du pilote, vous pouvez utiliser ce membre pour déterminer la longueur de cette structure sans avoir à prendre en compte différentes versions.

DriverExtra

Entier spécifiant la taille, en octets, du membre dmDriverData facultatif pour les données spécifiques de l’appareil qui peuvent suivre cette structure. Si une application n’utilise pas d’informations spécifiques de l’appareil, vous définissez ce membre sur 0.

Fields

Valeur longue indiquant les membres restants dans la structure DEVMODE qui ont été initialisés.

Orientation

Entier spécifiant l’orientation du papier. Sa valeur peut être 1 (portrait) ou 2 (paysage).

PaperSize

Entier spécifiant la taille du papier à imprimer sur lequel imprimer. Si vous définissez ce membre sur 0 ou 256, la longueur et la largeur du papier sont spécifiées respectivement par les membres PaperLength et PaperWidth. Dans le cas contraire, vous pouvez définir le membre PaperSize sur une valeur prédéfinie.

PaperLength

Entier spécifiant la longueur du papier en unités de 1/10ème de millimètres. Ce membre remplace la longueur du papier spécifiée par le membre PaperSize pour des tailles de papier personnalisées ou des appareils tels que des imprimantes matricielles capables d’imprimer sur un vaste éventail de formats de papier.

PaperWidth

Entier spécifiant la largeur du papier en unités de 1/10ème de millimètres. Ce membre remplace la largeur de papier spécifiée par le membre PaperSize.

Scale

Entier spécifiant 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 selon un facteur d’échelle exprimé en pour cent (/100). Par exemple, une feuille de papier mesurant 8,5 x 11 pouces (format Letter) avec une valeur de l’échelle de 50 contient autant de données qu’une page de 17 x 22 pouces, car la largeur et la hauteur d’origine du texte et des graphismes en sortie sont réduites de moitié.

Copies

Entier spécifiant le nombre de copies imprimées si le périphérique d’impression prend en charge des copies de plusieurs pages.

DefaultSource

Entier spécifiant bac par défaut à partir duquel le papier est chargé.

PrintQuality

Entier spécifiant la résolution de l’imprimante. Les valeurs sont –4 (haute), –3 (moyenne), –2 (faible) et –1 (brouillon).

Color

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

Duplex

Entier. Pour une imprimante capable d’imprimer recto verso (duplex), spécifie si la sortie est imprimée sur les deux faces du papier. Les valeurs sont 1 (simplex), 2 (horizontal) et 3 (vertical).

YResolution

Entier spécifiant la résolution y de l’imprimante en points par pouce (PPP). Si l’imprimante initialise ce membre, le membre PrintQuality spécifie la résolution X de l’imprimante en PPP.

TTOption

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

Collate

Entier spécifiant si l’assemblage doit être utilisé lors de l’impression de plusieurs copies. L’utilisation de copies non assemblées produit une sortie plus rapidement et efficacement, car les données ne sont envoyées à l’imprimante qu’une seule fois.

FormName

Chaîne de maximum 16 caractères spécifiant la taille de papier à utiliser, telle que, « Letter » ou « Legal ».

Pad

Valeur longue servant à ajouter des espaces, caractères ou valeurs de remplissage pour des versions ultérieures.

Bits

Valeur longue spécifiant en bits par pixel la résolution de couleur du périphérique d’affichage.

PW

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

PH

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

DFI

Valeur longue spécifiant le mode d’affichage de l’appareil.

DFR

Valeur longue spécifiant la fréquence en hertz (cycles par seconde) du périphérique d’affichage dans un mode particulier.


Remarque : Vous pouvez définir la propriété ModePérImp à l’aide d’un code Visual Basic pour Applications (VBA).

Ce paramètre de propriété est en lecture/écriture en mode Création ou mode Page, et en lecture seule dans les autres modes.

Des pilotes d’imprimante peuvent ajouter des données spécifiques du périphérique suivant la structure DEVMODE de 94 octets. C’est pourquoi il est important que les données DEVMODE mentionnées ci-dessus ne dépassent pas 94 octets.

Seuls les pilotes d’imprimante exportant la fonction ExtDeviceMode utilisent la structure DEVMODE.

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

Avant de définir la valeur du membre TTOption, les applications doivent déterminer comment un pilote d’imprimante peut utiliser les polices TrueType à l’aide de la valeur DC_TRUETYPE pour appeler la fonction DeviceCapabilities.

Exemple

L’exemple suivant utilise la propriété ModePérImp pour vérifier la taille de page définie par l’utilisateur pour 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 modifier l’orientation de l’état. Cet exemple bascule de l’orientation portrait à l’orientation paysage, ou inversement, selon l’orientation de l’état actuel.

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
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.

×