1

我正在开发一个 ASP.NET 应用程序,它通过 ASP.NET Web API 向客户端返回 iTextSharp (v4.1.6) PDF。这适用于我尝试过的所有桌面 PC 浏览器,例如 IE9、Firefox、Opera 和 Safari。下面的代码演示了发回 PDF 的响应。

该应用程序还可以在运行 IOS 6.1 的 Ipad 2 上作为 Web 应用程序运行。当我在 iPad 上返回 PDF 时,我收到以下错误。

此页面包含以下错误:第 1 行第 1 列的错误:文档为空 第 1 行第 1 列的错误:编码错误

这发生在 iPad 上的以下任何一种情况下:Web App 模式、Safari 或 Google Chrome。当我将 PDF 从我的台式电脑通过电子邮件发送到我的 iPad 时,PDF 本身确实可以打开并查看良好,因此它不认为 PDF 本身存在问题,而是我将其提供给客户的方式存在问题。

任何帮助将不胜感激 - 我已经坚持了很长一段时间!

生成 PDF 的 API 代码:

[HttpPost]
public string GetReport(JObject jObject)
{
    var context = HttpContext.Current;

    using (var ms = new MemoryStream())
    {
        MyPDF.Generate(ms); // Fills the Memory Stream with the iTextSharp PDF

        var data = ms.ToArray();
        var response = context.Response;
        response.Cache.SetCacheability(HttpCacheability.NoCache);
        response.ContentType = "application/octlet-stream";
        response.AddHeader("content-length", data.Length.ToString(CultureInfo.InvariantCulture));
        response.AddHeader("content-disposition", "attachment; filename=" + fileName.Replace(" ", string.Empty) + ".pdf");
        response.BinaryWrite(data);
        context.ApplicationInstance.CompleteRequest();
    }

    return string.Empty;
}
4

0 回答 0