Trying to follow this tutorial for RazorPDF, and I don't know why am I getting the following error message: Very frustrated and tired.
Error Message:
Could not load file or assembly 'itextsharp' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
itextsharp:
RunTimeVersion: v1.1.4322 Version: 4.1.2.0
RazorPDF:
Run Time version: 4.0.30319
Inside the controller:
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);
}
Inside View
@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>
Check to be sure that you actually have iTextSharp going into the correct place. My guess is you are missing something.
I'd strongly suggest you start by following the initial project samples and trying to get them to work first.
This problem occurs only if you press F5 in Visual Studio to debug. If you are not debugging then always press Ctrl+F5. The problem is mainly due to some wrong configuration setting in Project File. To fix it:
remove the dll
from Add Reference
.
get a fresh copy of dll
.
Add the Reference of this dll
.
This should fix it.
I have issue with itextsharp and itextsharp.xmlworker dlls so I have removed those both dlls from references and downloaded new dlls directly from nuget packages, which resolved my issue.
May be this method can be useful to resolved the issue to other people.
And then compile it against the latest LGPL source code of iTextSharp. This way you can change the in use target framework version as well.
P.S. RazorPdf
uses HTMLWorker
of iTextSharp. It's deprecated and won't be supported anymore. It has a very limited HTML to PDF capabilities. they have replaced it with XMLWorker
lately: http://sourceforge.net/projects/itextsharp/files/xmlworker/
User contributions licensed under CC BY-SA 3.0