VBのPrinterオブジェクトでUnicodeを印字するとゴミが出ます


ガッキー  2004-09-18 23:21:25  No: 85641

データベース(MEDE2000)を使った見積作成用のアプリケーションを作っていますが、その中で単位に使っている「立方メートル」といったUnicodeの文字が印刷出来ずに困っていたので、このページのVisual C++Q&A掲示板で2003/02/14のYuOさんの回答を参考にしたところ、とりあえず印刷は出来るようになりました。
(TextOutWを使って印刷する)
しかし、困ったことに用紙の端にゴミ(「・」と言う記号)が印刷されるようになったのです。位置は印刷したUnicodeの文字の後で改行をしたような場所です。

                    ○(Unicodeの文字)
・←(ここにゴミが出る)

C++が絡んでいるかも知れないので、ここで質問することは適切ではないかも知れませんが、原因がわからず困っています。
よろしくお願いいたします。


魔界の仮面弁士  2004-09-19 00:10:23  No: 85642

> データベース(MEDE2000)
MSDE ですね。

>                     ○(Unicodeの文字)
> ・←(ここにゴミが出る)
出力先のプリンタを変更して見たり、プリンタドライバを変更してみても駄目でしょうか?
というのは、私が使っているメーラの印刷機能でも、同じ現象が出ているからです。

ただ、プリンタによって現象が出る物と出ないものとがあって、
[NEC MultiWriter 2650M (Driver Version 1.40)]だとゴミが現れるのですが、
[NEC Color MultiWriter 9700C (Driver Version 1.03)]や[Cannon iR3250 (Version 5.02)]では
そういった現象が起きていません。


ガッキー  2004-09-19 02:37:21  No: 85643

早速の返答ありがとうございます。
MSDEです。間違えていました。

>出力先のプリンタを変更して見たり、プリンタドライバを変更してみても
>駄目でしょうか?

こちらにあるプリンターは、
[EPSON LP-9500C(Driver Version 3.5.1fc)]
[EPSON PM-3500C(Version 5.21)]
の2つですが、ともに同様な場所にゴミが出ます。

ただ、プリンターを変えると、もっと重大な問題が生じます。
最初の質問にあるTextOutWを使って印刷しているUnicodeの文字だけは印刷位置がずれてしまいます。(これは、プリンタの違いを予め検出しておけば、対処可能なので良いのですが。)


たくまま  2004-10-06 00:49:58  No: 85644

>位置は印刷したUnicodeの文字の後で改行をしたような場所です。
ここで改行をする必要があるのでしょうか?
処理を見ないとなんとも・・・

>ゴミ(「・」と言う記号)
改行コードがはいっているのかな?
あるいはRTRIM関数やTRIM関数で出力文字を編集してもダメでしょうか?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加