【问题标题】:iTextsharp PDF Generation ErroriTextsharp PDF 生成错误
【发布时间】:2016-09-08 20:56:57
【问题描述】:

我正在使用 iTextSharp 在 .NET 应用程序中创建 PDF。我不需要将 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);
    }

如何解决这个错误?

【问题讨论】:

  • 由于您没有告诉我们您遇到了什么问题,也没有提出任何问题,我们也不确定您哪里出错了。你有错误吗?它在做什么,这与您的预期有何不同?
  • @Amy 更新了问题。获取“错误 CS0029 无法将类型 'string' 隐式转换为 'System.Web.Mvc.FileResult'””

标签: c# asp.net-mvc itext


【解决方案1】:

您的方法被声明为返回一个FileResult 实例

public FileResult DailyReport(string path ="")

但你返回一个string

return path;

而.Net 不知道如何将string 变成FileResult。因此,

错误 CS0029 无法将类型“字符串”隐式转换为“System.Web.Mvc.FileResult”

您应该简单地返回一个 FileResult 实例,例如

return new FilePathResult(path, "application/pdf");

【讨论】:

    猜你喜欢
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 2011-03-24
    • 2011-06-29
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    相关资源
    最近更新 更多