tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル印刷時のカラムずれ
記事No9122
投稿日: 2009/06/29(Mon) 11:34
投稿者従業員
こんにちは、お世話になります。
VB2005

エディターの内容を一旦、VBで読み込み印刷を試みています。
しかし、どういたしましてもカラムがずれてしまいます。
(フォントは MS P にしております)

何か良い方法はありませんでしょうか。

どうぞよろしくお願いいたします。

[ツリー表示へ]
タイトルRe: 印刷時のカラムずれ
記事No9123
投稿日: 2009/06/29(Mon) 12:51
投稿者花ちゃん
> エディターの内容を一旦、VBで読み込み印刷を試みています。
> しかし、どういたしましてもカラムがずれてしまいます。
> (フォントは MS P にしております)

プロポーショナルフォントを使用しているからずれるのです。

[ツリー表示へ]
タイトルRe^2: 印刷時のカラムずれ
記事No9124
投稿日: 2009/06/29(Mon) 18:17
投稿者従業員
花ちゃん先生、直々にありがとうございます。

> プロポーショナルフォントを使用しているからずれるのです。

MS Pのところを下記に書き換えましたが、文字が左右にゆれてしまいます。

Dim f As New Font("MS明朝", 9, FontStyle.Bold)

他に問題があるのでしょうか?

よろしくお願いいたします。

[ツリー表示へ]
タイトルRe^3: 印刷時のカラムずれ
記事No9125
投稿日: 2009/06/29(Mon) 18:53
投稿者花ちゃん
> Dim f As New Font("MS明朝", 9, FontStyle.Bold)

貴方のPCには、そのようなフォントが入っていますか?

下記で確認して見ては。
   Dim f As New Font("MS明朝", 9, FontStyle.Bold)
   Debug.WriteLine(f.Name)

http://hanatyan.sakura.ne.jp/dotnet/font01.htm#no5

私のPCでは、下記の MS 明朝 になりますが。
Dim f As New Font("MS 明朝", 9, FontStyle.Bold)

>MS Pのところを下記に書き換えましたが、文字が左右にゆれてしまいます。

文字が左右にゆれるとはどのようになるのでしょうか?
ずれる(上の行とかと揃わない)のとどこがちがうのでしょうか?

固定ピッチフォントで、3の倍数の(9とか12)フォントサイズを使って試して見て
下さい。
http://hanatyan.sakura.ne.jp/dotnet/Prt11.htm

[ツリー表示へ]
タイトルRe^4: 印刷時のカラムずれ
記事No9126
投稿日: 2009/06/29(Mon) 22:11
投稿者従業員
> 貴方のPCには、そのようなフォントが入っていますか?>
> 下記で確認して見ては。
>    Dim f As New Font("MS明朝", 9, FontStyle.Bold)
>    Debug.WriteLine(f.Name)

結果は入っていませんでした。


下記のように修正しましたが結果は同じでした。
> Dim f As New Font("MS 明朝", 9)

> >MS Pのところを下記に書き換えましたが、文字が左右にゆれてしまいます。

エディター上では下記のようにデータが整然と並んでいますが、

    !-------------------------------------! !--
    !  Point!  max    min  !  max    min  ! !  
    !   1 +ε!   3.8  -28.6 !   7.2   -0.7 ! !  
    !   5 -ε!-103.7 -141.5 ! 202.9   94.7 ! !  
    ! 155 +ε!-103.7 -141.5 ! 202.9   94.7 ! !  
    ! 159 -ε!   3.8  -28.6 !   7.2   -0.7 ! !  

プリントアウトしますと、例えばカラムが行単位でずれてしまいます。

    !-------------------------------------! !--
    !  Point!  max    min  !  max    min  ! !  
    !  1 +ε!   3.8  -28.6 !   7.2   -0.7 ! ! ←このように  
    !  5 -ε!-103.7 -141.5 ! 202.9   94.7 ! !  ←  〃
    ! 155 +ε!-103.7 -141.5 ! 202.9   94.7 ! !  
    ! 159 -ε!   3.8  -28.6 !   7.2   -0.7 ! !  

> 文字が左右にゆれるとはどのようになるのでしょうか?
> ずれる(上の行とかと揃わない)のとどこがちがうのでしょうか?
上の行とそろわないと云うことです。
実際にはもう少し乱れてしまいます。表現力がなくて分かりにくくて
すみません。

[ツリー表示へ]
タイトルRe^5: 印刷時のカラムずれ
記事No9127
投稿日: 2009/06/29(Mon) 22:58
投稿者花ちゃん
> プリントアウトしますと、例えばカラムが行単位でずれてしまいます。

印刷設定が間違っているだけでは、スペースを含めた印刷位置等の
一度単純なデータを使って印刷して見るとかして確認してみては
それでうまくいかないのなら、その時のコードを投稿して下さい。
(但し、そのコードで他の人が事象を確認できるものにして下さい)

http://hanatyan.sakura.ne.jp/dotnet/Prt11.htm

[ツリー表示へ]
タイトルRe^6: 印刷時のカラムずれ
記事No9128
投稿日: 2009/06/30(Tue) 00:15
投稿者従業員
> > プリントアウトしますと、例えばカラムが行単位でずれてしまいます。

少し分かりかけてきました。
今まで全然違うことを行っていました。貴殿のサンプルを拝見しカラムずれはなくなりました。
あとは、応用なのですが、データが40行位ありますので、Dim s As String のところを
配列にしてサイドチャレンジしたいと思います。もう少し勉強させていただきます。その上で改めてご質問させていただきます。
ありがとうございました。

        Dim g As Graphics = e.Graphics
        Dim blackPen As New Pen(Color.Black, 0.2)   '線の太さを0.2に
        Dim f As New Font("MS 明朝", 9)
        Dim br As Brush = Brushes.Black


        'ミリメートルを長さの単位に指定します。
        g.PageUnit = GraphicsUnit.Millimeter

        Dim s As String = "     ! 155 +ε!-103.7 -141.5 ! 202.9   94.7 ! !  "
        Dim n As String = "     !   5 -ε!-103.7 -141.5 ! 202.9   94.7 ! !  "

        g.DrawString(s, f, br, 0, 11)
        g.DrawString(n, f, br, 0, 15)

        g.Dispose()


> 印刷設定が間違っているだけでは、スペースを含めた印刷位置等の
> 一度単純なデータを使って印刷して見るとかして確認してみては
> それでうまくいかないのなら、その時のコードを投稿して下さい。
> (但し、そのコードで他の人が事象を確認できるものにして下さい)
>
> http://hanatyan.sakura.ne.jp/dotnet/Prt11.htm

[ツリー表示へ]