- PR -

PrintDocument.Print()でFinePrint2000に印刷中にキャンセルでエラー

1
投稿者投稿内容
うちやま
会議室デビュー日: 2005/06/06
投稿数: 8
投稿日時: 2005-06-06 21:56
PrintDocumentを利用してFinePrint2000に印刷し、印刷中に印刷中ダイアログでキャンセルを行うとエラーが発生する。
「System.ComponentModel.Win32Exception: パラメータが間違っています。」

<サンプルコード>
Private Sub Button1_Click(.....) Handles Button1.Click
Try
PrintDocument1.Print() <= ここでエラー
Catch ex As Exception
System.Diagnostics.Debug.WriteLine(ex.StackTrace())
End Try
End Sub

Private Sub PrintDocument1_PrintPage(.....) Handles PrintDocument1.PrintPage
Static page As Integer = 1
If page > 200 Then
e.HasMorePages = False
Else
e.HasMorePages = True
End If
e.Graphics.DrawString(page.ToString() & "ページ", Me.Font, Brushes.Black, 10, 10)
page += 1
End Sub

PrintDocument1はツールボックスからフォームに貼り付けたものをそのまま使っています。
他のプリンタ「EPSON LASER LP-8300S」では問題なくキャンセルできました。
FinePrint5を使っても同じでした。

FinePrintの販売元に聞くことかもしれませんが原因又は、回避策の分かる方がいらしたら教えて下さい。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-06-07 09:43
引用:

FinePrintの販売元に聞くことかもしれませんが原因又は、回避策の分かる方がいらしたら教えて下さい。


とりあえず例外をハンドル出来るのであれば、落ちてしまうのは防げますけど。



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
うちやま
会議室デビュー日: 2005/06/06
投稿数: 8
投稿日時: 2005-06-07 10:09
>とりあえず例外をハンドル出来るのであれば、落ちてしまうのは防げますけど。

すいません。説明が不足していました。
例外のハンドルで対応した場合、以下の問題が発生します。
・アプリケーションを終了するまでPrintDocumentで出力される印刷中ダイアログが消えない。PrintDocumentを破棄(Dispose)しても消えない
・アプリケーションを終了するまでスプール中のJOBが消えない

あきらめて印刷中ダイアログは独自に作成したものを出し、スプール中のJOBは自分で削除するしかないかと考えています。
これ以外の方法があれば知りたいと思います。
1

スキルアップ/キャリアアップ(JOB@IT)