2

C#、Microsoft Visual Studio、asp.net を使用して印刷しようとしています。

目標: FAX ドキュメントのすべてのページを印刷しようとしています。

形式: ファックス ドキュメントは、複数のページを持つ 1 つの .tiff ファイルとして受信されます。

実行する必要があること:- .tiff 画像の各ページを繰り返し処理し、すべてを印刷する必要があります。

// This function will iterate all pages, one at a time. //

 protected void PrintAll_Click(object sender, EventArgs e)
 {
    // counts number of pages in the fax document.//
    int number = _FaxPages.Count;
  
    // for loop to iterate through each page. //
    for (int i = 0; i < number; i++)
    {
        string _FaxId = Page.Request["FaxId"];

        _PageIndex = i;

        imgFax.ImageUrl = "ShowFax.ashx?n=" + _FaxId + "&f=" + _PageIndex + "&mw=750";

        PrintAll.Attributes.Add("onclick", "return printing()");             
    }
}

そして私のJavaスクリプトには次のものがあります:

function printing() { window.print(); }

問題は次のとおりです。

  1. この関数は 1 ページ (tiff ファイルの最後のページ) のみを印刷し、Web ブラウザー ウィンドウ全体に埋め込まれた .tiff 画像だけでなく、ウィンドウ全体を印刷します。

    Webブラウザウィンドウ全体ではなく、.tiff埋め込み画像を印刷する方法についてのアイデア。

  2. 私のforループはページを繰り返しますが。print 関数は、ループがすべてのページを反復し、最終ページ (たとえば 6/6 ページ) で停止した後にのみ呼び出されます。そして、その最後のページのみを (ブラウザー ウィンドウの残りのコンテンツと共に) 印刷します。これは私が望んでいることではありません...ボタンやリンクなど、ブラウザウィンドウに余分な素材をすべて印刷したくありません...ブラウザウィンドウから埋め込まれた.tiff画像が欲しいだけです。

4

1 に答える 1

1

現在のコードは、サーバー側のすべてのページをループし、画像の URL を更新してから、ページをクライアントに送信します。これは、ImageUrl常に最後のページのみになることを意味します。

すべての画像を印刷するには、複数の解決策があります。

  • を編集ShowFax.ashxし、すべてのファックス ページを一度に表示するオプションを追加して、これを画像 URL に挿入します。
  • 実行時に各ページの新しいImage要素を親コンテナーに追加します。
  • JavaScript 関数printing()にポストバックを実行させ、ページ インデックスと画像の URL を増やして、コードを繰り返します。
  • ループ クライアント側全体を作成します。

画像のみを印刷するには、CSS スタイルシートで他の要素を非表示にして、次のmedia="print"ように追加します。

<link rel="stylesheet" type="text/css" media="print" href="print.css" />
于 2012-10-02T07:59:35.103 に答える