プリンタ オブジェクト (Visual Basic 6.0 ユーザー向け)

更新 : 2007 年 11 月

Visual Basic 6.0 の Printer オブジェクトは、Visual Basic 2008 では PrintDocument コンポーネントに置き換えられています。これら 2 つの動作は大きく異なりますが、機能の大半が再現できます。

概念上の相違点

Visual Basic 6.0 での印刷は、Printer オブジェクトを作成し、グラフィックス メソッドを使用して仮想ページにテキストやグラフィックスを描画することにより実行します。プロパティやメソッドは、DeviceName、PrintQuality、または Copies などのプリンタ属性を定義するために使用します。Orientation や PaperSize などその他のプロパティでは、ページ自体の属性を定義します。EndDoc メソッドを使用すると、Printers コレクションの定義に従って、アプリケーションの既定のプリンタに出力が送信されます。

Visual Basic 2008 には、Printer オブジェクトがなくなりました。代わりに、PrintDocument コンポーネントを使用してグラフィックスやテキストを定義し、PrinterSettings オブジェクトを使用してプリンタ属性を定義し、PageSettings クラスを使用してページ属性を定義します。

9s96f6ft.alert_note(ja-jp,VS.90).gifメモ :

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 コンポーネントのインスタンスがデバイス コンテキストに対応します。

9s96f6ft.alert_note(ja-jp,VS.90).gifメモ :

デバイス コンテキストを識別するハンドルは不要になりましたが、グラフィックス オブジェクトには、高度なシナリオで使用する可能性のある GetHdc メソッドと ReleaseHdc メソッドがあります。

Page プロパティ

Visual Basic 6.0 では、Page プロパティは、アプリケーションの起動以降、または Printer オブジェクトに対して EndDoc ステートメントが最後に使用されたとき以降に印刷されたページのカウントを返します。このプロパティは、多くの場合、印刷時に各ページにページ番号を追加するために使用されています。

Visual Basic 2008 ではページ番号は逐一追跡されませんが、BeginPrint イベント内で変数を設定し、PrintPage イベント内でこの変数をインクリメントすることにより、簡単にカウントを保持することができます。

Port プロパティ

Visual Basic 6.0 では、Port プロパティは、ドキュメントをプリンタに送信するときに使用されるポート名を返します。

Visual Basic 2008 では、Port プロパティがなくなり、PrintDialog コントロールと PrintPreviewDialog コントロールによってポート情報が自動的に管理されます。

RightToLeft プロパティ

Visual Basic 6.0 では、RightToLeft プロパティにより、Printer オブジェクトが双方向プラットフォーム (アラビア語の Windows 95 やヘブライ語の Windows 95 など) で出力を書式設定する方法が決定されます。

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 に設定して印刷すると、17 × 22 インチのページと同量のデータが印刷されます。これは、テキストおよびグラフィックスが、元の高さおよび幅の 2 分の 1 に縮小されて印刷されるためです。

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 フォームにおける印刷のサポート