プリンタ オブジェクト (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 クラスを使用してページ属性を定義します。
メモ : |
---|
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 コンポーネントのインスタンスがデバイス コンテキストに対応します。
メモ : |
---|
デバイス コンテキストを識別するハンドルは不要になりましたが、グラフィックス オブジェクトには、高度なシナリオで使用する可能性のある 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 |
|
KillDoc |
|
Line |
新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
NewPage |
|
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 ユーザー向け)