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.