TLDR 印刷するページの量を効率的に決定するにはどうすればよいですか?印刷するページ数を効率的にカウントする方法はありますか?
**ちょうど注記:私は私の質問に対する答えとしてklugeramaの答えをマークしました。私はまだ他の提案のために開いている!
現在のところ、私は請求書を印刷するプロダクションでアプリケーションを使用しています。印刷自体は問題ではありません。顧客情報、請求書の詳細などが印刷されている必要があります。しかし、ソフトウェアが印刷ジョブをプリンタに送信するのにかかる時間について、ユーザーは不平を言っています。
現時点では、印刷にはかなり非効率的な方法を実装しました。印刷するページ数を知るために、私は印刷ジョブを「ドライラン」し、プリンタに送信される前にキャンセルします。次に、印刷ジョブに含まれるページ数を数え、実際にプリンタに送信される印刷ジョブにその情報を追加します。これを行うには、私はPrintDocument.PrintPageメソッドを乱用します。その後、私は "ページ1/2 - ページ2/2"などを印刷することができます。
私は現在、これを別の方法で処理しようと考えています。ヘッダーやフッターのような、ページ内の余白を知っています。ヘッダーとフッターの間のスペースは、記事情報(名前、価格など)を印刷するための空き領域です。 (Graphics.MeasureStringを使用して)文字列の高さを計算すると、記事が印刷可能なページ上でより多くのスペースを占めるときを知ることができます。
これまでは、印刷を実行するクライアントが最速ではないため、印刷が実際にプリンタに送信されるまでに1分ほどかかることがありました。私はこの方法を実装しており、印刷は約5-10秒かかります。しかし、これが道のりであるかどうかは疑問だ。私はこの問題を扱っている唯一の人だとは想像できません。これにどうやって対処しますか?
私は全く異なるアプローチにもオープンしています。
おそらく、あなたはpdfまたはxpsでそれを事前レンダリングすることができます。 – TGlatzer
@ Grumbler85これはオプションになりますが、PDF/XPSを生成するには、印刷ジョブを実行するのに多大な時間がかかります。私はあなたのアプローチについて疑問を持っていますが、私はそれを念頭に置いています。 – Stefan
今日、ほとんどのプリンタはpdfとXPを直接印刷することができるので、チャンスがありますので、時間がかかりません。 – TGlatzer