[解決済み] ファイルドキュメントをプリンターに送って印刷するにはどうしたらよいですか?
質問内容
大前提はこうだ。
私のユーザーがいくつかのギズモをクリックすると、PDF ファイルがデスクトップに出力されます。このファイルをプリンター キューに送り、ローカルに接続されたプリンターに印刷させる方法はないでしょうか。
string filePath = "filepathisalreadysethere";
SendToPrinter(filePath); //Something like this?
彼はこの作業を何度も行います。教室の各生徒について、彼は小さなレポートカードを印刷する必要があります。そこで、生徒ごとに PDF を生成していますが、ユーザーが生成した pdf、印刷、pdf の生成、印刷、pdf の生成、印刷の代わりに、印刷処理を自動化したいと思います。
これにアプローチする方法について、何か提案はありますか。私は Windows XP で Windows Forms .NET 4 を使用しています。
私はこれを見つけました スタックオーバーフロー の質問で、受け入れられた回答が示唆するところです。
ファイルを作成したら コマンドラインから印刷することができます。 にある Command クラスを使用することができます。 を使用できます。 を使用できます)。
どのようにしてこれを達成するのでしょうか?
どのように解決するのですか?
Acrobat Reader にファイルを印刷するように指示するには、(ここですでに誰かが述べているように)「print」動詞を使用します。その後、プログラム的に Acrobat Reader を終了する必要があります。
private void SendToPrinter()
{
ProcessStartInfo info = new ProcessStartInfo();
info.Verb = "print";
info.FileName = @"c:\output.pdf";
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
Process p = new Process();
p.StartInfo = info;
p.Start();
p.WaitForInputIdle();
System.Threading.Thread.Sleep(3000);
if (false == p.CloseMainWindow())
p.Kill();
}
これは、Acrobat Readerを開き、PDFをデフォルトのプリンタに送るように指示し、3秒後にAcrobatをシャットダウンします。
もし、自分のアプリケーションに他の製品を同梱する気があるなら、GhostScript (無料) や、以下のようなコマンドライン PDF プリンタを使用することができます。 http://www.commandlinepdf.com/ (商用) などのコマンドライン PDF プリンターを使用できます。
注意 サンプルコードでは、PDFを でPDFを開きます。 でPDFを開きますが、これはほとんどの人のマシンではAdobe Acrobat Readerです。しかし、Foxit などの別の PDF ビューアーを使用している可能性もあります ( http://www.foxitsoftware.com/pdf/reader/ ). しかし、サンプル コードはまだ動作するはずです。
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】Microsoft.Extensions.LoggingからILoggerを解決することができない
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] print関数の出力をフラッシュする(pythonの出力をバッファリング解除する)にはどうすればよいですか?
-
[解決済み] アセンブリファイルのバージョンを取得する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み】Excel "外部テーブルが期待された形式ではありません。"
-
[解決済み】バックスラッシュを含むパス文字列のエスケープシーケンスが認識されない件
-
[解決済み】なぜこのコードはInvalidOperationExceptionを投げるのですか?
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み] 2つのリストを結合する
-
[解決済み] ...基礎となる接続は閉じられました。予期しないエラーが受信で発生しました
-
[解決済み] 関数を終了するには?
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015