1

ASP.NET Web API を介してクライアントに iTextSharp (v4.1.6) PDF を返す ASP.NET アプリを開発しています。これは、IE9、Firefox、Opera、Safari など、私が試したすべてのデスクトップ PC ブラウザーで正常に動作します。以下のコードは、PDF を返送する応答を示しています。

このアプリケーションは、IOS 6.1 を実行する Ipad 2 で Web アプリとしても実行されます。iPad で PDF を返すと、次のエラーが表示されます。

このページには次のエラーが含まれています: 行 1 の列 1 のエラー: ドキュメントが空です 行 1 の列 1 のエラー: エンコード エラー

これは、iPad の次のいずれかで発生します: Web App モード、Safari、または Google Chrome。デスクトップPCから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