Propiedad Form. PrtDevMode (Access)Form.PrtDevMode property (Access)

Puede usar la propiedad PrtDevMode para establecer o devolver información del modo del dispositivo de impresión que se ha especificado para un formulario o informe en el cuadro de diálogo Imprimir.You can use the PrtDevMode property to set or return printing device mode information specified for a form or report in the Print dialog box. Variante de lectura y escritura.Read/write Variant.

SintaxisSyntax

expresión. PrtDevModeexpression.PrtDevMode

expresión Variable que representa un objeto Form.expression A variable that represents a Form object.

ObservacionesRemarks

Se recomienda encarecidamente consultar el kit de desarrollo de software de Win32 para obtener documentación completa sobre las propiedades PrtDevMode, PrtDevNamesy PrtMip .We strongly recommend that you consult the Win32 Software Development Kit for complete documentation on the PrtDevMode, PrtDevNames, and PrtMip properties.

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.The PrtDevMode property setting is a 94-byte structure that mirrors the DEVMODE structure defined in the Win32 Software Development Kit. Para obtener información completa sobre los miembros de la propiedad PrtDevMode , consulte el kit de desarrollo de software de Win32.For complete information about the PrtDevMode property members, consult the Win32 Software Development Kit.

La propiedad PrtDevMode utiliza a los siguientes miembros.The PrtDevMode property uses the following members.

MemberMember DescripciónDescription
DeviceNameDeviceName Una cadena con un máximo de 32 bytes que especifica el nombre del dispositivo que admite el controlador; por ejemplo, "HP LaserJet IIISi" si Hewlett-Packard LaserJet IIISi es la impresora especificada.A string with a maximum of 32 bytes that specifies the name of the device that the driver supports; for example, "HP LaserJet IIISi" if the Hewlett-Packard LaserJet IIISi is the specified printer. Cada controlador de impresión tiene una cadena única.Each printer driver has a unique string.
SpecVersionSpecVersion 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.An Integer that specifies the version number of the DEVMODE structure in the Win32 Software Development Kit.
DriverVersionDriverVersion 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.An Integer that specifies the printer driver version number assigned by the printer driver developer.
SizeSize Valor de tipo Integer que especifica el tamaño, en bytes, de la estructura DEVMODE.An Integer that specifies the size, in bytes, of the DEVMODE structure. (Este valor no incluye el miembro dmDriverData opcional para los datos específicos del dispositivo, lo que puede seguir esta estructura). Si una aplicación manipula solo la parte de los datos independiente del controlador, puede usar este miembro para averiguar la longitud de esta estructura sin tener que tener en cuenta las distintas versiones.(This value doesn't include the optional dmDriverData member for device-specific data, which can follow this structure.) If an application manipulates only the driver-independent portion of the data, you can use this member to find out the length of this structure without having to account for different versions.
DriverExtraDriverExtra 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.An Integer that specifies the size, in bytes, of the optional dmDriverData member for device-specific data, which can follow this structure. Si una aplicación no utiliza información específica del dispositivo, este elemento se debe establecer en 0.If an application doesn't use device-specific information, you set this member to 0.
FieldsFields Valor de tipo Long que especifica cuál de los elementos restantes de la estructura DEVMODE se ha inicializado.A Long value that specifies which of the remaining members in the DEVMODE structure have been initialized.
OrientationOrientation Valor de tipo Integer que especifica la orientación del papel.An Integer that specifies the orientation of the paper. Puede ser 1 (vertical) o 2 (horizontal).It can be either 1 (portrait) or 2 (landscape).
PaperSizePaperSize Un entero que especifica el tamaño del papel para imprimir en.An Integer that specifies the size of the paper to print on. Si se establece este elemento en 0 ó 256, la longitud y el ancho del papel se especifican en los elementos PaperLength y PaperWidth, respectivamente.If you set this member to 0 or 256, the length and width of the paper are specified by the PaperLength and PaperWidth members, respectively. De lo contrario, se puede establecer el elemento PaperSize en un valor predefinido.Otherwise, you can set the PaperSize member to a predefined value. Para los valores disponibles, vea los valores de los miembros PaperSize.For available values, see the PaperSize member values.
PaperLengthPaperLength Valor de tipo Integer que especifica la longitud del papel en unidades de 0,1 milímetros.An Integer that specifies the paper length in units of 1/10 of a millimeter. 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.This member overrides the paper length specified by the PaperSize member for custom paper sizes or for devices such as dot-matrix printers that can print on a variety of paper sizes.
PaperWidthPaperWidth Valor de tipo Integer que especifica el ancho del papel en unidades de 0,1 milímetros.An Integer that specifies the paper width in units of 1/10 of a millimeter. Este elemento anula el ancho del papel especificado por el elemento PaperSize.This member overrides the paper width specified by the PaperSize member.
ScaleScale Valor de tipo Integer que especifica el factor de escala de la salida impresa.An Integer that specifies the factor by which the printed output will be scaled. El tamaño aparente de la página se escala a partir del tamaño de la página física por un factor de escala /100.The apparent page size is scaled from the physical page size by a factor of scale /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.For example, a piece of paper measuring 8.5 by 11 inches (letter-size) with a Scale value of 50 would contain as much data as a page measuring 17 by 22 inches because the output text and graphics would be half their original height and width.
CopiesCopies 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.An Integer that specifies the number of copies printed if the printing device supports multiple-page copies.
DefaultSourceDefaultSource Un entero que especifica la Bandeja predeterminada de alimentación de papel.An Integer that specifies the default bin from which the paper is fed. Para los valores disponibles, vea los valores del miembro DefaultSource.For available values, see the DefaultSource member values.
PrintQualityPrintQuality Un entero que especifica la resolución de la impresora.An Integer that specifies the printer resolution. Los valores son 4 (alto), 3 (medio), 2 (bajo) y 1 (borrador).The values are 4 (high), 3 (medium), 2 (low), and 1 (draft).
ColorColor Valor de tipo Integer.An Integer. Para una impresora en color, especifica si los resultados se imprimen en color.For a color printer, specifies whether the output is printed in color. Los valores son 1 (color) y 2 (monocromo).The values are 1 (color) and 2 (monochrome).
DuplexDuplex Valor de tipo Integer.An Integer. Para una impresora con capacidad de impresión dúplex, especifica si los resultados se imprimen en ambas caras del papel.For a printer capable of duplex printing, specifies whether the output is printed on both sides of the paper. Los valores son 1 (simplex), 2 (horizontal) y 3 (vertical).The values are 1 (simplex), 2 (horizontal), and 3 (vertical).
YresolutionYResolution Valor de tipo Integer que especifica la resolución Y de la impresora en puntos por pulgada (ppp).An Integer that specifies the y-resolution of the printer in dots per inch (dpi). Si la impresora inicializa este elemento, el elemento CalidadDeImpresión especifica la resolución X de la impresora en ppp.If the printer initializes this member, the PrintQuality member specifies the x-resolution of the printer in dpi.
TTOptionTTOption Un entero que especifica cómo se imprimirán las fuentes TrueType.An Integer that specifies how TrueType fonts will be printed. Para los valores disponibles, vea los valores del miembro elemento TTOption.For available values, see the TTOption member values.
CollateCollate Valor de tipo Integer que especifica si se deben intercalar las copias cuando se imprimen copias múltiples.An Integer that specifies whether collation should be used when printing multiple copies. 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.Using uncollated copies provides faster, more efficient output, since the data is sent to the printer just once.
FormNameFormName Cadena con un máximo de 16 caracteres que especifica el tamaño del papel a utilizar; por ejemplo, "Carta" u "Oficio".A string with a maximum of 16 characters that specifies the size of paper to use; for example, "Letter" or "Legal".
PadPad Valor de tipo Long que se utiliza para rellenar espacios, caracteres o valores para versiones futuras.A Long value that is used to pad out spaces, characters, or values for future versions.
BitsBits Valor de tipo Long que especifica en bits por píxel la resolución de color del dispositivo de presentación.A Long value that specifies in bits per pixel the color resolution of the display device.
PWPW Valor de tipo Long que especifica el ancho, en píxeles, de la superficie visible del dispositivo (pantalla o impresora).A Long value that specifies the width, in pixels, of the visible device surface (screen or printer).
PHPH Valor de tipo Long que especifica el alto, en píxeles, de la superficie visible del dispositivo (pantalla o impresora).A Long value that specifies the height, in pixels, of the visible device surface (screen or printer).
DFIDFI Valor de tipo Long que especifica el modo de presentación del dispositivo.A Long value that specifies the device's display mode.
DFRDFR Valor de tipo Long que especifica la frecuencia, en hercios (ciclos por segundo), del dispositivo de presentación en un modo determinado.A Long value that specifies the frequency, in hertz (cycles per second), of the display device in a particular mode.

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.This property setting is read/write in Design view and read-only in other views.

Los controladores de impresión pueden agregar datos específicos del dispositivo inmediatamente detrás de los 94 bytes de la estructura DEVMODE.Printer drivers can add device-specific data immediately following the 94 bytes of the DEVMODE structure. Por esta razón, es importante que los datos de DEVMODE descritos anteriormente no excedan los 94 bytes de datos.For this reason, it is important that the DEVMODE data outlined above not exceed 94 bytes.

Sólo los controladores de impresión que exportan la función ExtDeviceMode utilizan la estructura DEVMODE.Only printer drivers that export the ExtDeviceMode function use the DEVMODE structure.

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.An application can retrieve the paper sizes and names supported by a printer by using the DC_PAPERS, DC_PAPERSIZE, and DC_PAPERNAMES values to call the DeviceCapabilities function.

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.Before setting the value of the TTOption member, applications should find out how a printer driver can use TrueType fonts by using the DC_TRUETYPE value to call the DeviceCapabilities function.

EjemploExample

En el siguiente ejemplo, se utiliza la propiedad PrtDevMode para comprobar el tamaño de página definido por el usuario para un informe.The following example uses the PrtDevMode property to check the user-defined page size for a 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

En el siguiente ejemplo, se muestra cómo cambiar la orientación del informe.The following example shows how to change the orientation of the report. En este ejemplo, se cambiará la orientación de vertical a horizontal o viceversa, en función de la orientación actual del informe.This example will switch the orientation from portrait to landscape or landscape to portrait depending on the report's current orientation.

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 comentariosSupport and feedback

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación?Have questions or feedback about Office VBA or this documentation? 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.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.