2016-07-02 21 views
0

私はmvcビューを持っており、データベースからのデータを使用してこのビューをPDFファイルに生成したいと考えています。私はRotativaを使用しないでください。ビューからPDFを生成

どうすればいいですか?これには簡単な解決策がありますか?

これが私の見解では、請求書の詳細を表示することです:

@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> 
        <[email protected](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

iTextSharpを使用して、HTMLからPDFへの変換を行うことができます。 CodeProjectには詳細なtutorialがあります。これは、変換のためにiTextSharpを使用してASP.NET MVCビューをPDFファイルとして提供する方法を示しています。