2011-07-22 26 views
2

私はC#.NETでExcelアドインを作成しました。ユーザがExcelワークブックを開いてワークシートに印刷すると、Excelがその印刷物を処理します。 Excelによって生成される通知はAppEvents.Workbbok_BeforePrint()イベントだけです。その後、ページが印刷される前に各ページにイベントが生成されることはありません。Excelシートの印刷中に、すべてのページのプリンタ/印刷スプーラからの通知を受け取る方法は?

私はExcel側から通知を受け取る方法を分析しました。しかし、1つを見つけることができませんでした。 それから、プリンタ/印刷スプーラから通知を受け取るオプションを試しました。 プリンタ/プリントスプーラからどのように通知を受けることができるので、印刷されたすべてのページについて通知を受け取ることができます。

私を助けてください。

おかげで、よろしく、 Sundareswaran Senthilvel

答えて

0

これは、印刷ジョブのページの多くが存在しない場合は特に、行うことは困難です。それはおそらくそれが価値があるよりも多くの仕事です。 :)

ただし、WinAPI関数EnumJobsGetJobを使用して実行できます。

OpenPrinterを呼び出してプリンタハンドルを取得します。

レベル2のGetPrinterを呼び出してジョブの数を確認します。

EnumJobsを呼び出します。 Excelから印刷ジョブを見つけるまで、JOB_INFO_1、JOB_INFO_2、またはJOB_INFO_3を調べます(上記の他のページのリンクとそれらの情報)。

このジョブIDを使用してGetJobを呼び出して、印刷操作の現在のステータスに関する情報を取得します。

+0

こんにちはケン、お返事ありがとうございます。私はイベントのハンドラを設定できる.NET PrintDocumentクラスを見てきました。 – Eshwar

関連する問題