适用于 Visual Basic 6.0 用户的 Printer 对象

更新:2007 年 11 月

Visual Basic 6.0 Printer 对象在 Visual Basic 2008 中被 PrintDocument 组件所取代。虽然两者行为迥异,但是在大多数情况下功能可以重复。

概念差异

在 Visual Basic 6.0 中,打印是通过创建 Printer 对象,然后使用图形方法将文本和图形绘制到虚拟页上来实现的。属性 (Property) 和方法用于定义打印机属性 (Attribute),如 DeviceName、PrintQuality 或 Copies;其他属性 (Property)——如 Orientation 和 PaperSize——定义页自身的属性 (Attribute)。EndDoc 方法将输出发送到应用程序的默认打印机(这在 Printers 集合中定义)。

在 Visual Basic 2008 中,不再提供 Printer 对象。而是使用 PrintDocument 组件来定义图形和文本,使用 PrinterSettings 对象来定义打印机属性,并使用 PageSettings 类来定义页属性。

说明:

Visual Basic 2008 拥有一个允许升级后的 Visual Basic 6.0 Printer 代码无需修改即可运行的 Printer 对象。对于任何新的开发,您应使用 PrintDocument。

打印不再绑定到特定设备,应用程序的默认打印机概念不再有效。PrintDocument 组件的 PrintPage 方法可以用于打印到任何设备,默认打印机是系统级内的。PrintDialog、PrintPreviewDialog 和 PageSetupDialog 组件允许您让用户在运行时选择打印机和打印选项。

ColorMode 属性

在 Visual Basic 6.0 中,ColorMode 属性控制是否在彩色打印机上用单色打印输出。

在 Visual Basic 2008 中,现在取决于打印机是否将此公开为高级选项。PrinterSettings 类的 SupportsColor 属性可用于确定打印机的颜色功能。

DriverName 属性

在 Visual Basic 6.0 中,Printer 对象的 DriverName 属性用于指定打印机驱动程序。在 Windows 早期版本和 MS-DOS 中,需要打印机驱动程序将输出按照每个特定品牌和型号的打印机可以理解的方式进行翻译。到 Visual Basic 6.0 时这通常是不需要的,但为向后兼容仍然保留了此属性。

在 Visual Basic 2008 中,不再提供 DriverName 属性;打印机驱动程序由 Windows 管理,您不能再指定不同的驱动程序。

hDC 属性

在 Visual Basic 6.0 中,Printer 对象的 hDC 属性指定设备上下文的句柄(基于 Windows 的应用程序、设备驱动程序和诸如打印机等的输出设备之间的链接)。

在 Visual Basic 2008 中,不再提供 hDC 属性;PrintDocument 组件的实例等效于设备上下文。

说明:

虽然不再需要设备上下文句柄,但图形对象具有可用于高级方案的 GetHdcReleaseHdc 方法。

Page 属性

在 Visual Basic 6.0 中,Page 属性返回自应用程序启动或自上次在 Printer 对象上使用 EndDoc 语句以来打印的页的计数。此属性通常用于在打印过程中向每页添加页码。

在 Visual Basic 2008 中,不跟踪页码;不过您可以通过在 BeginPrint 事件中设置一个变量并在 incrementing it in the PrintPage 事件中对该变量进行递增从而方便地跟踪计数。

Port 属性

在 Visual Basic 6.0 中,Port 属性返回将文档发送到打印机时所通过的端口的名称。

在 Visual Basic 2008 中,不再提供 Port 属性;PrintDialog 和 PrintPreviewDialog 控件自动管理端口信息。

RightToLeft 属性

在 Visual Basic 6.0 中,RightToLeft 属性确定 Printer 对象如何在双向平台(如阿拉伯语 Windows95 或希伯来语 Windows95)上设置输出的格式。

在 Visual Basic 2008 中,不再需要 RightToLeft 属性;打印方向由 Windows 更高版本中的本地化设置控制。

TrackDefault 属性

在 Visual Basic 6.0 中,TrackDefault 属性确定 Printer 对象是否总是指向同一打印机,或者确定当您在操作系统的“控制面板”中更改了默认打印机设置的情况下是否更改它指向的打印机。当正在进行打印作业时更改 TrackDefault 属性设置会导致打印立即暂停。

在 Visual Basic 2008 中,不再提供 TrackDefault 属性;PrinterSettings 类的 IsDefaultPrinter 属性可用于确定打印机是否为默认打印机,但如果默认打印机发生更改,则打印将不再暂停。

Zoom 属性

在 Visual Basic 6.0 中,Zoom 属性确定打印输出的缩放百分比。例如,让我们考虑一下在将 Zoom 设置为 50 时打印出的 Letter 大小的页。该页与 17x22 英寸的页所包含的数据一样多,因为打印的文本或图形在 Letter 大小的页上被缩小到原始高度和宽度的一半。

在 Visual Basic 2008 中,不再提供 Zoom 属性;如果打印机具有缩放功能,将在“打印”对话框中自动公开这些设置。还可以在将输出指定给 PrintDocument 组件之前使用图形方法缩放输出。

图形属性和方法

在 Visual Basic 6.0 中,各种图形属性和方法可以用于在 Printer 对象上绘制线条、形状和文本。

在 Visual Basic 2008 中,大多数对象不再具有自身的图形属性或方法;您仍然可以通过创建并使用 Graphics 对象来绘制线条、形状和文本。有关更多信息,请参见 图形(针对 Visual Basic 6.0 用户)

用于 Printer 对象的代码更改

由于 Visual Basic 6.0 和 Visual Basic 2008 在打印模式上存在大量差异,所以比较它们的编码技术没有什么意义。有关在 Visual Basic 2008 中打印的示例,请参见打印示例

Printer 对象的属性和方法的等效项

下表列出了 Visual Basic 6.0 属性和方法,以及它们的 Visual Basic 2008 等效项。具有相同的名称和行为的属性及方法未予列出。除非另有说明,否则所有的 Visual Basic 2008 枚举都映射到 System.Windows.Forms 命名空间。

此表提供相关主题的链接,这些主题对行为之间的差异进行说明。如果 Visual Basic 2008 中没有直接等效项,则提供指向介绍其他替代项的主题的链接。

属性

Visual Basic 6.0

Visual Basic 2008 等效项

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 2008 等效项

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 用户)

升级说明

当 Visual Basic 6.0 应用程序升级到 Visual Basic 2008 后,Printer 对象的所有实例都升级到 Visual Basic 2008Printer 对象。

请参见

任务

打印示例

概念

打印更改(针对 Visual Basic 6.0 用户)

图形(针对 Visual Basic 6.0 用户)

参考

PageSettings

PrinterSettings

其他资源

Windows Forms Print Support