Visual Basic 概念
适用于 Visual Basic 6.0 用户的 Printer 对象
在 Visual Basic 2005 中,Visual Basic 6.0 Printer 对象被 PrintDocument 组件替换。虽然两者行为迥异,但是在大多数情况下功能可以重复。
概念差异
在 Visual Basic 6.0 中,打印是通过创建 Printer 对象,然后使用图形方法将文本和图形绘制到虚拟页上来实现的。属性 (Property) 和方法用于定义打印机属性 (Attribute),如 DeviceName、PrintQuality 或 Copies;其他属性 (Property)——如 Orientation 和 PaperSize——定义页自身的属性 (Attribute)。EndDoc 方法将输出发送到应用程序的默认打印机(这在 Printers 集合中定义)。
在 Visual Basic 2005 中,不再提供 Printer 对象。而是使用 PrintDocument 组件来定义图形和文本,使用 PrinterSettings 对象来定义打印机属性,并使用 PageSettings 类来定义页属性。
打印不再绑定到特定设备,应用程序的默认打印机概念不再有效。PrintDocument 组件的 PrintPage 方法可以用于打印到任何设备,默认打印机是系统范围内的。PrintDialog、PrintPreviewDialog 和 PageSetupDialog 组件允许您让用户在运行时选择打印机和打印选项。
ColorMode 属性
在 Visual Basic 6.0 中,ColorMode 属性控制是否在彩色打印机上用单色打印输出。
在 Visual Basic 2005 中,现在取决于打印机将此公开为高级选项。PrinterSettings 类的 SupportsColor 属性可用于确定打印机的颜色功能。
DriverName 属性
在 Visual Basic 6.0 中,Printer 对象的 DriverName 属性用于指定打印机驱动程序。在 Windows 早期版本和 MS-DOS 中,需要打印机驱动程序将输出按照每个特定品牌和型号的打印机可以理解的方式进行翻译。到 Visual Basic 6.0 时这通常是不需要的,但为向后兼容仍然保留了此属性。
在 Visual Basic 2005 中,不再存在 DriverName 属性;打印机驱动程序由 Windows 管理,不能再指定不同的驱动程序。
hDC 属性
在 Visual Basic 6.0 中,Printer 对象的 hDC 属性指定设备上下文的句柄(基于 Windows 的应用程序、设备驱动程序和诸如打印机等的输出设备之间的链接)。
在 Visual Basic 2005 中,不再提供 hDC 属性;PrintDocument 组件的实例等效于设备上下文。
注意
虽然不再需要设备上下文句柄,但图形对象具有可用于高级方案的 GetHdc 和 ReleaseHdc 方法。
Page 属性
在 Visual Basic 6.0 中,Page 属性返回自应用程序启动或自上次在 Printer 对象上使用 EndDoc 语句以来打印的页的计数。此属性通常用于在打印过程中向每页添加页码。
在 Visual Basic 2005 中,不跟踪页码;但是,通过在 BeginPrint 事件中设置一个变量并在 PrintPage 事件中将其递增,您可以方便地保持计数。
Port 属性
在 Visual Basic 6.0 中,Port 属性返回将文档发送到打印机时所通过的端口的名称。
在 Visual Basic 2005 中,不再提供 Port 属性;PrintDialog 和 PrintPreviewDialog 控件自动管理端口信息。
RightToLeft 属性
在 Visual Basic 6.0 中,RightToLeft 属性确定 Printer 对象如何在双向平台(如阿拉伯语 Windows95 或希伯来语 Windows95)上设置输出的格式。
在 Visual Basic 2005 中,不再需要 RightToLeft 属性;在 Windows 更高版本中打印方向由本地化设置控制。
TrackDefault 属性
在 Visual Basic 6.0 中,TrackDefault 属性确定 Printer 对象是否总是指向同一打印机,或者确定当您在操作系统的“控制面板”中更改了默认打印机设置的情况下是否更改它指向的打印机。当正在进行打印作业时更改 TrackDefault 属性设置会导致打印立即暂停。
在 Visual Basic 2005 中,不再提供 TrackDefault 属性;PrinterSettings 类的 IsDefaultPrinter 属性可用于确定打印机是否是默认的,但如果默认打印机更改,打印将不再暂停。
Zoom 属性
在 Visual Basic 6.0 中,Zoom 属性确定打印输出的缩放百分比。例如,让我们考虑一下在将 Zoom 设置为 50 时打印出的 Letter 大小的页。该页与 17x22 英寸的页所包含的数据一样多,因为打印的文本或图形在 Letter 大小的页上被缩小到原始高度和宽度的一半。
在 Visual Basic 2005 中,不再提供 Zoom 属性;如果打印机具有缩放功能,则将在“打印”对话框中自动公开设置。还可以在将输出指定给 PrintDocument 组件之前使用图形方法缩放输出。
图形属性和方法
在 Visual Basic 6.0 中,各种图形属性和方法可以用于在 Printer 对象上绘制线条、形状和文本。
在 Visual Basic 2005 中,大多数对象不再具有其自身的图形属性和方法;仍可以通过创建并使用 Graphics 对象来绘制线条、形状和文本。有关更多信息,请参见图形(针对 Visual Basic 6.0 用户)。
用于 Printer 对象的代码更改
由于 Visual Basic 6.0 和 Visual Basic 2005 在打印模式上存在大量差异,所以比较它们的编码技术没有什么意义。有关在 Visual Basic 2005 中打印的示例,请参见打印示例。
Printer 对象的属性和方法的等效项
下面几个表列出了 Visual Basic 6.0 中的属性和方法及它们的 Visual Basic 2005 等效项。具有相同的名称和行为的属性及方法未予列出。除非另外说明,否则所有 Visual Basic 2005 枚举都映射到 System.Windows.Forms 命名空间。
此表提供相关主题的链接,这些主题对行为之间的差异进行说明。如果 Visual Basic 2005 中没有直接等效项,则提供指向介绍替换项的主题的链接。
属性
Visual Basic 6.0 Visual Basic 2005 等效项
ColorMode
新的实现。PrinterSettings 类的 SupportsColor 属性可用于确��打印机的颜色功能
Copies
PrinterSettings 类的 Copies 属性。
CurrentX
CurrentY
新的实现。有关更多信息,请参见图形(针对 Visual Basic 6.0 用户)。
DeviceName
PrinterSettings 类的 PrinterName 属性。
DrawMode
DrawStyle
DrawWidth
新的实现。有关详细信息,请参见图形(针对 Visual Basic 6.0 用户)。
DriverName
新的实现。不再需要;由 Windows 管理打印机驱动程序。
Duplex
PrinterSettings 类的 Duplex 属性。
FillColor
FillStyle
新的实现。有关详细信息,请参见图形(针对 Visual Basic 6.0 用户)。
Font
FontBold
FontCount
FontItalic
FontName
Fonts
FontSize
FontStrikeThru
FontTransparent
FontUnderline
新的实现。有关详细信息,请参见字体处理(针对 Visual Basic 6.0 用户)。
ForeColor
新的实现。有关详细信息,请参见颜色处理(针对 Visual Basic 6.0 用户)。
hDC
不再是必需的。PrintDocument 组件的一个实例是设备上下文的等效项。
Height
PageSettings 类的 PaperSize 属性。
Orientation
PageSettings 类的 Landscape 属性。
Page
新的实现。不跟踪当前页码;但是,通过在 BeginPrint 事件中设置变量并在 PrintPage 事件中将其递增,您可以方便地进行跟踪。
PaperBin
PrinterSettings 类的 PaperSources 属性。
PaperSize
PageSettings 类的 PaperSize 属性。
Port
不再是必需的。PrintPreviewDialog 控件自动设置端口信息。
PrintQuality
PrinterSettings 类的 PrinterResolutions 属性。
RightToLeft
不再是必需的。打印的方向由 Windows 中的本地化设置控制。
ScaleHeight
ScaleLeft
ScaleMode
ScaleTop
ScaleWidth
新的实现。有关详细信息,请参见坐标系统(针对 Visual Basic 6.0 用户)。
TrackDefault
无直接等效项。PrinterSettings 类的 IsDefaultPrinter 属性可用于确定打印机是否是默认的。
TwipsPerPixelX
TwipsPerPixelY
不再是必需的。Visual Basic 2005 中的度量总是以像素为单位。
Width
PageSettings 类的 PaperSize 属性。
Zoom
不再是必需的。如果打印机具有缩放功能,则将在“打印”对话框中自动公开设置。
方法
Visual Basic 6.0 Visual Basic 2005 等效项
Circle
新的实现。有关更多信息,请参见图形(针对 Visual Basic 6.0 用户)。
EndDoc
Print
KillDoc
Cancel
Line
新的实现。有关更多信息,请参见图形(针对 Visual Basic 6.0 用户)。
NewPage
HasMorePages
PaintPicture
PSet
新的实现。有关更多信息,请参见图形(针对 Visual Basic 6.0 用户)。
Scale
ScaleX
ScaleY
新的实现。有关详细信息,请参见坐标系统(针对 Visual Basic 6.0 用户)。
TextHeight
TextWidth
新的实现。有关更多信息,请参见图形(针对 Visual Basic 6.0 用户)。