我有一个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>
我如何解决这个问题?
答案 0 :(得分:0)
您可以使用iTextSharp将HTML转换为PDF。您可能会遵循详细的tutorial CodeProject。它说明了如何使用iTextSharp将ASP.NET MVC视图作为PDF文件提供转换。