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.