2016-09-08 20 views
-3

私は、iTextSharpを使用して.NETアプリケーションでPDFを作成しています。私は保存するためにPDFをサーバに保存/書いておく必要はありません。ユーザーのローカルマシンにファイルを作成するだけです。コントローラを下記に掲示。どこが間違っているのか分かりません。 'リターンパス' はエラーを投げている:iTextSharp PDF生成エラー

"エラーCS0029は、暗黙的に に型 'string' を変換できません 'System.Web.Mvc.FileResult'"

[HttpPost] 
    public FileResult DailyReport(string path ="") 
    { 
     path = !String.IsNullOrWhiteSpace(path) ? path : String.Format("~/downloads/daily-report.pdf"); 
     var report = new Document(PageSize.LETTER, 10, 10, 10, 10); 
     PdfWriter.GetInstance(report, new FileStream(MapPath(path), FileMode.OpenOrCreate)); 
     report.Open(); 

     var table = new Table(2, 1) { Width = 100, Border = 0, Cellpadding = 2 }; 

     table.AddCell(
       new Cell(new Paragraph("Daily Schedule", new Font(Font.TIMES_ROMAN, 18, Font.BOLD))) 
       { 
        Border = 0, 
        HorizontalAlignment = Element.ALIGN_CENTER, 
        Colspan = 2 
       }); 
     table.AddCell(new Cell { Colspan = 2, Border = 0, Leading = 2 }); 

     report.Add(table); 
     report.Close(); 

     return path; 
    } 
    public static string MapPath(string path) 
    { 
     return (path.StartsWith("~") ? System.Web.HttpContext.Current.Server.MapPath(path) : path); 
    } 

をこの問題を解決する方法エラー?

+0

あなたはあなたにどのような問題があるのか​​を教えてくれなかったし、質問もしなかったので、どちらが間違っているのかはわかりません。エラーが発生していますか?それは何をしていますか、それはあなたが期待するものとどのように違うのですか? – Amy

+0

@Amy更新された質問。取得中 "エラーCS0029暗黙のうちに 'string'型を 'System.Web.Mvc.FileResult'" "に変換できません" –

答えて

2

あなたの方法は

public FileResult DailyReport(string path ="") 

FileResultインスタンスを返すように宣言されていますが、string

return path; 

を返し、.NETがstringFileResultことを確認する方法は考えていません。したがって、

エラーCS0029は、暗黙のうちに 'System.Web.Mvc.FileResult'

に型 'string' を変換できません。あなたは、単に、例えば、代わりにFileResultインスタンスを返す必要があります

return new FilePathResult(path, "application/pdf"); 
関連する問題