Share via


Propriété Form.PrtDevMode (Access)

Utilisez la propriété PrtDevMode pour définir ou renvoyer les informations de mode de 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.

Syntaxe

expression. PrtDevMode

expressionVariable qui représente un objetForm.

Remarques

Nous vous recommandons 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 de 94 octets qui reflète la structure DEVMODE définie dans le Kit de développement de logiciel Win32. Pour plus d’informations sur les membres de la propriété PrtDevMode , consultez le Kit de développement logiciel Win32.

La propriété PrtDevMode utilise les membres suivants.

Member Description
DeviceName Chaîne avec un maximum de 32 octets qui spécifie le nom de l’appareil pris en charge par le pilote ; par exemple, « HP LaserJet IIISi » si le Hewlett-Packard LaserJet IIISi est l’imprimante spécifiée. Chaque pilote d'imprimante correspond une chaîne unique.
SpecVersion Entier qui spécifie le numéro de version de la structure DEVMODE dans le Kit de développement de logiciel Win32.
DriverVersion Entier spécifiant le numéro de version du pilote d'imprimante attribué par le programmeur.
Size (Taille) Entier qui spécifie la taille, en octets, de la structure DEVMODE. Lorsqu'une application manipule exclusivement des données indépendantes du pilote, vous pouvez utiliser ce membre pour déterminer la longueur de cette structure sans tenir compte des différentes versions.
DriverExtra Entier spécifiant la taille, en octets, du membre facultatif dmDriverData qui fournit des données spécifiques au périphérique, et qui peut figurer à la suite de cette structure. Si l'application n'utilise pas d'informations spécifiques au périphérique, attribuez la valeur 0 à ce membre.
Fields (Champs) Valeur de type Long indiquant quels autres membres de la structure DEVMODE ont été initialisés.
Orientation Entier qui spécifie l’orientation du papier. Il peut s’agir de 1 (portrait) ou de 2 (paysage).
PaperSize Un entier qui spécifie la taille du papier d'impression sur. Si vous définissez ce membre sur 0 ou 256, la longueur et la largeur du papier sont spécifiées en respectivement par les membres PaperLength et PaperWidth. Dans le cas contraire, vous pouvez définir le membre PaperSize une valeur prédéfinie. Pour connaître les valeurs disponibles, consultez les valeurs du membre PaperSize.
PaperLength Entier spécifiant la longueur du papier en dixièmes de millimètre. Ce membre annule la longueur définie par le membre PaperSize (TaillePapier) pour les tailles de papier personnalisées ou pour les périphériques tels que les imprimantes matricielles, qui acceptent différentes tailles de papier.
PaperWidth Entier spécifiant la largeur du papier en dixièmes de millimètre. Ce membre annule la largeur spécifiée par le membre PaperSize (TaillePapier).
Scale (Échelle) 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 la page physique par un facteur d’échelle /100. Par exemple, une feuille de papier mesurant 210 x 297 millimètres (format A4) à l'échelle 50 contient autant de données qu'une page au format 420 x 594 millimètres parce que la taille du texte et des graphismes imprimés est réduite de moitié par rapport à celle de l'original affiché à l'écran.
Copies Entier spécifiant le nombre de copies imprimées si le périphérique d'impression prend en charge les copies multipages.
DefaultSource Un entier qui spécifie l'emplacement par défaut à partir de laquelle le papier est chargé. Pour connaître les valeurs disponibles, consultez valeurs de membre DefaultSource.
PrintQuality Un entier qui spécifie la résolution de l'imprimante. Les valeurs sont 4 (haute), 3 (moyenne), 2 (faible) et 1 (brouillon).
Couleur Entier. Pour une imprimante couleur, spécifie si la sortie est imprimée en couleur. Les valeurs possibles sont 1 (couleur) ou 2 (monochrome).
Duplex (Recto-verso) Entier. Spécifie si les pages sont imprimées recto verso, dans le cas où votre imprimante prend en charge cette fonction. Les valeurs possibles sont 1 (simplex), 2 (horizontale) et 3 (verticale).
YResolution (RésolutionY) Entier spécifiant la résolution en Y de l'imprimante en points par pouce (dpi). Si l'imprimante initialise ce membre, le membre PrintQuality (QualitéImpression) spécifie la résolution en X de l'imprimante en dpi.
TTOption (OptionTT) Un entier qui spécifie le mode d'impression des polices TrueType. Pour connaître les valeurs disponibles, consultez les valeurs du membre TTOption.
Collate Entier spécifiant si l'assemblage doit être utilisé lors de l'impression de copies multiples. L'utilisation de copies non assemblées permet une impression plus rapide et plus efficace puisque les données ne sont envoyées à l'imprimante qu'une seule fois.
FormName Chaîne contenant jusqu'à 16 caractères qui spécifie le format de papier à utiliser ; par exemple, "Lettre" ou "Legal".
Pad Valeur de type Long qui vous permet de compléter les espaces, caractères ou valeurs pour les versions futures.
Bits Valeur de type Long spécifiant la résolution couleur en bits par pixel du périphérique d'affichage.
PW Valeur de type Long spécifiant la largeur, en pixels, de la surface visible du périphérique (écran ou imprimante).
PH Valeur de type Long spécifiant la hauteur, en pixels, de la surface visible du périphérique (écran ou imprimante).
DFI Valeur de type Long spécifiant le mode d'affichage du périphérique.
DFR Valeur de type Long spécifiant la fréquence, en hertz (cycles par secondes), du périphérique d'affichage dans un mode particulier.

Cette propriété est accessible en lecture-écriture en mode Création et en lecture seule dans les autres modes.

Les pilotes d'imprimante peuvent ajouter des données spécifiques au périphérique à la suite des 94 octets de la structure DEVMODE. Il est donc essentiel que les données relatives à DEVMODE 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 de papier et les noms pris en charge par une imprimante à l'aide des valeurs DC_PAPERS, DC_PAPERSIZE et DC_PAPERNAMES qui appellent la fonction DeviceCapabilities.

Avant de définir la valeur du membre TTOption (OptionTT), 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 définie par l’utilisateur pour un 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

L'exemple suivant explique comment modifier l'orientation de l'état. Cet exemple passe de l'orientation en portrait à celle en paysage et inversement en fonction de l'orientation en cours 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

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.