0
我正在使用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()"/>
点击此图标转到MonthlyController中的FileResult,名为DownloadAdultReportPdf,其代码如下所示:
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的能力。并有你调试'返回文件(工作流,....)'任何错误的代码? –
我正在测试的浏览器是Chrome的最新版本,当我在工作流变量的intellisense上我得到ReadTimeout和WriteTimeout错误,在这两种情况下显示为System.InvalidOperationException – CryoFusion87
有两个问题首先craete pdf不工作第二个与你的jQuery代码页不会重定向到下载/查看pdf,因为当你的jquery'post'调用返回文件时,没有'success'函数定义来处理响应。 –