Propiedad PrtDevMode

Se aplica a

Objeto Form

Objeto Report

Puede usar la propiedad PrtDevMode para establecer o devolver 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 obligatoria. Una expresión que devuelve uno de los objetos de la lista “Se aplica a”.

Comentarios

Es muy recomendable que vea la documentación completa del kit de desarrollo de software de Win32 sobre las propiedades PrtDevMode, PrtDevNames y PrtMip.

La configuración de la propiedad PrtDevMode es una estructura de 94 bytes que refleja la estructura de DEVMODE definida en el kit de desarrollo de software de Win32. Para obtener información completa sobre los miembros de la propiedad PrtDevMode, vea el kit de desarrollo de software de Win32.

La propiedad PrtDevMode usa los miembros siguientes.

Miembro

Descripción

DeviceName

Un cadena con un máximo de 32 bytes que especifica el nombre del dispositivo compatible con el controlador (por ejemplo, “HP LaserJet IIISi” si la impresora especificada es Hewlett-Packard LaserJet IIISi). Cada controlador de impresora tiene una cadena única.

SpecVersion

Un entero que especifica el número de versión de la estructura de DEVMODE en el kit de desarrollo de software de Win32.

DriverVersion

Un entero que especifica el número de versión del controlador de impresora asignado por el desarrollador del controlador de impresora.

Tamaño

Un entero que especifica el tamaño, en bytes, de la estructura de DEVMODE. (En este valor no se incluye el miembro de dmDriverData opcional para los datos específicos del dispositivo, que puede tener esta estructura). Si una aplicación solo manipula la parte independiente del controlador de los datos, puede usar este miembro para conocer la longitud de esta estructura sin tener que tener en cuenta las diferentes versiones.

DriverExtra

Un entero que especifica el tamaño, en bytes, del miembro de dmDriverData opcional para datos específicos del dispositivo, que puede tener esta estructura. Si una aplicación no usa información específica del dispositivo, establezca este miembro en 0.

Campos

Un valor Long que especifica cuál de los miembros restantes de la estructura de DEVMODE se inicializó.

Orientation

Un entero que especifica la orientación del papel. Puede ser 1 (vertical) o 2 (horizontal).

PaperSize

Un entero que especifica el tamaño del papel donde se imprimirá. Si establece este miembro en 0 o 256, la longitud y el ancho del papel se especificarán según los miembros PaperLength y PaperWidth, respectivamente. De lo contrario, puede establecer el miembro de PaperSize en un valor predefinido.

PaperLength

Un entero que especifica la longitud del papel en unidades de una décima parte de un milímetro. Este miembro reemplaza la longitud del papel especificada por el miembro de PaperSize para tamaños de papel personalizados, o bien para dispositivos (como impresoras matriciales) que pueden imprimir en una amplia variedad de tamaños de papel.

PaperWidth

Un entero que especifica el ancho del papel en unidades de una décima parte de un milímetro. Este miembro reemplaza el ancho del papel especificado por el miembro de PaperSize.

Scale

Un entero que especifica el factor por el que se escalará la impresión. El tamaño de página aparente se escala a partir del tamaño de página físico por un factor de escala/100. Por ejemplo, un papel que mida 8,5 × 11 pulgadas (tamaño Carta) con un valor de escala de 50 contendría los mismos datos que una página que mida 17 × 22 pulgadas, ya que el texto y los gráficos resultantes tendrían la mitad de alto y ancho de los valores originales.

Copies

Un entero que especifica el número de copias impresas si el dispositivo de impresión admite copias de varias páginas.

DefaultSource

Un entero que especifica la bandeja predeterminada desde donde se alimentará el papel.

PrintQuality

Un entero que especifica la resolución de la impresora. Los valores son -4 (alto), -3 (medio), -2 (bajo) y -1 (borrador).

Color

Un entero. Para una impresora de color, especifica si la impresión es en color. Los valores son 1 (color) y 2 (monocromo).

Duplex

Un entero. Para una impresora que admita la impresión a doble cara, especifica si se imprime en las dos caras del papel. Los valores son 1 (una cara), 2 (horizontal) y 3 (vertical).

YResolution

Un entero que especifica la resolución "y" de la impresora en puntos por pulgada (ppp). Si la impresora inicializa este miembro, el miembro de PrintQuality especifica la resolución "x" de la impresora en ppp.

TTOption

Un entero que especifica cómo se imprimirán las fuentes TrueType.

Collate

Un entero que especifica si tiene que usarse la intercalación al imprimir varias copias. Usar copias sin intercalar ofrece una impresión más rápida y eficiente, ya que los datos solo se envían una vez a la impresora.

FormName

Una cadena con un máximo de 16 caracteres que especifica el tamaño del papel que se usará (por ejemplo, “Carta” u “Oficio”).

Pad

Un valor Long que se usa para aumentar el relleno de espacios, caracteres o valores para próximas versiones.

Bits

Un valor Long que especifica, en bits por píxel, la resolución de color de la pantalla.

PW

Un valor Long que especifica el ancho, en píxeles, de la superficie visible del dispositivo (pantalla o impresora).

PH

Un valor Long que especifica el alto, en píxeles, de la superficie visible del dispositivo (pantalla o impresora).

DFI

Un valor Long que especifica el modo de presentación del dispositivo.

DFR

Un valor Long que especifica la frecuencia, en hercios (ciclos por segundo), de la pantalla en un modo específico.


Nota: Puede establecer la propiedad PrtDevMode con código VBA (Visual Basic para Aplicaciones).

Esta configuración de propiedad es de lectura y escritura en la vista Diseño o en la vista Presentación, y es de solo lectura en el resto de las vistas.

Los controladores de impresora pueden agregar datos específicos del dispositivo inmediatamente después de los 94 bytes de la estructura de DEVMODE. Por este motivo, es importante que los datos de DEVMODE descritos anteriormente no superen los 94 bytes.

Solo los controladores de impresora que exportan la función ExtDeviceMode usan la estructura DEVMODE.

Una aplicación puede recuperar los nombres y tamaños de papel admitidos por una impresora con los valores DC_PAPERS, DC_PAPERSIZE y DC_PAPERNAMES para llamar a la función DeviceCapabilities.

Antes de establecer el valor del miembro TTOption, las aplicaciones necesitan determinar cómo un controlador de impresora puede usar fuentes TrueType con el valor DC_TRUETYPE para llamar a la función DeviceCapabilities.

Ejemplo

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 ejemplo siguiente, se muestra cómo cambiar la orientación del informe. En este ejemplo, se cambiará la orientación de vertical a horizontal, o bien de horizontal a vertical, según 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
Ampliar sus conocimientos de Office
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×