2011-07-28 15 views
2

私はWebアプリケーションでasp:Wizardコントロールを持っています。ウィザード内のどのステップでも印刷でき、現在のステップだけでなくそのステップまですべてのステップを印刷できる必要があります。aspのすべてのステップを印刷する:ウィザードコントロール

すべてのステップページに印刷ボタンを追加し、javascript:window.Print()を呼び出そうとしましたが、現在のステップだけが印刷されます。

すべての手順を1ページで印刷するにはどうすればよいですか?

私はPDFルートを下に行く前に、これをjavascriptで最初に試してみたいと思います。

protected void Page_Load(object sender, EventArgs e) 
    { 
     StringWriter sw = new StringWriter(); 
     HtmlTextWriter tw = new HtmlTextWriter(sw); 
     this.WizardStep2.RenderControl(tw); 
     string wizardHtmlContent = sw.ToString().Replace("\r\n", ""); 

     string printScript = @"function printDiv(printpage) 
           { 
           var headstr = '<html><head><title></title></head><body>'; 
           var footstr = '</body>'; 
           var newstr = printpage; 
           var oldstr = document.body.innerHTML; 
           document.body.innerHTML = headstr+newstr+footstr; 
           window.print(); 
           document.body.innerHTML = oldstr; 
           return false; 
           }"; 


     this.Page.ClientScript.RegisterStartupScript(this.GetType(), "PrentDiv", printScript, true); 
     this.Button1.Attributes.Add("onclick", "printDiv('" + wizardHtmlContent + "');"); 

    } 

とASPX用:

<form id="form1" runat="server"> 
<div> 
    <asp:Wizard ID="Wizard1" runat="server"> 
     <WizardSteps> 
      <asp:WizardStep ID="WizardStep1" runat="server" Title="Step 1"> 
       step1 
      </asp:WizardStep> 
      <asp:WizardStep ID="WizardStep2" runat="server" Title="Step 2"> 
       step2 
      </asp:WizardStep> 
     </WizardSteps> 
    </asp:Wizard> 
    <asp:Button ID="Button1" runat="server" Text="Button" /> 
</div> 
</form> 

しかし、私は、ウィザードをレンダリングしようとしたとき、私は、3行目の行方不明にrunat =サーバーエラーを取得しています私はこのようなsomehtingをやってみましたコントロール、だから私は新しいウィンドウを作成し、それを印刷する前に文字列を出力する必要があるかもしれないと思うが、傾けることはできないようだ...だれでもアイデア?

+0

Alicia :) – War

答えて

1

私は私の問題の解決策を見つけました。私はそれをクライアント側で達成することはできませんでしたが、私はやりたくないPDFルートを下回るよりも優れたサーバー側を解決することができました。 ここで素晴らしい記事を見つけました: Printing in ASP.NET

私は、ウィザードコントロールのすべてのステップを一度に印刷できます。あなたのすべての協力に感謝します。

+0

今すぐajaxからコントロールを削除してくださいあなたが印刷しようとしているウィザードのステップの1つにツールキットを入れたら、それは壊れるでしょう。私はこれを考えた – War

0

あなたはすでにあなたは彼らがすべてレンダリングして、単一のページにして、ウィザードの手順を置けば動作します使用しているJavaScriptの印刷方法...

私は推測する他の方法は、単純に各ステップを参照することであり、あなたの印刷ボタンを押してください。

私はそれを行う方法はpdfsharpのようなものを使用し、各ステップでマークアップを生成し、マークアップの各ステップのpdfページを作成するように指示します。そこからユーザーはpdf doc彼らは単に彼らの通常のPDFビューアを使用して保存または印刷を表示することができます。

問題は、JavaScriptベースのAPI呼び出しを使用してブラウザにページを印刷することです。最終的には、あなたが現在見ているウィザードのステップしか印刷できないということです。メソッドは、ユーザーが印刷前に予期された印刷をプレビューできることを意味し、印刷内容をより詳細に制御できます。

それはしかし、もう少しコードが必要...

pdfsharpは、ここで見つけることができない。http://www.pdfsharp.net/Downloads.ashx

あなたはその自由とオープンソースを見ることができるように。

+0

お返事ありがとうございましたが、私は私がpdfルートを下る前にjavascriptでこれを動作させようと思っています。 – Alicia

関連する問題