在尝试使用内存流显示PDF时无法计算表达式错误



我正在尝试生成我的SharePoint页面的PDF,但不断得到一个"无法计算表达式,因为代码被优化或本机框架是在调用堆栈的顶部"。错误。我的做法正确吗?

protected void btnDownload_Click(object sender, EventArgs e)
{
try
{
SPSite spBtnSite = new SPSite(SPContext.Current.Site.Url);
SPWeb btnSPWeb = SPContext.Current.Web;
string doclibURL = string.Empty;
using (MemoryStream ms = new MemoryStream())
{
using (var pdfWriter = new PdfWriter(ms))
{
ConverterProperties properties = new ConverterProperties();
pdfWriter.SetCloseStream(false);
PdfDocument pdfDocument = new PdfDocument(pdfWriter);
//For setting the PAGE SIZE
pdfDocument.SetDefaultPageSize(iText.Kernel.Geom.PageSize.A4);
Document document1 = new Document(pdfDocument, pdfDocument.GetDefaultPageSize(), false);
using (var document = HtmlConverter.ConvertToDocument(hidText.Text, pdfDocument, properties))
{
}
ms.Position = 0;
byte[] bytesInStream = ms.ToArray(); // simpler way of converting to array
ms.Close();
if (bytesInStream != null)
{
Page.Response.Clear();
Page.Response.ClearHeaders();
Page.Response.ClearContent();
Page.Response.ContentType = "application/pdf";
Page.Response.AddHeader("content-length", bytesInStream.Length.ToString());
Page.Response.BinaryWrite(bytesInStream);
Page.Response.End();
}
}
}
}
catch (Exception ex_btnSubmit_Click)
{
Exceptions.SaveException(UserID, ex_btnSubmit_Click.Message, ex_btnSubmit_Click.StackTrace, (ex_btnSubmit_Click.InnerException != null) ? ex_btnSubmit_Click.InnerException.Message : "");
}
}

你得到了ThreadAbortExceptionResponse.End()。据此,您应该使用HttpContext.Current.ApplicationInstance.CompleteRequest而不是Response.End()

最新更新