Proprietà PrtDevMode

Si applica a

Oggetto Form

Oggetto Report

È possibile usare la proprietà PrtDevMode per impostare o restituire le informazioni sulla modalità dispositivo specificate per una maschera o un report nella finestra di dialogo Stampa. Valore Variant di lettura/scrittura.

espressione.PrtDevMode

espressione Obbligatorio. Espressione che restituisce uno degli oggetti inclusi nell'elenco Si applica a.

Osservazioni

Per la documentazione completa sulle proprietà PrtDevMode, PrtDevNames e PrtMip, è consigliabile consultare Win32 Software Development Kit.

L'impostazione della proprietà PrtDevMode è una struttura a 94 byte che riflette la struttura DEVMODE definita in Win32 Software Development Kit. Per informazioni complete sui membri della proprietà PrtDevMode, consultare Win32 Software Development Kit.

La proprietà PrtDevMode usa i membri seguenti.

Membro

Descrizione

DeviceName

Una stringa composta da un massimo di 32 byte che specifica il nome del dispositivo supportato dal driver, ad esempio "HP LaserJet IIISi" se la stampante specificata è la Hewlett-Packard LaserJet IIISi. A ogni driver della stampante è assegnata una stringa univoca.

SpecVersion

Valore Integer che specifica il numero di versione della struttura DEVMODE in Win32 Software Development Kit.

DriverVersion

Valore Integer che specifica il numero di versione del driver della stampante assegnato dallo sviluppatore del driver.

Size

Valore Integer che specifica le dimensioni in byte della struttura DEVMODE. Questo valore non include il membro facoltativo dmDriverData per i dati specifici del dispositivo, che può essere conforme a questa struttura. Se un'applicazione manipola solo la parte dei dati indipendente dal driver, è possibile usare questo membro per individuare la lunghezza di questa struttura senza tenere in considerazione le diverse versioni.

DriverExtra

Valore Integer che specifica le dimensioni in byte del membro facoltativo dmDriverData per i dati specifici del dispositivo, che può essere conforme a questa struttura. Se un'applicazione non usa le informazioni specifiche del dispositivo, impostare questo membro su 0.

Fields

Valore Long che specifica quali dei membri rimanenti della struttura DEVMODE sono stati inizializzati.

Orientation

Valore Integer che specifica l'orientamento del foglio. Può essere 1 (verticale) o 2 (orizzontale).

PaperSize

Valore Integer che specifica il formato della carta su cui stampare. Se si imposta questo membro su un valore compreso tra 0 o 256, la lunghezza e la larghezza del foglio sono specificati rispettivamente dai membri PaperLength e PaperWidth. In caso contrario, è possibile impostare il membro PaperSize su un valore predefinito.

PaperLength

Valore Integer che specifica la lunghezza del foglio in unità di 1/10 di millimetro. Questo membro esegue l'override della lunghezza del foglio specificata dal membro PaperSize per i formati della carta personalizzati o per dispositivi, come le stampanti a matrice di punti, in grado di stampare su formati diversi.

PaperWidth

Valore Integer che specifica la larghezza del foglio in unità di 1/10 di millimetro. Questo membro esegue l'override della larghezza del foglio specificata dal membro PaperSize.

Scale

Valore Integer che specifica il fattore di scala per la pagina stampata. Le dimensioni della pagina visibile vengono ridotte rispetto alle dimensioni della pagina fisica di un fattore scala /100. Ad esempio, un foglio che misura 8,5 per 11 pollici (formato Lettera) e valore Scale impostato su 50 conterrà gli stessi dati di una pagina che misura 17 per 22 pollici perché l'altezza e la larghezza originale del testo e della grafica vengono dimezzati.

Copies

Valore Integer che specifica il numero di copie stampate se il dispositivo di stampa supporta le copie di più pagine.

DefaultSource

Valore Integer che specifica il cassetto predefinito da cui viene alimentata la carta.

PrintQuality

Valore Integer che specifica la risoluzione di stampa. I valori sono –4 (alta), –3 (media), –2 (bassa) e –1 (bozza).

Color

Valore Integer. Per una stampante a colori, specifica se l'output viene stampato a colori. I valori sono 1 (a colori) e 2 (in bianco e nero).

Duplex

Valore Integer. Per una stampante che supporta la stampa fronte/retro, specifica se l'output viene stampato su entrambi i lati del foglio. I valori sono 1 (solo fronte), 2 (orizzontale) e 3 (verticale).

YResolution

Valore Integer che specifica la risoluzione y della stampante in punti per pollice (dpi). Se la stampante inizializza questo membro, il membro PrintQuality specifica la risoluzione x della stampante in dpi.

TTOption

Valore Integer che specifica in che modo verranno stampati i caratteri TrueType.

Collate

Valore Integer che specifica se applicare la fascicolazione quando si stampano più copie. Con le copie non fascicolate l'output è più rapido ed efficiente perché i dati vengono inviati alla stampante una volta sola.

FormName

Stringa composta da un massimo di 16 caratteri che specifica il formato della carta da usare, ad esempio "Lettera" o "Legale".

Pad

Valore Long che viene usato per riempire spazi, caratteri o valori per le versioni future.

Bits

Valore Long che specifica la risoluzione del colore dello schermo in bit per pixel.

PW

Valore Long che specifica la larghezza in pixel della superficie visibile del dispositivo (schermo o stampante).

PH

Valore Long che specifica l'altezza in pixel della superficie visibile del dispositivo (schermo o stampante).

DFI

Valore Long che specifica la modalità di visualizzazione del dispositivo.

DFR

Valore Long che specifica la frequenza in hertz (cicli al secondo) dello schermo in una modalità specifica.


Nota : È possibile impostare la proprietà PrtDevMode usando il codice di Visual Basic, Applications Edition (VBA).

L'impostazione di questa proprietà è di lettura/scrittura in visualizzazione Struttura o in visualizzazione Layout e di sola lettura nelle altre visualizzazioni.

I driver della stampante possono aggiungere dati specifici del dispositivo subito dopo i 94 byte della struttura DEVMODE. Per questo motivo è importante che i dati DEVMODE descritti in precedenza non superino i 94 byte.

Solo i driver della stampante che esportano la funzione ExtDeviceMode usano la struttura DEVMODE.

Un'applicazione può recuperare i nomi e i formati della carta supportati da una stampante usando i valori DC_PAPERS, DC_PAPERSIZE e DC_PAPERNAMES per chiamare la funzione DeviceCapabilities.

Prima di impostare il valore del membro TTOption, le applicazioni devono scoprire in che modo il driver della stampante può usare i caratteri TrueType usando il valore DC_TRUETYPE per chiamare la funzione DeviceCapabilities.

Esempio

L'esempio seguente usa la proprietà PrtDevMode per verificare le dimensioni della pagina definite dall'utente per un report:

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'esempio seguente mostra come cambiare l'orientamento del report. Questo esempio consentirà di cambiare l'orientamento da verticale a orizzontale o da orizzontale a verticale a seconda dell'orientamento corrente del report.

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
Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×