Share via


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.

Sintaxis

expresión. PrtDevMode

expresión Variable que representa un objeto Form.

Comentarios

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.

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 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

Soporte técnico y comentarios

¿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.