0

C# で Asp.net MVC 5 を使用するのは初めてです。

1 つのビューから 1 つの PDF を作成しようとしていますが、管理していません。数日間自分で試してみた後、いくつかのフォーラムで読み始めましたが、その方法が見つかりませんでした (または理解していなかったかもしれません)。

NuGet、RazorPDF、RazorPDF2、および MVC 用の RazorPDF からインストールしました。iTextSharp 5.0.5.0 を使用してから、5.5.8.0 に更新しました。しかし、いずれにせよ、それはうまくいきました。

さまざまなエラーがありました。最初はこれでした:

RazorPDF.Legacy.Text.DocumentException: Helvetica がリソースとして見つかりません

その後:

タイプ 'iTextSharp.text.html.HtmlParser' をアセンブリ 'itextsharp、Version=5.5.8.0、Culture=neutral、PublicKeyToken=8354ae6d2174ddca' から読み込めませんでした

ここで、Chris Hass が書いた素晴らしい記事を読みました。しかし、私はそれを適用する方法がわかりません。だから私の質問は、私の正確なケースでそれを機能させる方法は?

これは私のコントローラーにあるものです:

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を作成するにはどうすればよいですか? 「RazorPDF」または「RazorPDF for MVC」、または NuGet の別のツールを使用する必要がありますか? 私のコードが間違っているのか、それとも私が作成したものの「唯一の」問題は、「2 年半更新されていないことです。iTextSharp の古いバージョンが必要で、古い HTML パーサーを使用しています。」クリスが言ったように?

4

0 に答える 0