我是C#中使用Asp.net MVC 5的新手。
我正在尝试从一个视图创建一个PDF但我没有管理。 经过几天的尝试,我开始在一些论坛上阅读,但我没有找到(或者我可能不理解)如何去做。
我从NuGet,RazorPDF,RazorPDF2以及用于MVC的RazorPDF安装。 我使用iTextSharp 5.0.5.0然后更新到5.5.8.0。 但无论如何,它都有效。
我有不同的错误。 首先是这一个:
RazorPDF.Legacy.Text.DocumentException:未找到Helvetica作为资源
然后:
无法加载类型' iTextSharp.text.html.HtmlParser'来自assembly' itextsharp,Version = 5.5.8.0,Culture = neutral,PublicKeyToken = 8354ae6d2174ddca'
我读了克里斯·哈斯写的一篇很棒的文章。但我不知道如何应用它。所以我的问题是,如何让它在我的确切案例中发挥作用?
这就是我在控制器中所拥有的:
public ActionResult Factura(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Venta venta = db.Ventas.Find(id);
if (venta == null)
{
return HttpNotFound();
}
var detalleVenta = from c in db.DetalleVentas where c.VentaID == venta.VentaID select c;
return new RazorPDF.PdfResult(detalleVenta,"Factura");
}
这是我的观点:
@model IEnumerable<MiContexto.Models.DetalleVenta>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.NombreProducto)
</th>
<th>
@Html.DisplayNameFor(model => model.Cantidad)
</th>
<th>
@Html.DisplayNameFor(model => model.Descuento)
</th>
<th>
@Html.DisplayNameFor(model => model.PrecioSinIva)
</th>
<th>
@Html.DisplayNameFor(model => model.Iva)
</th>
<th>
@Html.DisplayNameFor(model => model.Precio)
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.NombreProducto)
</td>
<td>
@Html.DisplayFor(modelItem => item.Cantidad)
</td>
<td>
@Html.DisplayFor(modelItem => item.Descuento)
</td>
<td>
@Html.DisplayFor(modelItem => item.PrecioSinIva)
</td>
<td>
@Html.DisplayFor(modelItem => item.Iva)
</td>
<td>
@Html.DisplayFor(modelItem => item.Precio)
</td>
</tr>
}
</table>
那么我该怎么做才能从这个视图创建pdf? 我是否必须使用&#34; RazorPDF&#34;或&#34; RazorPDF for MVC&#34;或者NuGet中的其他工具? 我的代码是错误的还是只有&#39;我所做的问题是&#34;它在两年半内没有更新,它需要一个过时版本的iTextSharp并使用一个过时的HTML解析器。&#34;正如克里斯所说的那样?