2016-07-05 2 views
0

저는 SharePoint 2013 사이트에서 일하고 있으며 PDF로 페이지를 저장할 수있는 기능을 추가했습니다. PDF 변환은 타사 라이브러리 인 SelectPdf에 의해 처리됩니다. 페이지에있는 "PDF 다운로드"버튼이 한 번만 작동한다는 것을 제외하고는 모든 것을 작동 (렌더링 및 파일 다운로드) 할 수있었습니다. 즉, 버튼을 클릭 한 횟수에 관계없이 코드 숨김의 클릭 이벤트가 한 번만 발생합니다 (10 초 이상 간격으로 클릭한다는 사실을 알 수 있음). PDF 파일을 다시 다운로드하려면 페이지를 새로 고쳐야합니다. 는 내가 "안녕하세요 세계가"예 (아래 참조) 문제를 파악하기 위해 함께 넣어 : 나는 그것을합니다 (ThreadAbortException이를 던져) 문제를 발생 Response.End()라고 생각 초에ASP.NET "application/pdf": 한 번만 실행되는 코드

protected void lnkPdfDownload_Click(object sender, EventArgs e) 
{ 
    Response.Clear(); 
    Response.ClearContent(); 
    Response.ClearHeaders(); 
    Response.ContentType = "application/pdf"; 
    Response.AddHeader("content-disposition", "attachment;filename=test.pdf"); 

    /************************************ Create PDF File ************************************/ 
    string html = @"<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Strict//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd""> 
        <html dir=""ltr"" lang=""en-US""> 
        <body><h1>Hello World</h1></body> 
        </html>"; 
    HtmlToPdf converter = new HtmlToPdf(); 
    PdfDocument doc = converter.ConvertHtmlString(html); 
    byte[] bytes = doc.Save(); 
    Response.OutputStream.Write(bytes, 0, bytes.Length); // ALTERNATIVE: doc.Save(Response.OutputStream); 
    /************************************ Create PDF File ************************************/ 

    //Response.End(); // This throw a ThreadAbortException, therefore I'm using the alternative code below 
    Response.Flush(); 
    Response.SuppressContent = true; 
    HttpContext.Current.ApplicationInstance.CompleteRequest(); 
} 

을,하지만 난 대체 다른 코드와 함께 그리고 나는 여전히 같은 문제가있다. (예외는 이제 던져지지 않는다.)

SelectPdf 라이브러리에 문제가 있다고 생각하지 않습니다. 전체 블록 ("Create PDF File"주석 사이에 있음)을 주석 처리 할 수 ​​있으며 동일한 작업 (분명히 PDF가 생성되지 않음)을 얻을 수 있습니다.

나는 "다운로드"버튼을 최대 2 회까지 성공적으로 클릭 할 수 있음을 알아 냈습니다 (드물지만 일관성이 없습니다). 세 번째는 아무 일도 일어나지 않습니다.

이것은 큰 문제는 아니지만, 내가보기에는 잘못되었다고 생각합니다. 이유는 다음과 같습니다. "다운로드"버튼을 클릭하고 내 PDF 파일을 가져온 후 SharePoint 페이지에서 편집 모드를 시작할 수 없습니다. "로드 중"메시지는 계속 회전하지만 아무 것도 발생하지 않습니다 (페이지를 새로 고침하지 않는 한 다시).

누구에게이 문제가 있습니까? 나는 온라인으로 보았지만 그것에 관해 아무것도 찾을 수 없었다. Internet Explorer 11과 Chrome 51을 사용하고 있습니다. 자세한 정보가 필요하면 알려주십시오. 고맙습니다.

답변

0

PDF 단추를 다시 누르지 않고 편집 모드로 들어가는 다운로드 단추를 클릭하면 javascript/jquery 오류가 발생하지 않습니까? 특히 페이지를 새로 고침하면 모든 것이 다시 작동합니다.

+0

모든 예외 (IE)를 중단 할 수있는 옵션이 활성화되었지만 throw되는 JavaScript 오류가 표시되지 않습니다. 모든 응답 코드를 제거하면 이벤트가 항상 발생하는 것으로 나타났습니다. – Frederic

관련 문제