【问题标题】:Generate PDF from view从视图生成 PDF
【发布时间】:2016-11-04 17:17:06
【问题描述】:

我有一个 mvc 视图,我想使用我的数据库中的数据将此视图生成到 PDF 文件。我不想不用Rotativa。

我该怎么做?有没有简单的解决方案?

这是我显示发票详细信息的视图:

@model Webb.Models.Faktury

@{
    ViewBag.Title = "Faktura";
}

<h2>@ViewBag.Title.</h2>

<h4>Szczegóły.</h4>
<hr />

<div>
    <dl class="dl-horizontal">
        <dl class="dl-horizontal">
            <br>

            <table width='100%' cellspacing='0' cellpadding='2'>
                <tr><td class="topF" align='center' style='background-color: rgb(239, 239, 239);' colspan='4'>Faktura VAT<b></b></td></tr>
                <tr>
                    <td>
                        <br>
                        <p>Numer faktury </p><i class="fa fa-file-text-o" aria-hidden="true" title="Numer faktury" style="color: rgb(113, 165, 224);"></i>
                        <b>@Html.DisplayFor(model => model.FAK_Numer) </b>
                    </td>
                    <td>
                        <br>
                        <p>Data sprzedaży </p><i class="fa fa-calendar-plus-o" aria-hidden="true" title="Data sprzedaży" style="color: rgb(113, 165, 224);"></i>
                        <b>@Html.DisplayFor(model => model.FAK_DataS) </b>
                    </td>
                    <td>
                        <br>
                        <p>Termin zapłaty </p><i class="fa fa-calendar-times-o" aria-hidden="true" title="Termin zapłaty" style="color: rgb(113, 165, 224);"></i>
                        <b>@Html.DisplayFor(model => model.FAK_TerminZ) </b>
                    </td>
                </tr>
                <tr colspan='2'>
                    <td>
                        <br>
                        <p>Nabywca </p><i class="fa fa-user-plus" aria-hidden="true" title="Nabywca" style="color: rgb(113, 165, 224);"></i>
                        <b>@Html.DisplayFor(model => model.Klienci.KLI_Nazwa), ul. @Html.DisplayFor(model => model.Klienci.KLI_Ulica), @Html.DisplayFor(model => model.Klienci.KLI_KodP) @Html.DisplayFor(model => model.Klienci.KLI_Miasto)</b>
                    </td>
                    <td>
                        <br>
                        <p>Sprzedawca </p><i class="fa fa-male" aria-hidden="true" title="Sprzedawca" style="color: rgb(113, 165, 224);"></i>
                        <b>@Html.DisplayFor(model => model.Firma.FIR_Nazwa), ul. @Html.DisplayFor(model => model.Firma.FIR_Ulica), @Html.DisplayFor(model => model.Firma.FIR_KodP) @Html.DisplayFor(model => model.Firma.FIR_Miasto)</b>
                    </td>
                </tr>

                <td>
                    <br>
                    <p>Forma zapłaty </p><i class="fa fa-usd" aria-hidden="true" title="Forma zapłaty" style="color:#f26d41"></i>
                    <b>@Html.DisplayFor(model => model.FAK_FormaZ)</b>
                    @if (Model.FAK_FormaZ == "przelew")
                    {
                        <br><br>
                        <p>Rachunek </p><i class="fa fa-credit-card" aria-hidden="true" title="Rachunek" style="color: rgb(113, 165, 224);"></i>
                        <b>@Html.DisplayFor(model => model.Firma.FIR_Rachunek)</b>
                    }
                    <br>
                </td>

                    <td><br><br></td>
                <tr><td class="topF" align='center' colspan='4'><br></br></td></tr>

                <tr><td class="topF" align='left' colspan='4'>Wiersze:<b></b></td></tr>
                <td><br></td>
                <tr style="background-color: rgb(34, 117, 177);color:#ffffff">
                    <th>Nazwa</th>
                    <th>Jednostka</th>
                    <th>Cena brutto</th>
                    <th>Vat</th>
                </tr>
                @foreach (var item in Model.Wierszes)
                {
                    string selectedRow = "";
                    if (item.WIE_Pid == ViewBag.PRO_Id)
                    {
                        selectedRow = "success";
                    }
                    <tr class="@selectedRow">

                        <td>
                            @item.Produkty.PRO_Nazwa
                        </td>
                        <td>
                            @item.WIE_Ilosc @item.Produkty.PRO_Jednostka
                        </td>
                        <td>
                            @item.Produkty.PRO_CenaB @item.Produkty.PRO_Waluta
                        </td>
                        <td>
                            @item.Produkty.PRO_Vat %
                        </td>
                    </tr>
                }

                <td>
                    <br>
                    <p>Rabat </p><i class="fa fa-minus" aria-hidden="true" title="Rabat" style="color: rgb(113, 165, 224);"></i>
                    <b>@Html.DisplayFor(model => model.FAK_Rabat) %</b>
                </td>
                <tr style="background-color: rgb(34, 117, 177);color:#ffffff">
                    <th></th>
                    <th>Suma (brutto)</th>
                    <th>Suma (brutto po rabacie)</th>
                    <th>w tym Vat</th>
                </tr>
                    <td>

                    </td>
                    <td>
                        @Model.Wierszes.Sum(x => x.Produkty.PRO_CenaB * x.WIE_Ilosc) @Model.Wierszes.Min(x => x.Produkty.PRO_Waluta)

                    </td>
                    <td>
                        @Model.Wierszes.Sum(x => x.Produkty.PRO_CenaB * x.WIE_Ilosc - (x.Faktury.FAK_Rabat / 100 * (x.Produkty.PRO_CenaB * x.WIE_Ilosc))) @Model.Wierszes.Min(x => x.Produkty.PRO_Waluta)

                    </td>
                    <td>
                        @Model.Wierszes.Sum(x => (x.Produkty.PRO_CenaB * x.WIE_Ilosc) - (x.Produkty.PRO_CenaN * x.WIE_Ilosc)) @Model.Wierszes.Min(x => x.Produkty.PRO_Waluta)

                    </td>
                    <!--@Model.Wierszes.Sum(x=> x.Produkty.PRO_CenaB)-->





</table>




        </dl>
</div>
<p>
    @Html.ActionLink("Edit", "Edit", new { id = Model.FAK_Id }) |
    @Html.ActionLink("Back to List", "Index")
</p>

我该如何解决这个问题?

【问题讨论】:

    标签: asp.net asp.net-mvc pdf razor pdf-generation


    【解决方案1】:

    您可以使用 iTextSharp 将 HTML 转换为 PDF。您可能会关注 CodeProject 上的详细信息和 tutorial。它说明了如何使用 iTextSharp 将 ASP.NET MVC 视图作为 PDF 文件进行转换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多