Propriedade PrtDevMode

Aplica-se a

Objeto Form

Objeto Report

Você pode usar 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. Variante de leitura/gravação.

expressão.PrtDevMode

expressão Obrigatória. Uma expressão que retorna um dos objetos na lista Aplica-se a.

Comentários

É fortemente recomendado que você consulte no Software Development Kit do Win32 a documentação completa sobre as propriedades PrtDevMode, PrtDevNames e PrtMip.

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

A propriedade PrtDevMode usa os seguintes membros.

Membro

Descrição

DeviceName

Um cadeia de caracteres com no máximo 32 bytes que especifica o nome do dispositivo compatível com o driver, por exemplo, "HP LaserJet IIISi" se a Hewlett-Packard LaserJet IIISi for a impressora especificada. Cada driver da impressora tem uma cadeia de caracteres exclusiva.

SpecVersion

Um número inteiro que especifica o número da versão da estrutura DEVMODE no Software Development Kit do Win32.

DriverVersion

Um número inteiro que especifica o número da versão do driver de impressora atribuído pelo desenvolvedor do driver da impressora.

Tamanho

Um número inteiro que especifica o tamanho, em bytes, da estrutura DEVMODE. (Esse valor não inclui o membro opcional dmDriverData dos dados específicos do dispositivo, que podem utilizar essa estrutura.) Se um aplicativo manipular apenas a parte dos dados que é independente do driver, você poderá usar esse membro para descobrir o tamanho dessa estrutura sem ter que levar em conta as diferentes versões.

DriverExtra

Um número inteiro que especifica o tamanho, em bytes, do membro dmDriverData opcional dos dados específicos do dispositivo, que podem utilizar essa estrutura. Se um aplicativo não usar informações específicas do dispositivo, defina esse membro como 0.

Campos

Um valor longo que especifica quais dos membros restantes da estrutura DEVMODE foram inicializados.

Orientação

Um número inteiro que especifica a orientação do papel. Pode ser 1 (retrato) ou 2 (paisagem).

PaperSize

Um número inteiro que especifica o tamanho do papel de impressão. Se você definir esse membro como 0 ou 256, o tamanho e a largura do papel são especificados pelos membros PaperLength e PaperWidth, respectivamente. Caso contrário, você pode definir o membro PaperSize como um valor predefinido.

PaperLength

Um número inteiro que especifica o tamanho do papel em unidades de 1/10 de um milímetro. Esse membro substitui o tamanho do papel especificado pelo membro PaperSize para tamanhos de papel personalizados ou para dispositivos como impressoras matriciais que podem imprimir em uma variedade de tamanhos de papel.

PaperWidth

Um número inteiro que especifica a largura do papel em unidades de 1/10 de um milímetro. Esse membro substitui a largura do papel especificada por um membro PaperSize.

Scale

Um número inteiro que especifica o fator pelo qual a saída impressa será dimensionada. O tamanho aparente da página é dimensionado a partir do tamanho físico da página com base em um fator de escala/100. Por exemplo, uma folha de papel de 8,5 por 11 polegadas (tamanho de carta) com um valor de escala de 50 conteria a mesma quantidade de dados que uma página de 17 por 22 polegadas, pois o texto de saída e os gráficos teriam a metade da altura e largura originais.

Cópias

Um número inteiro que especifica o número de cópias impressas se o dispositivo de impressão suportar cópias de várias páginas.

DefaultSource

Um número inteiro que especifica o compartimento padrão do qual o papel é alimentado.

PrintQuality

Um número inteiro que especifica a resolução da impressora. Os valores são –4 (alta), –3 (média), – 2 (baixa) e –1 (rascunho).

Color

Um número inteiro. Para uma impressora colorida, especifica se a impressão é feita em cores. Os valores são 1 (cor) e 2 (monocromática).

Duplex

Um número inteiro. Para uma impressora compatível com a impressão duplex, especifica se o resultado é impresso em ambos os lados do papel. Os valores são 1 (simplex), 2 (horizontal) e 3 (vertical).

YResolution

Um número inteiro que especifica a resolução de y da impressora em pontos por polegada (dpi). Se a impressora inicializar esse membro, o membro PrintQuality especificará a resolução de x da impressora em dpi.

TTOption

Um número inteiro que especifica como as fontes TrueType serão impressas.

Collate

Um número inteiro que especifica se o agrupamento deve ser usado ao imprimir várias cópias. Usar cópias não agrupadas fornece uma saída mais rápida e mais eficiente, pois os dados são enviados apenas uma vez à impressora.

FormName

Uma cadeia de caracteres com no máximo 16 caracteres que especifica o tamanho do papel a ser usado; por exemplo, "Carta" ou "Legal".

Pad

Um valor Longo usado para acrescentar espaços, caracteres ou valores para versões futuras.

Bits

Um valor Longo que especifica a resolução de cor do dispositivo de vídeo em bits por pixel.

PW

Um valor Longo que especifica a largura, em pixels, da superfície de dispositivo visível (impressora ou tela).

PH

Um valor Longo que especifica a altura, em pixels, da superfície de dispositivo visível (impressora ou tela).

DFI

Um valor Longo que especifica o modo de exibição do dispositivo.

DFR

Um valor Longo que especifica a frequência, em hertz (ciclos por segundo), do dispositivo de vídeo em um modo específico.


Observação : Você pode definir a propriedade PrtDevMode usando o código do Visual Basic for Applications (VBA).

Essa configuração de propriedade é de leitura/gravação no modo Design ou no modo Layout, e somente leitura em outros modos de exibição.

Os drivers de impressora podem adicionar dados específicos do dispositivo imediatamente após 94 bytes da estrutura DEVMODE. Por esse motivo, é importante que os dados DEVMODE descritos acima não excederem 94 bytes.

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

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

Antes de configurar o valor do membro TTOption, os aplicativos devem descobrir como um driver de impressora pode usar as fontes TrueType usando o valor DC_TRUETYPE para chamar a função DeviceCapabilities.

Exemplo

O exemplo a seguir usa a propriedade PrtDevMode para verificar o tamanho de página definido pelo usuário para 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 mudará a orientação de retrato para paisagem ou 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
Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×