印刷プレビューの印刷エラー – プログラミング – Home

印刷プレビューの印刷エラー
 
通知
すべてクリア

[解決済] 印刷プレビューの印刷エラー


あんだんて
 あんだんて
(@あんだんて)
ゲスト
結合: 20年前
投稿: 4
Topic starter  

ご教授お願い致します。

<開発環境>
.Net2003 C# クライアントアプリ(OS:XP sp2)

動的に生成したグラフイメージを印刷プレビューで
表示し印刷したいのですが、表示されたプレビュー内容
の一部ページ(実際には最後のページ)しか印刷されま
せん。 複数ページを印刷する場合、特別な設定が必要
なのでしょうか?
ソースに問題があるかもしれませんので、下記にソースを
記述しておきます。
よろしくお願いいたします。

private void JobInvitePreView()
{
try
{
// 印刷プレビューダイアログのサイズを設定します。
Size s = SystemInformation.PrimaryMonitorMaximizedWindowSize;
PreviewDlg.Width = s.Width;
PreviewDlg.Height = s.Height;

m_Cnt = 0;
PrintDocument Doc = new PrintDocument();
Doc.DefaultPageSettings.Landscape = true;
PreviewDlg.Document = Doc;

Doc.PrintPage += new PrintPageEventHandler(Doc_PrintPage);

// 印刷プレビューを表示します。
PreviewDlg.ShowDialog();

}
catch ( Exception ex )
{
throw ex;
}
}

プレビュー表示
private void Doc_PrintPage(object sender, PrintPageEventArgs e)
{
try
{
for( ; m_Cnt < this.m_ChartVal.Count;) ←m_ChartValは、ArrayList
{
if( m_Cnt + 1 < this.m_ChartVal.Count )
{
e.HasMorePages = true;
m_Cnt++;
}
else
{
e.HasMorePages = false;
}

// チャート動的生成
CmpChtJobI Chart = new CmpChtJobI();

: チャート設定処理省略・・・

// コントロールの描画位置を設定します。
Rectangle rect = new Rectangle(
e.PageBounds.X, e.PageBounds.Y, e.PageBounds.Width, e.PageBounds.Height);
Chart.ChtJobInvite.Draw( e.Graphics, rect );
break;
}
}
catch ( Exception ex )
{
throw ex;
}
}


引用未解決
トピックタグ
じゃんぬねっと
 じゃんぬねっと
(@じゃんぬねっと)
ゲスト
結合: 20年前
投稿: 9
 

マルチポストですか...
http://forums.belution.com/ja/csharp/000/004/75.shtml


返信引用
あんだんて
 あんだんて
(@あんだんて)
ゲスト
結合: 20年前
投稿: 4
Topic starter  

マナー違反と知りながら
苦渋の決断で故意にマルチポストしました。
【使用上の注意】にある↓
********************************************
必ず全ての掲示板にどのように
解決したかを記述し、かつお礼を書き込んで下さい。
********************************************
は、守ります。
ご気分を害させまして申し訳ありません。
管理者の方の判断で削除されても異論はございません。
ご考慮の程、よろしくお願い致します。


返信引用
じゃんぬねっと
 じゃんぬねっと
(@じゃんぬねっと)
ゲスト
結合: 20年前
投稿: 9
 

っていうか
 「マルチポストは行わないで下さい。」
とあります。

> マナー違反と知りながら

だとすると、ダメですね。
 「誤ってマルチポストしてしまった場合には」
としっかり明記されておりますから。

今回のには当てはまりませんね。


返信引用
あんだんて
 あんだんて
(@あんだんて)
ゲスト
結合: 20年前
投稿: 4
Topic starter  

じゃんぬねっと殿

ご指導ありがとうございます。

TO:管理者殿
ご迷惑をおかけしました。
スレッドの削除をお願い致します。


返信引用
ひっとまん
 ひっとまん
(@ひっとまん)
ゲスト
結合: 20年前
投稿: 3
 

PrintDocumentでのPrintPageイベントってプレビューボタン
押下時以外に印刷ボタン押下時にも再度、呼び出されるんですね。
それで、グローバルに定義されたカウンタを初期化する必要が
あるわけですね。
確かに初期化しなかったら、プレビュー処理時の最終ページを
保持してしまってます。

カウンタ変数の初期化(=0)で解決しました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました