我想在pdf报告中分页,从mvc3 razor视图到pdf

时间:2014-09-25 07:18:53

标签: css asp.net-mvc asp.net-mvc-3 pdf

我在mvc3 razor视图中工作。我从下面的mvc3 razor视图创建pdf报告是我的控制器代码。

public ActionResult PReqDocPrint()
    {
        List<PReqPrintModel> Rec = new List<PReqPrintModel> { };

        Rec = PReqPrint("", "", "");

        return this.ViewPdf("Purchase Requisition", "PReqDocPrint", Rec);
      }

我通过存储过程从数据库中获取数据并返回到控制器 我的观点代码如下。

 @model IEnumerable<CBS.Models.PReqPrintModel>


    @{

    Layout = "~/Views/Shared/_LayoutForPrints.cshtml";
    }


    <table border="1" >
    <tr>
    <td>
    <h2 style="text-align:center; font-family:Times New Roman;">Purchase Requisition</h2>
    </td>
    </tr>
    </table>


    <div  style="color:Black;border-width:0px 1px 1px 0px;font-size:8px; font-weight:normal; page-break-before:always;">

    @{
    var OddColor = "#aaaaff";
    var evenColor = "#EEFFFF";
    var Odd = OddColor;
    var eve = evenColor;
    }
    <table style="font-family:Times New Roman; font-size:small">  
    @foreach (var doc in Model.GroupBy(d => d.PReqNo))
    {
    foreach (var pre in doc)
    {        
    <tr style="border:1;">
    <td>
    Purchase Requisition:     @Html.Encode(pre.PReqNo)
    </td>
    <td>
    Purchase Date: @String.Format("{0:dd/MM/yyyy}", @Html.Encode(pre.PReqDate.Date))
    </td>
    </tr>
    <tr style="border:1;">
    <td>
    Store Location:     @Html.Encode(pre.StName)
    </td>
    <td>
    Department: @Html.Encode(pre.DeptName)
    </td>
    </tr>
    <tr style="border:1;">
    <td>
    Remarks:  @Html.Encode(pre.RefRemarks)
    </td>
    <td></td>
    </tr>
    }
    <tr >
    <td colspan="2">
    <table border="1"  style="color:Black;border-width:0px 1px 1px 0px;font-size:8px;font-family:Helvetica;font-weight:normal;">  
    <tr style="background-color:#7070a0; font-weight:bold; color:Black; border:1;"   >
    <td align="left">
    Code
    </td>
    <td align="left">
    Description
    </td>
    <td align="left">
    Unit
    </td>
    <td align="left">
    Part No
    </td>
    <td align="left">
    Lot No
    </td>
    <td align="left">
    Item Remarks
    </td>
    <td align="right">
    Quantity
    </td>
           <td align="right">
            Amount

        </td>

    </tr>  




        @foreach (var item in doc)
    {

           <tr bgcolor="@Odd"> 


         <td align="left">
       @Html.Encode(item.ItemCode)  

         </td>
       <td align="left">
       @Html.Encode(item.ItemDesc)  
         </td>
    <td align="left">
       @Html.Encode(item.Units)
       </td>
    <td align="left">
       @Html.Encode(item.PartNo)
       </td>
       <td align="left">
       @Html.Encode(item.LotNo)
       </td>
       <td align="left">
       @Html.Encode(item.Remarks)
       </td>
        <td align="right">
       @Html.Encode(item.QtyIN)
       </td>    
    <td align="right">
       @Html.Encode(item.Qty)
       </td>
         </tr>     

    }
    if (Odd == OddColor)
    {
        Odd = evenColor;
    }
    else
    {
        Odd = OddColor;
    }

    }            
    </table>
    </td>

     </tr>
    }
    </table> 
        </div>


<div class="break"></div>

以下是从视图中返回的PDF结果图像 enter image description here

这里我想开始新的PDF页面当第二个采购申请号2014030001开始时。任何人请帮助我。 我已经尝试使用内联CSS进行分页或者表页分解:始终;并尝试使用page-break-before的单独div标签:always;但是没有任何东西可以获得我所需的结果。

此外,它不会在PDF视图中应用单独的样式表格式。

0 个答案:

没有答案