MVC中使用RazorPDF创建PDF

这篇文章主要介绍使用Nuget package中的RazorPDF简单的创建PDF的方法。

 

关于RazorPDF

这个Nuget PackageAl Nyveldt创建。它内部使用ITextSharp。RazorPDF使用Razor视图引擎创建iTextXMLiTextXML用来生成PDF文件。如果你想了解更多的关于RazorPDF的情况,可以访问:

https://www.nuget.org/packages/RazorPDF

 

下面举个例子使用RazorPDF

1、首先创建一个MVC项目

 

2、使用Nuget安装RazorPDF Package

 

3、创建一个Customer Model

namespacePDFDemor.Models
{
    publicclassCustomer
    {
        publicintCustomerID {get;set; }

        publicstringFirstName {get;set; }

        publicstringLastName {get;set; }
    }
}

4、创建一个包含返回Costomer ListAction的控制器,名字叫做CustomerController 

 

接着在Index中编写返回List的代码,

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.Mvc;
usingPDFDemo.Models;

namespacePDFDemo.Controllers
{
    publicclassCustomerController : Controller
    {
        //

        // GET: /Customer/

        publicActionResult Index()
        {
            List<Customer> customers=newList<Customer>();

            for(inti = 1; i <= 10; i++)
            {
                Customer customer =newCustomer
                {
                    CustomerID = i,
                    FirstName =string.Format("FirstName{0}", i.ToString()),
                    LastName =string.Format("LastName{0}", i.ToString())
                };
                customers.Add(customer);
            }
            returnView(customers);
        }
    }
}

 

然后给这个Index创建一个List视图,

 

创建完视图之后,浏览之后的结果如下:

 

5、添加生成PDF文档的功能

以上都是铺垫啊,这里才是本文的重点啊。

在控制器中添加一个新的Action取名叫做“PDF”,返回RazorPDF.pdfResult

publicActionResult PDF()
{
    List<Customer> customers =newList<Customer>();

    for(inti = 1; i <= 10; i++)
    {
        Customer customer =newCustomer
        {
            CustomerID = i,
            FirstName =string.Format("FirstName{0}", i.ToString()),
            LastName =string.Format("LastName{0}", i.ToString())

        };
        customers.Add(customer);
    }
    return new RazorPDF.PdfResult(customers,"PDF"); // 注意这里,这里返回的是一个RazorPDF.PdfResult
}

 

然后给这个Action添加视图,

@model List<PDFDemo.Models.Customer>

@{
    Layout = null;
}

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <h2>Html List in PDF</h2>
    <tablewidth="100%">
        <tr>
            <td>First Name</td>
            <td>Last Name</td>
        </tr>
        @foreach (var item in Model)
        {
            <tr>
                <td>@item.FirstName</td>
                <td>@item.LastName</td>
            </tr>
        }
    </table>
</body>
</html>

浏览的结果如下:

 

总结

本文使用RazorPDF创建了一个简单的PDF页面,从当前的使用来看,使用RazorPDF穿件PDF还是挺简单的。如果大家想更多的查看RazorPDF的例子,可以访问:

https://github.com/RazorAnt/RazorPDFSample

 

原文链接:http://www.dotnetjalps.com/2013/06/Creating-PDF-with-ASP-Net-MVC-and-RazorPDF.html

posted @ 2013-06-18 10:05  acles  阅读(2554)  评论(3编辑  收藏  举报