PrtDevMode 属性

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

适用于

窗体对象

报表对象

您可以使用PrtDevMode属性设置或返回指定的窗体或报表中打印对话框中的打印设备模式信息。读取/写入变体

表达式PrtDevMode

表达式必填。返回一个对象应用于列表中的表达式。

备注

强烈建议您向 win 32 软件开发工具包咨询有关完整文档PrtDevModePrtDevNamesPrtMip属性。

PrtDevMode属性设置为镜像 devmode win 32 软件开发工具包中定义的 94 字节结构。PrtDevMode属性成员的完整信息,请咨询 win 32 软件开发工具包。

PrtDev 模式属性使用以下成员。

成员

说明

设备名称

使用指定的设备名称最多为 32 字节字符串驱动程序支持 — 例如,"HP 字符串"如果字符串用于指定的打印机。每个打印机驱动程序具有唯一的字符串。

SpecVersion

Win 32 软件开发工具包中指定的 devmode 版本号的整数。

DriverVersion

一个整数,指定打印机驱动程序开发者的打印机驱动程序版本号。

大小

指定的大小,以字节为单位的 devmode 一个整数。(此值不包含特定于设备的数据,可以按照此结构的可选dmDriverData成员)。如果应用程序只处理驱动程序无关的部分的数据,您可以使用此成员以了解此结构的长度,而无需帐户的不同版本。

DriverExtra

指定的大小,以字节为单位的特定于设备的数据,可以按照此结构的可选dmDriverData成员的整数。如果应用程序不使用特定于设备的信息,您将设置为 0 的此成员。

A已经初始化 Long 值,指定 DEVMODE 结构中的剩余的成员。

Orientation

一个整数,指定的纸张方向。它可以是 1 (纵向) 或 2 (横向)。

纸张大小

一个整数,指定纸张上打印的大小。如果此成员设置为 0 或 256,长度和纸张宽度由指定 PaperLength 和 PaperWidth 成员,分别。否则,您可以将 PaperSize 成员设置为预定义的值。

PaperLength

指定纸张的长度单位 1/10 毫米一个整数。此成员替代指定 PaperSize 成员为自定义纸张大小或设备,例如,可以在各种大小的纸张打印的点式打印机的纸张长度。

PaperWidth

指定纸张的宽度 1/10 毫米为单位的整数。此成员替代指定 PaperSize 成员的纸张宽度。

Scale

一个整数,指定将缩放打印的输出因子。页面大小外观是从实际页面大小按 /100 的比例缩放的。例如,一张纸的缩放比例值 50 测量 8.5 × 11 英寸 (信函大小) 将作为测量 17 × 22 英寸,因为输出的文本和图形将一半其原始高度和宽度页面包含尽可能多的数据。

副本

一个整数,指定的份数打印如果打印设备支持多页。

DefaultSource

一个整数,指定默认区间从中纸。

PrintQuality

一个整数,指定打印机的分辨率。值为-4 (高)、 –3 (中)、 – 2 (低) 和 – 1 (草稿)。

Color

一个整数。对于彩色打印机,指定是否以彩色打印输出。值为 1 (彩色) 和 2 (单色)。

Duplex

一个整数。对于打印机支持双面打印的情况下,指定是否在纸张的两面上打印输出。值为 1 (单面)、 (水平),2 和 3 (垂直)。

YResolution

一个整数,指定打印机 y 分辨率以每英寸点数 (dpi)。如果打印机初始化此成员,PrintQuality 成员指定 dpi x 高分辨率的打印机。

TTOption

一个整数,指定将如何打印 TrueType 字体。

逐份打印

一个整数,指定打印多份副本时,是否应使用排序规则。使用未逐份打印的份数提供了更快、 更高效的输出,因为数据发送到打印机,只需一次。

窗体名称

指定要使用; 在纸张的大小 16 个字符的最大字符串例如,"信函"或者"法律"。

拨号盘

用于填充空格、 字符或值的未来版本值。

Long 类型,以每像素位数指定显示设备的颜色分辨率。

PW

值,指定宽度 (像素) 设备可视界面 (屏幕或打印机)。

PH

值,指定高度 (像素) 设备可视界面 (屏幕或打印机)。

DFI

值,指定设备的显示模式。

DFR

指定的频率,以赫兹 (秒周期数),以特定模式显示设备的值。


注意: 您可以设置PrtDevMode属性使用 Visual Basic for Applications (VBA) 代码。

此属性设置为读/写在设计视图或布局视图和其他视图中以只读方式。

打印机驱动程序可以添加紧随 devmode 94 个字节的特定于设备的数据。因此,很重要上方的 DEVMODE 数据不能超过 94 个字节。

仅打印机驱动程序导出ExtDeviceMode函数使用 devmode。

应用程序可以检索的纸张大小和打印机支持通过使用 DC_PAPERS、 DC_PAPERSIZE 和 DC_PAPERNAMES 值呼叫DeviceCapabilities函数的名称。

设置之前 TTOption 成员的值,请应用程序应了解的打印机驱动程序如何通过使用 DC_TRUETYPE 值调用DeviceCapabilities函数来使用 TrueType 字体。

示例

下面的示例使用PrtDevMode属性检查报表的用户定义的页面大小:

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

下面的示例演示如何更改报表的方向。此示例将为纵向,具体取决于报表的当前方向切换为横向或横向方向从纵向。

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

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×