0

ツールとしてC#、asp.netを使用しています。

次のコードを使用して、クライアント側でファイルを送信して開き、クライアント側でドキュメントを開きながら、任意のアプリケーション (Word、PDF リーダーなど) の組み込みの印刷ダイアログ ボックスを同時に開きたいと考えています。

                if (lfileFormat.ToUpper() == "Excel")
                {
                    Response.ContentType = "application/vnd.ms-excel";
                }
                else if (lfileFormat.ToUpper() == "PDF")
                {
                    Response.ContentType = "application/pdf";
                }
                else if (lfileFormat.ToUpper() == "HTML")
                {
                    Response.ContentType = "text/HTML";
                }


                Response.AddHeader("Content-Disposition", string.Format("attachment; filename = {0}", fi.Name));
                Response.AddHeader("Content-Length", fi.Length.ToString());
                Response.TransmitFile(fi.FullName);
                Response.End();
4

4 に答える 4

1

Asposeのようないくつかのコンポーネントでこれを行うことができます。

例:ここ

于 2012-12-11T13:38:14.527 に答える
0

ASP.NET や任意の Web プラットフォームからそれを行うことはできません。ブラウザーはサンドボックス化されています。ユーザーの PC でコマンドを声に出して実行した場合の混乱を想像してみてください !!!

エンド ユーザーがインストールする必要がある独自のクライアント アプリを作成する必要があります。

于 2012-12-11T13:44:19.937 に答える
0

次のようなことができます

String FileName = filename;
String FilePath = filepath;
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "text/plain";
response.AddHeader("Content-Disposition", "attachment; filename=" + FileName + ";");
response.TransmitFile(FilePath + FileName);
response.Flush();
response.End();

たとえば、.pdf ファイルをダウンロードしたい場合は、ダウンロードしたら、コード ビハインド経由でファイルを開くことができますが、そのために別のコードを記述する必要があります。

于 2012-12-11T13:44:03.947 に答える
0

それを行う簡単な方法はありません。サーバー側でファイルを生成し、クライアントに送信しています。クライアントのコンピューターで何が起こっているかを制御することはできません (HollyStyles が言及しているように、混乱を想像してみてください)。

ファイルを開いたときに印刷ダイアログが表示されるように、Excel/Word ファイル内にマクロを含めることをお勧めします。VBE (Office ドキュメントのコード モジュールを動的に操作できるようにする Visual Basic Extensibility) をいじらずに行う最も簡単な方法は、機能を含むテンプレートを作成し、そのテンプレートを使用してドキュメントを生成することです。

たとえば、Excel ワークブックの open イベント ハンドラーでは、次のものを使用できます。

Private Sub Workbook_Open()

    Application.Dialogs(xlDialogPrint).Show

End Sub

しかし、それには別の意味があります (ドキュメントが署名されていることを確認するか、ユーザーがマクロの実行を許可していることを確認してください...)。言うまでもなく、ユーザーがファイルを使用するたびに印刷ダイアログが表示されるため、イライラする可能性があります。

さらに、オフィス以外のファイルの問題は解決しません。これらのケースを処理するには、JS で Window.Print を使用できます。

しかし、全体として、それは厄介になるでしょう:)

于 2012-12-11T13:50:18.580 に答える