.NET4 MVC3 VS2010을 사용하고 있습니다. 우리는 ABCpdf를 사용하여 HTML을 pdf로 변환하고 브라우저로 스트리밍합니다. 문제는 pdf를 새 창이나 탭에서 열 수있는 방법을 찾아야한다는 것입니다. 나는 비슷한 문제에 관한 많은 글을 읽었지만이 특별한 경우에 도움이 될만한 것을 찾을 수 없었다. 페이지의 버튼 (링크가 아님)을 클릭하면 컨트롤러 동작으로 해당 페이지의 HTML에서 메모리 스트림을 만든 다음 pdf로 변환하여 브라우저로 보냅니다. 해당 페이지에 대한보기버튼을 클릭하거나 새 창이나 탭에서 스트리밍 된 페이지 열기
번호 : VAR = pdfUrl 및 String.format ("window.location.href ="{0} ";", Html.BuildUrlFromExpressionForAreas (c => c.GeneratePdf (myURL이))) ; (Html.Button ("btnPdf", "PDF를 생성", HtmlButtonType.Button, pdfUrl))) @ }
코드 MyController에 행동 : 공공 ActionResult의 GeneratePdf (문자열 URL) 문서의 pdfDoc = 새로운 문서 (); int docId; MemoryStream outputStream = 새 MemoryStream();
및 기타 pdf 변환 코드 ..... ..... byte [] pdfData = pdfDoc.GetData(); outputStream.Write (pdfData, 0, pdfData.Length); outputStream.Position = 0; 새로운 FileStreamResult를 반환합니다 (outputStream, "application/pdf"); }
잘 작동하지만 pdf는 동일한 창/탭에 표시됩니다. 브라우저에서 새 창이나 탭으로 데이터를 스트리밍하려면 어떻게해야합니까? 신생아입니다. 자세한 도움을 주시면 감사하겠습니다. 이 경우 대상 속성이 작동하지 않습니다. window.open을 단추에 대한보기 코드로 열 수 없으며 트릭도 수행 할 수 있는지 확신 할 수 없습니다.
@Html.ActionLink(
"Generate PDF",
"GeneratePdf",
"MyController",
null,
new {
url = "some url",
target = "_blank"
}
)
또는 당신이 버튼을 원한다면 당신은 자바 스크립트 사용할 수 있습니다 : 사전
빠른 응답 감사드립니다. 두 번째 제안과 비슷한 코드를 만들었지 만 Firebug를 사용하면 "$ is defined"가됩니다. – FZF
@FZF, jquery입니다. 귀하의 페이지에 포함되어 있습니까? –
마스터 페이지에 포함되어 있습니다. 나는 그것을 더 조사 할 것이다. – FZF