2011-07-28 4 views
2

웹 응용 프로그램에서 asp : Wizard 컨트롤을 사용하고 있습니다. 마법사의 모든 단계에서 인쇄 할 수 있어야하며 현재 단계뿐만 아니라 해당 단계까지 모든 단계를 인쇄 할 수 있어야합니다. .asp의 모든 단계 인쇄 : 마법사 컨트롤

모든 단계 페이지에 인쇄 단추를 추가하고 javascript : window.Print()를 호출하려고했지만 현재 단계 만 인쇄됩니다.

1 단계로 인쇄하려면 어떻게해야합니까?

나는 PDF 경로를 내려 가기 전에 먼저 javascript에서이 작업을하고 싶습니다. 나는이 같은 somehting 일을 시도했습니다

<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 = 서버 오류 받고 있어요 :

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 + "');"); 

    } 

및 영문에 대한 컨트롤, 그래서 내가 그것을 인쇄하기 전에 문자열을 출력하지만 새 창을 만들 필요가있을 수 있습니다 생각하지만, 그 일하는 것 캔트 ... 어떤 아이디어?

+0

Alicia에 오신 것을 환영합니다. – War

답변

1

나는 내 문제에 대한 해결책을 찾았지만 클라이언트 측에서이를 달성하지 못했습니다. 그러나 ive는 그것을 해결하기 위해 서버 측을 관리했습니다. 위대한 기사를 여기에서 발견했습니다 : Printing in ASP.NET

내 마법사 컨트롤의 모든 단계를 한 번에 인쇄 할 수 있습니다. 모든 도움에 감사드립니다.

+0

이제 아약스에서 컨트롤을 삭제하십시오. 툴킷을 인쇄하려는 마법사 단계 중 하나에 넣으면 ... 중단됩니다. 나는 이것에 대해 생각했다. – War

0

당신은 이미 당신이 그들 모두가 렌더링 있도록 한 페이지에 마법사의 단계를 넣으면 작동합니다 사용하는 자바 스크립트 인쇄 방법 ...

것 같아요 다른 방법은 단순히 각 단계를 탐색하고 인쇄 버튼을 누르십시오.

내가 할 방법은 pdfsharp와 같은 것을 사용하고 각 단계마다 마크 업을 생성하고 각 단계의 마크 업에 대해 pdf 페이지를 생성하도록 지시합니다 ... 거기에서 사용자는 PDF 문서를 가지고 있습니다. 그들은 단순히 평소 PDF 뷰어를 사용하여 저장 또는 인쇄를 볼 수 있습니다.

문제는 javascript 메소드가 DOM 기반 API 호출을 사용하여 브라우저에 페이지를 인쇄하도록 요청하는 것입니다. 궁극적으로 현재 마법사의 단계 만 인쇄 할 수 있다는 것을 의미합니다 ... 현재 PDF를 사용하고 있습니다. 방법은 사용자가 인쇄 전에 예상되는 인쇄물을 미리 볼 수 있고 인쇄 된 것을보다 잘 제어 할 수 있음을 의미합니다.

그것은 비록 조금 더 많은 코드를 필요로 않습니다

...

pdfsharp는 여기에서 찾을 수 있습니다 : http://www.pdfsharp.net/Downloads.ashx

당신은 그것의 무료 및 오픈 소스를 볼 수 있듯이.

+0

답장을 보내 주셔서 감사합니다.하지만 저는 PDF 경로를 따라 가기 전에 javascript에서이 작업을 수행하려고합니다. – Alicia

관련 문제