Propriedade Form.PrtDevMode (Access)

Use a propriedade PrtDevMode para definir ou retornar as informações do modo de dispositivo de impressão especificadas para um formulário ou relatório na caixa de diálogo Imprimir . Variant de leitura/gravação.

Sintaxe

expressão. PrtDevMode

expressão Uma variável que representa um objeto Form.

Comentários

Recomendamos que você consulte o Kit de Desenvolvimento de Software Win32 para obter a documentação completa nas propriedades PrtDevMode, PrtDevNames e PrtMip .

A configuração da propriedade PrtDevMode é uma estrutura de 94 bytes que reflete a estrutura DEVMODE definida no Win32 Software Development Kit. Para obter informações completas sobre os membros da propriedade PrtDevMode , consulte o Kit de Desenvolvimento de Software Win32.

A propriedade PrtDevMode utiliza os membros a seguintes.

Member Descrição
DeviceName Uma cadeia de caracteres com um máximo de 32 bytes que especifica o nome do dispositivo compatível com o driver; por exemplo, "HP LaserJet IIISi" se o Hewlett-Packard LaserJet IIISi for a impressora especificada. Cada driver de impressora tem uma cadeia de caracteres exclusiva.
SpecVersion Um Integer que especifica o número da versão da estrutura DEVMODE no Win32 Software Development Kit.
DriverVersion Um Integer que especifica o número da versão do driver de impressora atribuído pelo desenvolvedor do driver.
Size Um Inteiro que especifica o tamanho, em bytes, da estrutura DEVMODE. Se um aplicativo manipula somente a parte dos dados independente do driver, você pode utilizar este membro para descobrir o comprimento dessa estrutura sem ter que considerar versões diferentes.
DriverExtra Um Integer que especifica o tamanho, em bytes, do membro opcional dmDriverData para dados específicos do dispositivo, os quais podem seguir essa estrutura. Se o aplicativo não utiliza informações específicas de dispositivo, você define esse membro como 0.
Fields Um valor Long que especifica quais dos membros remanescentes da estrutura DEVMODE foram inicializados.
Orientation Um Integer que especifica a orientação do papel. Pode ser 1 (retrato) ou 2 (paisagem).
PaperSize Um inteiro que especifica o tamanho do papel a ser impresso em. Se você definir esse membro como 0 ou 256, o comprimento e a largura do papel serão especificados pelos membros PaperLength e PaperWidth, respectivamente. Caso contrário, você pode definir o membro PaperSize como um valor predefinido. Para obter valores disponíveis, consulte os valores de membro PaperSize.
PaperLength Um Integer que especifica o comprimento do papel em unidades de 1/10 de milímetro. Este membro substitui o comprimento de papel especificado pelo membro PaperSize para tamanhos de papel personalizados ou para dispositivos, como as impressoras matriciais que podem imprimir em vários tamanhos de papel.
PaperWidth Um Integer que especifica a largura do papel em unidades de 1/10 de milímetro. Este membro substitui a largura de papel especificada pelo membro PaperSize.
Scale Um Integer que especifica o fator pelo qual a saída impressa será ordenada. O tamanho aparente da página é dimensionado do tamanho da página física por um fator de escala /100. Por exemplo, uma folha de papel medindo 8,5 por 11 polegadas (tamanho carta) com um valor Scale de 50 conteria tantos dados quanto uma página medindo 17 por 22 polegadas, pois o texto e os gráficos de saída teriam metade de suas altura e largura originais.
Copies Um Integer que especifica o número de cópias impressas se o dispositivo de impressão oferece suporte a cópias de várias páginas.
Defaultsource Um inteiro que especifica a bandeja padrão da qual o papel é alimentado. Para obter valores disponíveis, consulte os valores de membro DefaultSource.
PrintQuality Um inteiro que especifica a resolução de impressora. Os valores são 4 (alto), 3 (médio), 2 (baixo) e 1 (rascunho).
Cor Um Integer. Para uma impressora colorida, especifica se a saída é impressa em cores. Os valores são 1 (cor) e 2 (monocromático).
Duplex Um Integer. Para uma impressora capaz de impressão duplex, especifica se a saída é impressa em ambos os lados do papel. Os valores são 1 (simplex), 2 (horizontal) e 3 (vertical).
YResolution Um Integer que especifica a resolução, em pontos por polegada (dpi), do eixo y da impressora. Se a impressora inicializar este membro, o membro PrintQuality especificará a resolução do eixo x da impressora em dpi.
TTOption Um inteiro que especifica como as fontes TrueType serão impressas. Para obter valores disponíveis, consulte os valores de membro TTOption.
Agrupar Um Integer que especifica se o agrupamento deve ser utilizado ao imprimir várias cópias. O uso de cópias não agrupadas proporciona uma saída mais rápida e mais eficiente, uma vez que os dados são enviados para a impressora apenas uma vez.
FormName Uma sequência de, no máximo, 16 caracteres que especifica o nome do formulário a ser utilizado; por exemplo, "Carta" ou "Ofício".
Pad Um valor Long que é utilizado para armazenar espaços, caracteres ou valores para versões futuras.
Bits Um valor Long que especifica a resolução de cores do dispositivo de tela em bits por pixel.
PW Um valor Long que especifica a largura, em pixels, da superfície visível do dispositivo (tela ou impressora).
PH Um valor Long que especifica a altura, em pixels, da superfície visível do dispositivo (tela ou impressora).
DFI Um valor Long que especifica o modo de exibição do dispositivo.
DFR Um valor Long que especifica a frequência, em hertz (ciclos por segundo), do dispositivo de tela em um determinado modo.

A configuração dessa propriedade é de leitura/gravação no modo de design e somente leitura nos outros modos.

Os drivers de impressora podem adicionar dados específicos do dispositivo imediatamente após os 94 bytes da estrutura DEVMODE. Por essa razão, é importante que a estrutura de tópicos de dados de DEVMODE acima não exceda 94 bytes.

Somente os drivers de impressora que exportam a função ExtDeviceMode utilizam a estrutura DEVMODE.

Um aplicativo pode recuperar os tamanhos de papel e os nomes suportados por uma impressora, usando os valores DC_PAPERS, DC_PAPERSIZE e DC_PAPERNAMES para chamar a função DeviceCapabilities.

Antes de definir o valor do membro dmTTOption, os aplicativos devem descobrir como um driver de impressora pode utilizar fontes TrueType utilizando-se o valor DC_TRUETYPE para chamar a função DeviceCapabilities.

Exemplo

O exemplo a seguir usa a propriedade PrtDevMode para verificar o tamanho da página definida pelo usuário para obter um relatório.

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

O exemplo a seguir mostra como alterar a orientação do relatório. Este exemplo alternará a orientação de retrato para paisagem ou de paisagem para retrato, dependendo da orientação atual do relatório.

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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.