DOBON.NET DOBON.NETプログラミング掲示板過去ログ

印刷でDrawStringの指定範囲を超えたときの処理

環境/言語:[Windows Vista/7 C# VC2010]
分類:[.NET]

printDoc.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(PrintDoc_PrintPage);


印刷するときに、
private static void PrintDoc_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
  Brush brush1 = new SolidBrush(Color.Black);
  rect = new Rectangle(50, 200, 500, 200);
  e.Graphics.DrawString(複数行, new Font("MS P明朝", 12), brush1, rect);

この時、指定した枠内 rect の範囲で文字が印刷されますが、この時、文字数が多く指定した範囲に収まらないとき、次のページにその続きから印刷したいのですがどのようにしたらできますか?

教えてください。

上記は、ワードのような連なった文字の印刷でなく、名前、顧客、コメント1、コメント2などと項目ごとに印刷場所を指定してその印刷範囲も指定しています。はみ出した場合、2枚目に...と考えています。このはみ出しを知りたいのですが、どうしたらいいですか?

Winアプリです。
このサイトに良いサンプルがあります。

文字列を印刷する
http://dobon.net/vb/dotnet/graphics/printtext.html
ちょっと変更するだけで、いけると思います。

しかし、レイアウトが必要なら帳票ツールを使うと楽です。
簡単な無料で使える Microsoft Report がお勧めです。
Visual Studio の Express Edition には帳票デザイナを統合できませんが、作ったものを利用することは可能です。
SQL Server Business Intelligence Development Studio などから帳票デザイナが使えます。
■No29019に返信(jijiさんの記事)
> http://dobon.net/vb/dotnet/graphics/printtext.html
> ちょっと変更するだけで、いけると思います。
このサンプルで、何とかなりそうです。ありがとうございます。

> しかし、レイアウトが必要なら帳票ツールを使うと楽です。
> 簡単な無料で使える Microsoft Report がお勧めです。
そういうのがあるのですね。調べてみます。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板