3

尝试按照RazorPDF 的教程进行操作,但我不知道为什么会收到以下错误消息:非常沮丧和疲倦。

错误信息:

无法加载文件或程序集“itextsharp”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

itextsharp:

运行时版本:v1.1.4322 版本:4.1.2.0

剃刀PDF:

运行时版本:4.0.30319

控制器内部:

   public ActionResult Index()
    {
        var studentMarks = new List<MarksCard>()
        {
           new MarksCard()
            {
                RollNo = 101, Subject = "C#",
                FullMarks = 100, Obtained = 90},new MarksCard() {RollNo = 101, Subject = "asp.net", FullMarks = 100, Obtained = 80},new MarksCard() {RollNo =               101, Subject = "MVC", FullMarks = 100,
                Obtained = 100},new MarksCard() {RollNo = 101, Subject = "SQL Server", FullMarks = 100, Obtained = 75},
        };
       //// return new RazorPDF.PdfResult(studentMarks, "Index");
        return View(studentMarks);

    }

内部视图

@model IEnumerable<TimberBeamCalculator.Models.MarksCard>

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.RollNo)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Subject)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.FullMarks)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Obtained)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.RollNo)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Subject)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.FullMarks)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Obtained)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
            @Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) |
            @Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
        </td>
    </tr>
}

</table>
4

6 回答 6

2

检查以确保您确实将 iTextSharp 放入了正确的位置。我的猜测是你错过了一些东西。

我强烈建议您首先遵循最初的项目示例并尝试让它们首先工作。

于 2014-01-09T21:56:51.760 回答
2

仅当您F5在 Visual Studio 中按进行调试时,才会出现此问题。如果您没有调试,请始终按Ctrl+ F5。问题主要是由于项目文件中的一些错误配置设置。要解决这个问题:

  1. dll从中删除Add Reference

  2. 获取dll.

  3. 添加 this 的引用dll

这应该解决它。

于 2015-04-15T10:25:28.247 回答
0

我对 itextsharp 和 itextsharp.xmlworker dll 有问题,所以我从引用中删除了这两个 dll,并直接从 nuget 包下载了新的 dll,这解决了我的问题。

这种方法可能有助于解决其他人的问题。

于 2021-02-24T11:22:28.583 回答
0

在 Visual Studio 中进行 Web 开发时出现同样的错误。解决方案是从 Nuget Package Manager 安装 itextSharp

于 2021-08-16T13:18:28.427 回答
0

将引用路径添加到您使用 itextsharp 或引用的 dll 的 .csproj

<Reference Include="iTextSharp, Version=4.1.6.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca">
  <HintPath>..packages\iTextSharp-LGPL.4.1.6\lib\iTextSharp.dll</HintPath>
</Reference>
于 2022-03-03T09:23:02.137 回答
-1

然后针对 iTextSharp 的最新 LGPL 源代码进行编译。这样您也可以更改正在使用的目标框架版本。

PSRazorPdf使用HTMLWorkeriTextSharp。它已被弃用,不再受支持。它具有非常有限的 HTML 到 PDF 功能。他们最近将其替换为:http XMLWorker: //sourceforge.net/projects/itextsharp/files/xmlworker/

于 2014-01-09T08:08:43.380 回答