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;
}