0

XPS ドキュメントを作成して印刷し、さまざまなプリント サーバーのさまざまな印刷キューに送信する Web サービスの構築を完了しています。Web サービスは、サイトの展開に応じて 2 つのモードで実行されます。1 つ目はアプリ プール ID アカウントを印刷ユーザーとして使用するモードで、2 つ目のモードは "follow me" タイプのプリンターにユーザー偽装を使用して、ユーザーが印刷ジョブに対して登録されるようにします。これはすべてうまくいきます。

printqueues の特定のトレイをターゲットにし、ジョブごとに他のさまざまなパラメーターを設定する必要があるため、トレイ名前空間を xml に追加して printickets を生成しましたが、これも機能しているようです。

私の懸念はこれです(そして、私が手を握る必要があるところです)、私はこのすべてのSTAスレッド化されたサーバー側を行っているので、Bobがミックス(A4、A5、封筒)の200のドキュメントを印刷し、チケットがオフになっているときにBobが実行されているとしますプリンターで両面印刷を行い、アプリ プール ID アカウントが実行されているとします。たとえば、さまざまなターゲット トレイの複数のドキュメントを一度に 20 の印刷スレッドで実行し、さまざまなパラメーターを指定した場合、問題が発生するのでしょうか、それともデフォルトのプリンター キュー設定を壊してしまうのでしょうか?

MS によると、MergeAndValidatePrintTicket はさまざまなレベルでスコープを設定できます (私はジョブ レベルで解決します)。マラーキーはそれらでいっぱいのようです。

これを行う人のためのヒントです。対象のプリンターが単純で、サイズの異なる 3 つのトレイしかない場合、チケットで用紙サイズ (ISOA4 など) を設定し、入力ビンを不明に設定するだけで、プリンターはそれを解決します。残念ながら、私が対象としているプリンタには約 7 つのビンがあるため、正確なトレイを対象にする必要があります。

読んでくれてありがとう。

4

1 に答える 1

0

解決策を表示するように編集

ジョン...これは関連するセクションです...

PrintTicket ptclone = pqTarget.UserPrintTicket* .Clone(); * <-- Clone() を削除

//ジョブやその他の設定に使用するトレイを指定するための以下の方法。poj は私の printJob クラスです

PrintTicket pt = GetPrintTicketForJob(ptclone, poj.trayMediaSize, poj.trayNameSpace, poj.trayUri);

ValidationResult vr= pqTarget.MergeAndValidatePrintTicket(ptclone, pt, PrintTicketScope.JobScope);

pqTarget.UserPrintTicket = vr.ValidatedPrintTicket; <--これを削除

//pqTarget.Commit() // localPrintServer モードのプリント サーバーは、ユーザーの偽装の下ではそれを好みませんでした

PrintSystemJobInfo pj = pqTarget.AddJob(poj.id, poj.fileName, false) <-- しないでください

プリント チケットを含む .Net 4.5 オーバーロードを使用してみましたが、localPrintServer モードのサーバーは、サーバーに .Net 4.5 があり、どちらが...

PrintSystemJobInfo pj = pqTarget.AddJob(poj.id.ToString(), poj.fileName, false, vr.ValidatedPrintTicket) <--.Net 4.5 の代わりにこれを行うと、すべて機能します

次の例外を除いて、すべて正常に動作します....

1) サードパーティ ソフトウェアによって制御され、ユーザーの偽装を使用する mfds では、最初のドキュメントが印刷されるまでデフォルトの両面印刷設定がアクティブなままであり、その後は問題ありません。Lexmarks (使用されるアプリケーション プール ID) に対しては問題なく動作します。トレイは、他の設定と同様に、両方のタイプで適切に割り当てられます。

2) 日付と数字 (ドキュメントに文字列として挿入されます) は、XPS ビューアーでは問題なく表示されますが、それらが含まれている段落がたとえば Times New Roman であっても、サン セリフとして再フォーマットされます。

間違いを見つけることができますか?

よろしく

ニール

于 2013-03-18T17:53:12.383 に答える