こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VB2008で開発したアプリの不可解な現象

2年前にVB6からの移行が終りアプリとして100ヶ所位に
配布していますが今回初めて解決できない現象が発生しました。
他の配布先では問題は無く稼動しています。
納入先は遠方なので電話とメールでの対応しかできなくて
お客様のパソコン操作レベルは電話でCopy&Pasteができるレベルです。
functionキーは使えません。
※開発環境 VB2008 .NET FrameWork 3.5.1
 お客様のパソコンはWindows7でXP,Vistaからのアップグレードではない
下記の2点のアドバイスよろしくお願いいたします。
[No1]
塗り潰し印刷ができない。
エラーにはなりません。
[No2]
NET FrameWorkのエラーとなります。
詳細なエラーメッセージは不明です。
Text書き出しはやめて他の方法で対処しましたが
なぜエラーになるのか経験のある方宜しくお願いします。
[No1]--------------------------------------------------------------------------
Private Sub PrintDocument1_PrintPage(ByVal sender As Object,
ByVal e As System.Drawing.Printing.PrintPageEventArgs)
Handles PrintDocument1.PrintPage
Dim drawbrushWhiteSmoke As New SolidBrush(Color.WhiteSmoke)
With e.Graphics
.FillRectangle(drawbrushWhiteSmoke, 15 , 80, 180, 6) '塗り潰し
End With

[No2]--------------------------------------------------------------------------
Private Sub XXXXX()
Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift_JIS")
Dim File_Name As String = フォルダー名 & "Data\Prev.txt"
System.IO.File.WriteAllText(File_Name, Out_MitumoriNo, enc)

投稿日時 - 2018-11-17 02:15:27

QNo.9558689

困ってます

質問者が選んだベストアンサー

推測ですが、

1)プリンタの中間色処理と相性が良くない。
プリンタの機種によって相性が変わりますが、プリンタの印刷設定で相性が変化する場合があるようです。

2)OSが日本語版ではないか、日本語以外の言語設定になっているのかも知れません。
この文字コード処理は.NETに実装されているわけではなくOSに処理を委ねているだけだとのことですから、Shift JISをOSがサポートしていない可能性が考えられます。

投稿日時 - 2018-11-17 13:24:51

お礼

お礼が遅くなり申し訳ございません。
[No1]の塗り潰し印刷ができない件は教えて頂いたプリンタとの
相性が良くないのが原因でした。
Color.WhiteSmokeをColor.FromArgb(225,225,225)で解決しました。
お世話になりました。
[No2]のText書き出しの件はパソコンは日本製でした。
納得できないのですが他の方法で正常に処理できているので良しとしました

投稿日時 - 2018-11-28 00:19:17

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

[No1]についてはわかりませんけど[No2]は起こりえるExceptionから原因を推測されるとよろしいのではないでしょうか?
本当はエラーメッセージが分かればいいのでしょうけど。
https://docs.microsoft.com/ja-jp/dotnet/api/system.io.file.writealltext?view=netframework-3.5

投稿日時 - 2018-11-17 11:29:50

お礼

お礼が遅くなり申し訳ございません。
これからもよろしくお願いいたします。

投稿日時 - 2018-11-28 00:22:06

ANo.1

> 塗り潰し印刷ができない。

画面や印刷プレビューはOKだけど、プリンタに送った時だけNGとかでしょうか?
他の文字や図形は印刷できるけど、塗りつぶし部分だけがおかしい?

プリンタで印刷を行う方法は大きく2種類あります。
1)文字を印刷する座標や文字コード、矩形を描画する座標などをプリンタに送り、プリンタで描画、印刷してもらう方式。
  プリンタへのデータ転送量が少なく、印刷速度が速いのが特徴。
  プリンタが持っていないフォントが別のフォントに置き換わったり、塗り潰しの模様のパターンが違ったりって事があり得ます。
2)文字や画像をパソコン側で描画して、プリンタに画像を送る方式。
  送信するデータが大きいです。
  細い線とか文字がジャギジャギになったりって事があります。

1)の設定で、プリンタのドライバに塗りつぶしの命令がうまく伝わらないとか。
プログラムでどうこうって話でもないので、根本的なやり方変えてみて様子見るとか。

プリンタの印刷の設定で、「高速印刷」になってるなら「きれいに印刷」とか、「ビットマップを送信」とかの設定が無いか確認して設定変更してみるとか。

--
> [No2]
> NET FrameWorkのエラーとなります。

処理が不明瞭ですが、フォルダー名が日本語とか空白文字を含んでる場所だったら?とかは気になるかも。
別の、英名の短いフォルダーを指定してみては。

投稿日時 - 2018-11-17 10:04:30

お礼

早速の回答ありがとうございます。

1)請求書印刷で使っているので文字・罫線は多用していますが
 正常に印刷しています。
 塗り潰しの件はもう一度プレビューとプリンター設定を確認します

2)のText出力は実際のフォルダーは日本語ではなく
  "C:\test\" & "Data\Prev.txt"です。
 単純に数字12桁書き出すだけなのに???
 

投稿日時 - 2018-11-17 10:53:42

あなたにオススメの質問