問題タブ [system.printing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - XML を介して PrintTickets を変更する際のヘルプが必要
System.Printing フレームワーク (主なクラスは PrintQueue、PrintTicket、および PrinterCapabilities です) を介して印刷を制御する作業を行います。私が最近取り組んでいるほとんどのものと同様に、それに関する情報はほとんどありません。この問題を具体化するために、この質問でいくつかの良い情報をまとめたいと思っています。
PrintTickets を使用すると、開発者は、印刷に関する最も一般的な構成設定を適切に処理できます。古い DEVMODE の方法で行う必要はありません (DEVMODE バイナリ ストリームを PrintTickets との間で変換できるので便利です!)。
問題は、それぞれ独自の構成を持つ多数のプリンターがあることです。これらは、PrintTickets 用に作成された優れたプロパティと列挙には含まれません。設定がこのインターフェイスを超えるプリンターを構成する必要がある場合は、PrintTicket を xml にシリアル化し、そこで変更する必要があります。
PrintTicket xml を使用している場合、日常生活は 3 つ以上のスキーマによって支配されています。そのうちの 2 つは Microsoft によるもので、1 つ以上はプリンターの製造元によるものです。2 つの MS スキーマは、
- PrintSchemaFramework http://schemas.microsoft.com/windows/2003/08/printing/printschemaframework
- PrintSchemaKeywords http://schemas.microsoft.com/windows/2003/08/printing/printschemakeywords
生の xml を扱った最初の問題の 1 つは、これらのスキーマをカバーする XSD が見つからないことです。
これらのスキーマの XSD を入手できる場所を知っている人はいますか?
私が遭遇した 2 番目の大きな問題は、ユーザー入力を PrintTicket xml にマッピングすることでした。最適には、「トレイ 3」などのユーザーの入力を取得し、それを PrintCapabilities を介してマップして、その機能に設定するオプションの値を決定したいと考えています。印刷機能のドキュメントはやや不明確であり、適切に行わないと戻ってきて噛まれるようなエッジケースがいっぱいあるのではないかと心配しています.
PrintTicket XML を変更するための良い例はありますか?
これは、この wiki の良い出発点です...
質問1の更新:
2005 年にさかのぼる WinHEC PPT から取得したアドレスに電子メールを送信し、Windows エクスペリエンス - ドキュメントと印刷のプログラム マネージャーである Justin Hutchings から実際の応答を受け取りました (クール、いいえ?):
意思、
Print Schema 名前空間の XSD はありません。Print Schema Specification 1.0 を確認し、それを使用して適合性を検証する必要があります。http://www.microsoft.com/whdc/xps/downloads.mspx
また、PrintVerifier には PrintSchema 検証が組み込まれています。Print Verifier の取得と構成の詳細については、次の URL を参照してください。
c# - 印刷プレビューの変更
(ドキュメントの) 印刷プレビューを表示し、ユーザーに InkPicture コントロールを介してドキュメントに「署名」するように求める ac# アプリを構築しています。インクピクチャ コントロールからビットマップを抽出して PrintDocument に適用するのに問題はありません (印刷プレビューの前のプロセスの早い段階でこれを行い、それらの画像を印刷ドキュメントにペイントします)。しかし、印刷プレビューの目的は、ユーザーは、印刷されるドキュメントを確認してサインオフする必要があります。
ドキュメントを変更済みのドキュメントにリセットしようとしました
印刷プレビュー コントロールを再構築してみました
効果なし。
変更後にコントロールを無効にしても、何もしません。
私はちょっと困惑しています。
c# - InstallPrintQueue: 新しいポートを作成するには? (.net、c#)
ここで、.net フレームワークの System.Printing 名前空間と戦っています。そして、プリントサーバーを管理するためのMSのすべてのツールで有線のものとして常に見たのは、ポートとドライバーの管理機能が欠けていることです。
だから私はここで動作するコードで立ち往生しています:
そして、指定したドライバーを使用してリモートサーバーにキューを作成しますが、ドライバーはサーバーに既に存在している必要がありますが、プリントサーバーに新しいTCP / IPポートを作成する方法が見つかりませんでした、したがって、この方法で新しい印刷キューをインストールすると、何か便利なものになる可能性があります. 既存のポートを持つ新しいキューのみをインストールできる理由がわかりません。ちょっと失敗します。ポートとキューを作成する方法を誰かが知っている場合は、その方法を知りたいです。
c# - System.Printing が printqueue ステータスを返す - プロパティが true を返さない
私は System.Printing を使用して PrintQueue ステータスを調べています。私の目的は、ステータスの更新とエラー、具体的にはブール値 IsOutOfMemory、NeedUserIntervention、IsOutOfPaper、HasPaperProblem、IsPaperJammed、IsInError、IsPaused、IsBusy、IsPrinting、IsProcessing、IsInitializing、IsDoorOpened などを取得することです。問題は、プロパティが true であることを知っていても、true を返さないことです。これらのプロパティで成功した人はいますか? ここで何が間違っているのか、何が欠けているのか、誰にもわかりましたか?
ありがとうジェームズ
vb.net - ネットワーク プリンターと PrintServer.GetPrintQueues メソッド
PrintServer.GetPrintQueues メソッド がネットワーク プリンターを返さないような気がします。
これが本当なら、他にどのような選択肢がありますか?
c# - C# の PrintableArea - バグ?
PageSettings.PrintableArea の幅と高さの値に問題があります。幅、高さ、およびサイズのプロパティは、値を「取得または設定」すると主張しています。また、inflate() 関数は、渡された値に基づいてサイズを変更すると主張しています。
ただし、値を変更するこれらの試みはすべてうまくいきませんでした。Inflate() は無視されます (エラーは発生せず、機能したかのように通過しますが、値は変更されません。
高さ、幅、またはサイズを設定しようとすると、「'System.Drawing.Printing.PageSettings.PrintableArea' の戻り値は変数ではないため変更できません」というコンパイラ エラーが発生します。
これは、説明の「またはセット」の部分が嘘であることを意味するように感じます。
これを知りたい理由: (誰かがいつも尋ねます...) ほとんどの場合、かなりうまく機能している印刷アプリケーション (C#、WinForm) があります。プリンター設定とページ設定オブジェクトを設定して、印刷ダイアログのプリンター プロパティに表示される内容を制御できます。ただし、Microsoft Office Document Image Writer では、これらの設定が無視されることがあり、別の表示がされていても用紙サイズが 0, 0 に戻ります。表示される値に関しては WYSIWYG にしたいので、用紙サイズを元のサイズに戻しますが、印刷可能領域が間違っていると、結果の画像が不安定になります。結果のイメージは、用紙サイズの値ではなく、印刷可能領域のサイズです。これには理由があるのか 、それともそうしないようにする方法があるのか 疑問に思っています.
前もって感謝します。:)
アップデート:
更新 2:
正しく印刷される私の (カスタム サイズ) プリンターの場合、PaperSize を変更すると、それに合わせて PrintableArea と PageBounds が自動的に変更されます。MDIW で PaperSize を変更すると、PageBounds のみが変更されます。何が原因なのかわかりません。
結論:
Nobugz は、PrintableArea を設定できない (通常は設定する必要がない) 理由と、その inflate() 関数が無視される理由を説明する素晴らしい仕事をしてくれたので、それを答えとしてマークします。
この質問をするように促した永続的な問題に関しては、私はまだ途方に暮れています。「ScaleTranform」の提案に応えて、PaperSize および Graphics オブジェクトには既に正しい値が設定されているため、これらの値をいじっても役に立たない可能性があります。そのルートに沿ってできることは、正しいサイズの画像を PrintableArea で取得しているガベージ値にサイズ変更することだと思います。PaperSize を明示的に設定しても PrintableArea を適切に変更できない場合は、バグに関連する動作であると想定します。
この問題に遭遇したのは私だけのようで、イライラしています。少なくとも、これまでのところ、この動作は MODIW でしか観察していません。誰の参考のためにも、できるだけ多くの情報が公開されています。VS2008 で開発している 32 ビットの Win7 を実行しています。問題を再現するには、次の手順を実行します。
c# - 印刷ジョブを送信するコンピューターを見つける方法は?
印刷ジョブを受け入れて実際のプリンターに転送するWindows7用のPostScriptプリンターを作成しています。LANで共有され、LANコンピュータから印刷ジョブを受信できます。印刷ジョブをプリンタに転送する前に、どのコンピュータから印刷ジョブが送信されたかを確認したいと思います。これどうやってするの?詳細は印刷ジョブ自体で利用できますか?ありがとう
c# - 「宛名カード」で2列印刷
私が最初の C# プロジェクトとして開発しているアプリケーションの場合、Outlook で利用できる「カード スタイル」印刷オプションと同様のスタイルで、アプリケーションから情報を印刷できるようにしたいと考えています。
印刷したい方法でレイアウトされたユーザーコントロールを作成し、必要な2列レイアウトのフォームに必要なだけそのコントロールを追加できますが、これまでのところ見つかりませんでした視覚要素を含むフォームのコンテンツを印刷する方法を説明する実用的なチュートリアル/例 (ユーザー コントロールのレイアウトを壊さずに改ページを追加する)。
正しい方向へのアドバイスや指針をいただければ幸いです。
c# - ASP.NETからネットワークプリンターへの印刷
ドキュメントをネットワークプリンター(\ myserver \ myprinter)に送信する必要があります。System.Printingクラスを使用して印刷していますが、Windowsサービスからの場合は正常に機能しますが、ASP.NETアプリからは、ネットワークプリンターではなく、ローカルプリンターにのみ印刷できます。私が得ているエラーは「プリンター名が無効です」ですこれは私がプリンター名を取得するために使用しているものです:
ここでの私のオプションは何ですか?これは権限の問題ですか?
c# - C#.net で PrintQueue.Pause() メソッドを呼び出すとアクセスが拒否される
C#.NET Visual Studio 2008 を使用して Windows 7 の印刷キューを一時停止しようとしています。完全な管理者権限を持っていますが、次のコードを実行してキューを一時停止すると、アクセスが拒否されたと表示されます。私を助けてください。