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 de la liste S’applique à.
Remarques
Pour une documentation complète 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 d’au 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 qui spécifie la taille, en octets, de la structure DEVMODE. (Cette valeur n’inclut pas le membre dmDriverData facultatif pour les données spécifiques à l’appareil, qui peut suivre cette structure.) Si une application manipule uniquement la partie indépendante du pilote des données, vous pouvez utiliser ce membre pour déterminer la longueur de cette structure sans avoir à prendre en compte les 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 couleurs. 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 d’au 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