Asp.net mvc 4 在MVC4中导出为pdf(在pdf中嵌入Html)

Asp.net mvc 4 在MVC4中导出为pdf(在pdf中嵌入Html),asp.net-mvc-4,pdf,itextsharp,Asp.net Mvc 4,Pdf,Itextsharp,我正在尝试使用MVC4导出pdf。尝试在pdf文档中嵌入Html时导出时出错: 命名空间中不存在类型或命名空间名称“tool” “iTextSharp” 我已经添加了iTextSharp.dll,但我不知道为什么会出错。请先帮我谢谢 以下是我的方法: public FileResult ExportData() { List<Tb_ModalListFileUpload> objlist = new List<Tb_ModalListFileUp

我正在尝试使用MVC4导出pdf。尝试在pdf文档中嵌入Html时导出时出错:

  • 命名空间中不存在类型或命名空间名称“tool” “iTextSharp”
我已经添加了iTextSharp.dll,但我不知道为什么会出错。请先帮我谢谢

以下是我的方法:

  public FileResult ExportData()
    {
        List<Tb_ModalListFileUpload> objlist = new List<Tb_ModalListFileUpload>();

        objlist = (from p in obj.Tb_ModalListFileUpload select p).ToList();

        WebGrid wd = new WebGrid(source: objlist, canPage: false, canSort: false);

        string griddata = wd.GetHtml(
        columns: wd.Columns
        (
        wd.Column(columnName: "SRNO", header: "SRNO"),
        wd.Column(columnName: "ModelName", header: "Model Name"),
        wd.Column(columnName: "ModelCC", header: "Model CC"),

        wd.Column(columnName: "ModelRate", header: "Model Rate"),
        wd.Column(columnName: "ModelRC", header: "Model RC"),
        wd.Column(columnName: "IncWith0", header: "Inc With 0"),
        wd.Column(columnName: "IncWith50", header: "Inc With 50"),
        wd.Column(columnName: "Provisional", header: "Provisional"),
        wd.Column(columnName: "NetPriceWith0", header: "Net Price With 0"),
        wd.Column(columnName: "NetPriceWith50", header: "Net Price With 50")

        )
        ).ToString();

        string exportData = String.Format("<html><head>{0}</head><body>{1}</body></html>", "<style>table{ border-spacing: 10px; border-collapse: separate; }</style>", griddata);
        var bytes = System.Text.Encoding.UTF8.GetBytes(exportData);
        using (var input = new MemoryStream(bytes))
        {
            var output = new MemoryStream();
            var document = new iTextSharp.text.Document(PageSize.A4, 50, 50, 50, 50);
            var writer = PdfWriter.GetInstance(document, output);
            writer.CloseStream = false;
            document.Open();

            var xmlWorker = iTextSharp.tool.xml.XMLWorkerHelper.GetInstance();
            xmlWorker.ParseXHtml(writer, document, input, System.Text.Encoding.UTF8);
            document.Add(new Paragraph("Hello World!"));
            document.Close();
            output.Position = 0;
            return new FileStreamResult(output, "application/pdf");
        }

        }
公共文件结果导出数据() { 列表对象列表=新列表(); objlist=(从obj.Tb_ModalListFileUpload中的p选择p).ToList(); WebGrid wd=新WebGrid(来源:objlist,canPage:false,canSort:false); 字符串griddata=wd.GetHtml( 列:wd.columns ( wd.Column(columnName:“SRNO”,header:“SRNO”), wd.Column(columnName:“ModelName”,header:“ModelName”), wd.Column(columnName:“ModelCC”,header:“ModelCC”), wd.列(列名称:“模型费率”,标题:“模型费率”), wd.列(列名:“ModelRC”,标题:“ModelRC”), wd.列(列名称:“IncWith0”,标题:“IncWith0”), wd.列(列名:“IncWith50”,标题:“Inc With50”), wd.列(列名称:“暂定”,标题:“暂定”), wd.Column(columnName:“NetPriceWith0”,header:“NetPriceWith0”), wd.列(列名:“净价含50”,标题:“净价含50”) ) ).ToString(); string exportData=string.Format(“{0}{1}”,“表{边框间距:10px;边框折叠:分离;}”,griddata); var bytes=System.Text.Encoding.UTF8.GetBytes(exportData); 使用(var输入=新内存流(字节)) { var输出=新的MemoryStream(); var document=新的iTextSharp.text.document(PageSize.A4,50,50,50); var writer=PdfWriter.GetInstance(文档,输出); writer.CloseStream=false; document.Open(); var xmlWorker=iTextSharp.tool.xml.XMLWorkerHelper.GetInstance(); ParseXHtml(writer、文档、输入、System.Text.Encoding.UTF8); 添加(新段落(“你好,世界!”); document.Close(); 输出位置=0; 返回新文件streamresult(输出,“application/pdf”); } }
除了iTextSharp的主DLL之外,您还需要添加单独但相关的HTML处理。

后期注释,但可能对其他人有所帮助

该软件包不提供,请尝试单独下载。我使用了以下链接


我也有同样的问题,这就解决了。请记住在下载/提取DLL后引用它。

我已经添加了这些文件,但仍然出现错误。我不知道出了什么问题。如果你有更多的建议,请帮助我。