Ισχύει για
|
Αντικείμενο Form |
|
Αντικείμενο αναφοράς |
Μπορείτε να χρησιμοποιήσετε την ιδιότητα PrtDevMode για να ορίσετε ή να δείτε τις πληροφορίες λειτουργίας της συσκευής εκτύπωσης, που έχουν καθοριστεί για μια φόρμα ή αναφορά, στο παράθυρο διαλόγου Εκτύπωση. Μεταβλητή σύνταξης/ανάγνωσης.
expression.PrtDevMode
παράσταση Υποχρεωτικό. Μια παράσταση που επιστρέφει ένα από τα αντικείμενα της λίστας "Ισχύει για".
Παρατηρήσεις
Συνιστούμε θερμά να συμβουλευθείτε το Win32 Software Development Kit, για πλήρη τεκμηρίωση σχετικά με τις ιδιότητες PrtDevMode, PrtDevNames και PrtMip.
Η ρύθμιση ιδιοτήτων PrtDevMode είναι μια δομή 94 byte, η οποία αντιστοιχεί στη δομή DEVMODE που καθορίζεται στο Win32 Software Development Kit. Για πλήρεις πληροφορίες σχετικά με τα μέλη της ιδιότητας PrtDevMode, ανατρέξτε στο Win32 Software Development Kit.
Η ιδιότητα PrtDevMode χρησιμοποιεί τα παρακάτω μέλη.
|
Μέλος |
Περιγραφή |
|
DeviceName |
Μια συμβολοσειρά με έως και 32 byte που καθορίζει το όνομα της συσκευής που υποστηρίζει το πρόγραμμα οδήγησης — για παράδειγμα, "HP LaserJet IIISi", εάν ο καθορισμένος εκτυπωτής είναι ο Hewlett-Packard LaserJet IIISi. Κάθε πρόγραμμα οδήγησης εκτυπωτή διαθέτει δική του συμβολοσειρά. |
|
SpecVersion |
Ένας Ακέραιος που καθορίζει τον αριθμό έκδοσης της δομής DEVMODE στο Win32 Software Development Kit. |
|
DriverVersion |
Ένας Ακέραιος που καθορίζει τον αριθμό έκδοσης του προγράμματος οδήγησης εκτυπωτή που έχει αντιστοιχιστεί από τον κατασκευαστή του προγράμματος οδήγησης. |
|
Size |
Ένας Ακέραιος που καθορίζει το μέγεθος, σε byte, της δομής DEVMODE. (Αυτή η τιμή δεν περιλαμβάνει το προαιρετικό μέλος dmDriverData για δεδομένα ειδικά για τη συσκευή, που μπορεί να ακολουθούν αυτήν τη δομή.) Εάν κάποια εφαρμογή χειρίζεται μόνο το τμήμα δεδομένων που είναι ανεξάρτητο από το πρόγραμμα οδήγησης των δεδομένων, μπορείτε να χρησιμοποιήσετε αυτό το μέλος για να βρείτε το μήκος αυτής της δομής, χωρίς να χρειάζεται να λάβετε υπόψη σας τις διαφορετικές εκδόσεις. |
|
DriverExtra |
Ένας Ακέραιος που καθορίζει το μέγεθος, σε byte, του προαιρετικού μέλους dmDriverData για δεδομένα ειδικά για τη συσκευή, που μπορεί να ακολουθούν αυτήν τη δομή. Εάν μια εφαρμογή δεν χρησιμοποιεί πληροφορίες ειδικά για τη συσκευή, μπορείτε να ορίσετε αυτό το μέλος σε 0. |
|
Fields |
Μια Μεγάλη τιμή που καθορίζει ποια από τα εναπομείναντα μέλη στη δομή DEVMODE έχουν προετοιμαστεί. |
|
Orientation |
Ένας Ακέραιος που καθορίζει τον προσανατολισμό του χαρτιού. Μπορεί να είναι 1 (κατακόρυφος) ή 2 (οριζόντιος). |
|
PaperSize |
Ένας Ακέραιος που καθορίζει το μέγεθος του χαρτιού εκτύπωσης. Εάν ορίσετε αυτό το μέλος σε 0 ή 256, το μήκος και το πλάτος του χαρτιού καθορίζονται από τα μέλη PaperLength και PaperWidth, αντίστοιχα. Διαφορετικά, μπορείτε να ορίσετε το μέλος PaperSize σε μια προκαθορισμένη τιμή. |
|
PaperLength |
Ένας Ακέραιος που καθορίζει το μήκος του χαρτιού σε μονάδες του 1/10 του χιλιοστόμετρου. Αυτό το μέλος ακυρώνει το μήκος χαρτιού που καθορίζεται από το μέλος PaperSize για προσαρμοσμένα μεγέθη χαρτιού ή για συσκευές όπως οι εκτυπωτές ακίδων που μπορούν να εκτυπώσουν σε διάφορα μεγέθη χαρτιού. |
|
PaperWidth |
Ένας Ακέραιος που καθορίζει το πλάτος του χαρτιού σε μονάδες του 1/10 του χιλιοστόμετρου. Αυτό το μέλος ακυρώνει το πλάτους χαρτιού που καθορίζεται από το μέλος PaperSize. |
|
Scale |
Ένας Ακέραιος που καθορίζει τον συντελεστή κλιμάκωσης για το αποτέλεσμα εκτύπωσης. Το εμφανιζόμενο μέγεθος σελίδας προσαρμόζεται υπό κλίμακα από το φυσικό μέγεθος σελίδας, με συντελεστή κλίμακα/100. Για παράδειγμα, ένα κομμάτι χαρτί με διαστάσεις 8,5 επί 11 ίντσες (μέγεθος Letter) με τιμή κλίμακας 50, θα περιέχει τόσα δεδομένα όσο μια σελίδα με διαστάσεις 17 επί 22 ίντσες, επειδή το εκτυπωμένο κείμενο και τα γραφικά, θα έχουν το μισό από το αρχικό ύψος και πλάτος τους. |
|
Copies |
Ένας Ακέραιος που καθορίζει τον αριθμό των αντιτύπων που εκτυπώνονται, εάν η συσκευή εκτύπωσης υποστηρίζει αντίγραφα πολλαπλών σελίδων. |
|
DefaultSource |
Ένας Ακέραιος που καθορίζει την προεπιλεγμένη θέση από την οποία γίνεται η τροφοδοσία χαρτιού. |
|
PrintQuality |
Ένας Ακέραιος που καθορίζει την ανάλυση του εκτυπωτή. Οι τιμές είναι –4 (υψηλή), –3 (μεσαία), –2 (χαμηλή) και –1 (πρόχειρο). |
|
Color |
Ένας Ακέραιος. Για έναν έγχρωμο εκτυπωτή, καθορίζει εάν η εκτύπωση γίνεται με χρώμα. Οι τιμές είναι 1 (έγχρωμη) και 2 (μονόχρωμη). |
|
Duplex |
Ένας Ακέραιος. Για έναν εκτυπωτή που υποστηρίζει εκτύπωση διπλής όψης, καθορίζει εάν η εκτύπωση γίνεται και στις δύο πλευρές του χαρτιού. Οι τιμές είναι 1 (απλή), 2 (οριζόντια) και 3 (κατακόρυφη). |
|
YResolution |
Ένας Ακέραιος που καθορίζει την ανάλυση στον κατακόρυφο άξονα του εκτυπωτή σε κουκκίδες ανά ίντσα (dpi). Αν ο εκτυπωτής προετοιμάζει αυτό το μέλος, το μέλος PrintQuality καθορίζει την ανάλυση στον άξονα χ του εκτυπωτή σε dpi. |
|
TTOption |
Ένας Ακέραιος που καθορίζει πώς θα εκτυπωθούν οι γραμματοσειρές TrueType. |
|
Collate |
Ένας Ακέραιος που καθορίζει εάν θα χρησιμοποιείται συρραφή κατά την εκτύπωση πολλαπλών αντιγράφων. Η χρήση αντιγράφων χωρίς συρραφή παρέχει πιο γρήγορη και πιο αποτελεσματική εκτύπωση, διότι τα δεδομένα αποστέλλονται στον εκτυπωτή μόνο μία φορά. |
|
FormName |
Μια συμβολοσειρά με μέγιστο αριθμό 16 χαρακτήρων που καθορίζει το μέγεθος του χαρτιού προς χρήση. Για παράδειγμα, "Letter" ή "Legal". |
|
Pad |
Μια Μεγάλη τιμή που χρησιμοποιείται για τη συμπλήρωση των κενών διαστημάτων, χαρακτήρων ή τιμών για μελλοντικές εκδόσεις. |
|
Bits |
Μια Μεγάλη τιμή που καθορίζει, σε bit ανά pixel, την ανάλυση χρώματος της συσκευής προβολής. |
|
PW |
Μια Μεγάλη τιμή που καθορίζει το πλάτος, σε pixel, της ορατής επιφάνειας της συσκευής (οθόνη ή εκτυπωτής). |
|
PH |
Μια Μεγάλη τιμή που καθορίζει το ύψος, σε pixel, της ορατής επιφάνειας της συσκευής (οθόνη ή εκτυπωτής). |
|
DFI |
Μια Μεγάλη τιμή που καθορίζει τη λειτουργία προβολής της συσκευής. |
|
DFR |
Μια Μεγάλη τιμή που καθορίζει τη συχνότητα, σε hertz (κύκλοι ανά δευτερόλεπτο), της συσκευής προβολής σε μια συγκεκριμένη λειτουργία. |
Σημείωση: Μπορείτε να ορίσετε την ιδιότητα PrtDevMode χρησιμοποιώντας κώδικα της Visual Basic for Applications (VBA).
Αυτή η ρύθμιση ιδιότητας είναι για ανάγνωση/εγγραφή σε προβολή σχεδίασης ή προβολή διάταξης και μόνο για ανάγνωση σε άλλες προβολές.
Τα προγράμματα οδήγησης εκτυπωτή μπορεί να προσθέτουν δεδομένα ειδικά για τη συσκευή αμέσως μετά τα 94 byte της δομής DEVMODE. Για τον λόγο αυτό, είναι σημαντικό τα δεδομένα DEVMODE που αναφέρθηκαν παραπάνω να μην υπερβαίνουν τα 94 byte.
Μόνο τα προγράμματα οδήγησης εκτυπωτή που εξάγουν τη συνάρτηση ExtDeviceMode χρησιμοποιούν τη δομή DEVMODE.
Μια εφαρμογή μπορεί να ανακτήσει τα μεγέθη και τα ονόματα χαρτιού που υποστηρίζονται από έναν εκτυπωτή, χρησιμοποιώντας τις τιμές DC_PAPERS, DC_PAPERSIZE και DC_PAPERNAMES, για να επικαλεστεί τη συνάρτηση DeviceCapabilities.
Πριν τον ορισμό της τιμής του μέλους TTOption, οι εφαρμογές πρέπει να ανακαλύψουν πώς ένα πρόγραμμα οδήγησης εκτυπωτή μπορεί να χρησιμοποιήσει γραμματοσειρές TrueType, χρησιμοποιώντας την τιμή DC_TRUETYPE για την επίκληση της συνάρτησης DeviceCapabilities.
Παράδειγμα
Το παρακάτω παράδειγμα χρησιμοποιεί την ιδιότητα PrtDevMode για να ελέγξει το μέγεθος σελίδας που ορίζεται από τον χρήστη για μια αναφορά:
Private Type str_DEVMODE RGB As String * 94End TypePrivate 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 LongEnd TypePublic 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 = NothingEnd Sub
Το παρακάτω παράδειγμα δείχνει πώς μπορείτε να αλλάξετε τον προσανατολισμό της αναφοράς. Αυτό το παράδειγμα αλλάζει τον προσανατολισμό από οριζόντιο σε κατακόρυφο ή από κατακόρυφο σε οριζόντιο, ανάλογα με τον τρέχοντα προσανατολισμό της αναφοράς.
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 = NothingEnd Sub