• 締切済み

VisualBasic 6.0でのプラグラムなのですが、

VisualBasic 6.0でのプラグラムなのですが、 ピクチャボックス内にPrintメソッドで文字を描画し、ピクチャボックスごと画像として印刷しているのですが、 文字の縁のガタガタが目立ちます。 このような印刷方法でも滑らかにする方法はないでしょうか?

みんなの回答

回答No.2

※PrintForm とかそれ系のメソッドを利用したら、画面イメージの単なる転送なので、崩れて当然です。 プリンターオブジェクトに直接描画をしましょう http://hanatyan.sakura.ne.jp/vbhlp/printflm.htm の [指定位置に(文字・罫線)印刷する] が大変参考になります。

  • gungnir7
  • ベストアンサー率43% (1124/2579)
回答No.1

印刷はドライバ依存です。 VB側アプリでやっているのは画面や帳票のデータを BITMAPにしてドライバに送っているだけです。 通常、プリンタのドライバがおかしいとは考えられないので それ以前に問題があるのではと思われます。 例えばtrueTypeでないフォントは、異なる文字サイズには 対応できません。フォントセットのサイズになければそうなります。 VB6の拡張、縮小は単純なもので、当然ギザギザが目立ちます。 たとえTrueTypeのものを使っていたとしても、 後からVB側で拡大・縮小をして加工していては無意味です。 画面とプリンタでは3倍程度解像度が違っていますから、 画面のハードコピーを実サイズで印刷すると帳票上では 1/3X1/3=1/9になります。 この辺を勘違いして画面と同じ程度で印刷しようとすると、 3倍に拡大していることになるのでギザギザが目立ちます。 上記の中のいずれかに原因があるのではと思われますが 設計やソースをご検討してみて下さい。

Niechan
質問者

お礼

回答有難うございます。 おっしゃるとおり、画面を実寸サイズで作成し、印刷しております。 滑らかにするには、実寸の3倍で作成し、印刷時に縮小印刷すればよいのでしょうか? それともこの方法では滑らかなフォントでの印刷はできないのでしょうか?

関連するQ&A

  • 画像の縮小をすると粗くなってしまいます

    640×480pixelのピクチャボックスに ビットマップファイルを読み込み print メソッドで文字を出力してから 120×120pixelのピクチャボックスに StretchBlt を使用して縮小表示していますが、 画像が粗くなり文字が読み取れなくなって困っています。 すっきりきれいに縮小表示する方法があれば教えてください。 よろしくお願いします。

  • C#ピクチャーボックス再描画について

    C#ピクチャーボックス再描画について 動的生成したピクチャーボックスに文字を描画します そのあと、そのピクチャーボックスをD&DでForm内を移動できるようにしています その際、あるピクチャーボックスが別のピクチャーボックスの上を通過したり 他のコントロールが上になったりすると、描画した文字が消えてしまいます。 再描画について調べるとRefleshやUpdateとかができました。 しかし、Refleshを使うと文字を描画する前の状態を再描画してしまいます。 再描画の方法はTimerで10ミリ秒毎ぐらいにしようと思ってます。 Refleshをピクチャーボックスに文字を描画させた後に再描画できるように設定できればいいんですが…。 他に方法があったりしたら教えてください!!

  • 文字間の幅の設定

    ピクチャーボックスのprintメソッドで表示する文字列ですが、 文字間の幅の設定は可能でしょうか?

  • ピクチャボックスの使用方法

    ピクチャボックスをピクセルモードに変更して、Width=2000位にしてLineとprintで描画をしています。 lineは0から2000まで線が引けるのですが、printで文字を書こうとすると、どうやら0から1000までしか書けないようなのです。 これは仕様なのでしょか? それともどこか設定を間違えているのでしょうか? どうか教えてください・・・

  • ピクチャボックス内のコントロールを印刷

    VB6の質問です。 ピクチャボックスの内容を印刷したいのですがうまくいきません。 いろいろ調べてみたら文字とか画像は印刷方法あるみたいですけど ピクチャボックス内のテキストボックスやオプションボタンを印刷する方法がわかりません、、、 PaintPictureでやると白紙の状態で印刷されます。 なにかいい方法はありますでしょうか、、、

  • c++でドル円変換のプラグラムを作りたいのですが

    アドバイスお願いします。 Visual Studio 2008 c++でドル円変換のプラグラムを作りたいのですがよくわかりません。 仕様はedit boxを2つ、ボタンを2つ用意します。 例えばedit box1に「¥1000」または「$1000」と入力し、「¥」、「$」のボタンを押すと、edit box2に入力していたレート金額で計算し、edit box1に記号付き「¥」 「$」で結果を表示します。*小数点以下2桁まで対応 注)$ボタン、¥ボタンが押されたときに呼ばれるメソッド(関数)の中で、金額を計算するのではなく、金額を計算するメソッド(関数)を別に作り、1つのメソッドで&変換、¥変換を行うようにすること。 ダイアログは写真のような感じです。 お願いします(><)

  • c++でドル円変換のプラグラムを作りたいのですが

    アドバイスお願いします。 Visual Studio 2008 c++でドル円変換のプラグラムを作りたいのですがよくわかりません。 仕様はedit boxを2つ、ボタンを2つ用意します。 例えばedit box1に「¥1000」または「$1000」と入力し、「¥」、「$」のボタンを押すと、edit box2に入力していたレート金額で計算し、edit box1に記号付き「¥」 「$」で結果を表示します。*小数点以下2桁まで対応 注)$ボタン、¥ボタンが押されたときに呼ばれるメソッド(関数)の中で、金額を計算するのではなく、金額を計算するメソッド(関数)を別に作り、1つのメソッドで&変換、¥変換を行うようにすること。 ダイアログは写真のような感じです。 補足 プログラムがわからないのと、どこにそのつくったプログラムを貼ればいいのでしょうか? お願いします(><)

  • Bitmap画像の消去について

    やりたいこととして Bitmap画像を表示する前になにかしら背景が描画されています。 そしてボタンを押すとか何かしらイベントが起こったときにBitmap画像を描画します。 そしてまたボタンを押すと背景はそのままでそのBitmap画像だけを消去する ということがしたいです。 今、ピクチャーボックスを使ってBitmap画像を表示することはできます。 ただそのBitmap画像を消去することはできていません。 探しているとピクチャーボックスを白く塗りつぶして、背景を再描画するって方法はあるのですが、いろいろあってその方法は使いたくないです。 Bitmap画像だけを消去する方法はあるのでしょうか? OSはVistaで、VC++2003.netを使っています。 宜しくお願いします。

  • ピクチャボックス内の線を選択(VB6)

    VisualBasic6.0に関する質問です. ピクチャボックス内にグラフィック描画を行い, ある線や丸のみをマウスで選択できるようにしたいと考えています. そのグラフィックがピクチャボックス内に位置する領域を記憶しておき マウスの位置がそこにきたときのみイベントを起こすという 流れで出来そうな気はしているのですが,もしやもっと 簡単な方法がVBの機能で備わっているのでは,と考えていたりします. (領域計算が面倒くさいなぁと・・・) もし,そういった機能,もしくはより簡単な方法をご存知の方が おられましたら,どうぞお教えください. よろしくお願いいたします.

  • ピクチャボックスで一部の文字を回転

    初歩的な質問かもしれませんが・・・ ピクチャボックス内に描画をしようとしているのですが, 縦軸のタイトルを90度回転させて表示させることはできるでしょうか。 ちなみにそこ以外は普通に横書きなので, Picture1.Print "経過時間" のように書いています。 文字列単位でプロパティを変更する方法がわからない状態です。。 わかる方がいましたらよろしくお願いします。

専門家に質問してみよう