Propiedad Form.PrtDevMode (Access)
Use la propiedad PrtDevMode para establecer o devolver la información de modo de dispositivo de impresión especificada para un formulario o informe en el cuadro de diálogo Imprimir . Variante de lectura y escritura.
expresión. PrtDevMode
expresión Variable que representa un objeto Form.
Se recomienda encarecidamente consultar el Kit de desarrollo de software win32 para obtener documentación completa sobre las propiedades PrtDevMode, PrtDevNames y PrtMip .
El valor de la propiedad PrtDevMode es una estructura de 94 bytes que refleja la estructura DEVMODE definida en el Kit de desarrollo de Software de Win32. Para obtener información completa sobre los miembros de la propiedad PrtDevMode , consulte el Kit de desarrollo de software de Win32.
La propiedad PrtDevMode utiliza a los siguientes miembros.
Member | Descripción |
---|---|
DeviceName | Cadena con un máximo de 32 bytes que especifica el nombre del dispositivo que admite el controlador; por ejemplo, "HP LaserJet IIISi" si la Hewlett-Packard LaserJet IIISi es la impresora especificada. Cada controlador de impresión tiene una cadena única. |
SpecVersion | Valor de tipo Integer que especifica el número de versión de la estructura DEVMODE en el Kit de desarrollo de software de Win32. |
DriverVersion | Valor de tipo Integer que especifica el número de versión del controlador de impresión asignado por el programador del controlador de impresión. |
Size | Valor de tipo Integer que especifica el tamaño, en bytes, de la estructura DEVMODE. (Este valor no incluye el miembro dmDriverData opcional para datos específicos del dispositivo, que puede seguir esta estructura). Si una aplicación manipula solo la parte independiente del controlador de los datos, puede usar este miembro para averiguar la longitud de esta estructura sin tener que tener en cuenta versiones diferentes. |
DriverExtra | Valor de tipo Integer que especifica el tamaño, en bytes, del elemento opcional dmDriverData para los datos específicos del dispositivo, que pueden seguir esta estructura. Si una aplicación no utiliza información específica del dispositivo, este elemento se debe establecer en 0. |
Fields | Valor de tipo Long que especifica cuál de los elementos restantes de la estructura DEVMODE se ha inicializado. |
Orientation | Valor de tipo Integer que especifica la orientación del papel. Puede ser 1 (vertical) o 2 (horizontal). |
PaperSize | Un entero que especifica el tamaño del papel para imprimir en. Si se establece este elemento en 0 ó 256, la longitud y el ancho del papel se especifican en los elementos PaperLength y PaperWidth, respectivamente. De lo contrario, se puede establecer el elemento PaperSize en un valor predefinido. Para ver los valores disponibles, consulte los valores de miembro PaperSize. |
PaperLength | Valor de tipo Integer que especifica la longitud del papel en unidades de 0,1 milímetros. Este elemento anula la longitud del papel especificada por el elemento PaperSize para los tamaños de papel personalizados o para dispositivos como las impresoras matriciales que pueden imprimir en diversos tamaños de papel. |
PaperWidth | Valor de tipo Integer que especifica el ancho del papel en unidades de 0,1 milímetros. Este elemento anula el ancho del papel especificado por el elemento PaperSize. |
Scale | Valor de tipo Integer que especifica el factor de escala de la salida impresa. El tamaño de página aparente se escala a partir del tamaño de página físico mediante un factor de escala /100. Por ejemplo, una hoja que mide 216 por 279 mm (tamaño carta), con un valor de Escala de 50 contendría tantos datos como una hoja que midiera 432 por 558 mm, porque el texto y los gráficos de resultados tendrían la mitad del alto y ancho originales. |
Copies | Valor de tipo Integer que especifica el número de copias impresas si el dispositivo de impresión admite copias de páginas múltiples. |
DefaultSource | Un entero que especifica la Bandeja predeterminada de alimentación de papel. Para ver los valores disponibles, consulte los valores de miembro DefaultSource. |
PrintQuality | Un entero que especifica la resolución de la impresora. Los valores son 4 (alto), 3 (medio), 2 (bajo) y 1 (borrador). |
Color | Valor de tipo Integer. Para una impresora en color, especifica si los resultados se imprimen en color. Los valores son 1 (color) y 2 (monocromo). |
Duplex | Valor de tipo Integer. Para una impresora con capacidad de impresión dúplex, especifica si los resultados se imprimen en ambas caras del papel. Los valores son 1 (simplex), 2 (horizontal) y 3 (vertical). |
Yresolution | Valor de tipo Integer que especifica la resolución Y de la impresora en puntos por pulgada (ppp). Si la impresora inicializa este elemento, el elemento CalidadDeImpresión especifica la resolución X de la impresora en ppp. |
TTOption | Un entero que especifica cómo se imprimirán las fuentes TrueType. Para ver los valores disponibles, consulte los valores de miembro de TTOption. |
Collate | Valor de tipo Integer que especifica si se deben intercalar las copias cuando se imprimen copias múltiples. Utilizar copias no intercaladas proporciona unos resultados más eficaces y rápidos, ya que los datos se envían a la impresora sólo una vez. |
FormName | Cadena con un máximo de 16 caracteres que especifica el tamaño del papel a utilizar; por ejemplo, "Carta" u "Oficio". |
Pad | Valor de tipo Long que se utiliza para rellenar espacios, caracteres o valores para versiones futuras. |
Bits | Valor de tipo Long que especifica en bits por píxel la resolución de color del dispositivo de presentación. |
PW | Valor de tipo Long que especifica el ancho, en píxeles, de la superficie visible del dispositivo (pantalla o impresora). |
PH | Valor de tipo Long que especifica el alto, en píxeles, de la superficie visible del dispositivo (pantalla o impresora). |
DFI | Valor de tipo Long que especifica el modo de presentación del dispositivo. |
DFR | Valor de tipo Long que especifica la frecuencia, en hercios (ciclos por segundo), del dispositivo de presentación en un modo determinado. |
El valor de esta propiedad es de lectura y escritura en la vista Diseño y de sólo lectura en las demás vistas.
Los controladores de impresión pueden agregar datos específicos del dispositivo inmediatamente detrás de los 94 bytes de la estructura DEVMODE. Por esta razón, es importante que los datos de DEVMODE descritos anteriormente no excedan los 94 bytes de datos.
Sólo los controladores de impresión que exportan la función ExtDeviceMode utilizan la estructura DEVMODE.
Una aplicación puede recuperar los tamaños de papel y nombres admitidos por una impresora utilizando los valores DC_PAPERS, DC_PAPERSIZE y DC_PAPERNAMES para llamar a la función DeviceCapabilities.
Antes de establecer el valor del elemento TTOption, las aplicaciones deben averiguar cómo puede utilizar una impresora las fuentes TrueType usando el valor DC_TRUETYPE para llamar a la función DeviceCapabilities.
En el ejemplo siguiente se usa la propiedad PrtDevMode para comprobar el tamaño de página definido por el usuario para un informe.
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
En el siguiente ejemplo, se muestra cómo cambiar la orientación del informe. En este ejemplo, se cambiará la orientación de vertical a horizontal o viceversa, en función de la orientación actual del informe.
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
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.