현재 ITextSharp를 사용하여 브라우저에 표시되지 않는 인쇄용 PDF를 만듭니다. PDF 파일의itextsharp pdf가 생성되었지만 브라우저에 표시되지 않습니다.
세대는 아래의 jQuery를 트리거 인쇄 아이콘을 클릭을 통해 처리됩니다
<script type="text/javascript">
function printDiv() {
$.post("@Url.Action("DownloadAdultReportPdf", "Monthly")",
{
RegionId: $("#RegionId").val(),
DatCodeId: $("#DatCodeId").val(),
AgencyId: $("#AgencyId").val(),
ReportVersionId: $("#ReportVersionId").val()
});
}
인쇄 아이콘 코드는 다음과 같습니다
<input class="print-icon tooltip" title="print this report" type="image" src="~/Content/images/printer-icon-23.png" onclick="printDiv()"/>
은 클릭 이 아이콘은 DownloadAdultReportPdf라는 MonthlyController의 FileResult로 이동합니다. 코드는 아래와 같습니다.
public FileResult DownloadAdultReportPdf(AdultViewModel model)
{
MemoryStream workStream = new MemoryStream();
DateTime dTime = DateTime.Now;
string strPDFFileName = string.Format("SamplePdf" + dTime.ToString("yyyyMMdd") + "-" + ".pdf");
Document doc = new Document();
doc.NewPage();
Paragraph paragraph = new Paragraph();
paragraph.Add("Hello World!");
doc.SetMargins(0f, 0f, 0f, 0f);
string strAttachment = Server.MapPath("~/Downloads/" + strPDFFileName);
PdfWriter.GetInstance(doc, workStream).CloseStream = false;
doc.Open();
doc.Add(paragraph);
doc.Close();
byte[] byteInfo = workStream.ToArray();
workStream.Write(byteInfo, 0, byteInfo.Length);
workStream.Position = 0;
return File(workStream, "application/pdf", strPDFFileName);
}
사용자 브라우저에 PDF를 표시하려면 어떻게합니까?
브라우저는 pdf를 준비 할 수 있어야합니다. 그리고'return File (workStream, ....)'에 코드를 디버깅 해 봤어? –
내가 테스트중인 브라우저는 Chrome의 최신 버전입니다. workStream 변수에 대한 인텔리 센스에서 ReadTimeout을 가져오고 두 경우 모두 WriteTimeout 오류가 System.InvalidOperationException으로 표시됩니다. – CryoFusion87
크레이 테에 두 가지 문제가 있습니다. pdf가 작동하지 않습니다. jquery'post' 호출이 파일을 반환 할 때 응답을 처리하기 위해 정의 된'success' 함수가 없기 때문에 jquery 코드 페이지가 두 번째로 pdf를 다운로드 /보기로 리디렉션하지 않습니다. –