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

关于RazorPDF

这个Nuget Package由Al Nyveldt创建。它内部使用ITextSharp。RazorPDF使用Razor视图引擎创建iTextXML,iTextXML用来生成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 List的Action的控制器,名字叫做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 = ; i <= ; 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 = ; i <= ; 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

MVC中使用RazorPDF创建PDF的更多相关文章

  1. MVC中使用代码创建数据库(code first +mysql+EF)

    1.新建一个mvc项目 2.安装mysql需要的几个文件 EntityFramework.MySql.Data(6.9.12)和MySql.Data.Entity (6.9.12) 这里有几点要注意 ...

  2. 使用Rotativa在ASP.NET Core MVC中创建PDF

    在本文中,我们将学习如何使用Rotativa.AspNetCore工具从ASP.NET Core中的视图创建PDF.如果您使用ASP.NET MVC,那么Rot​​ativa工具已经可用,我们可以使用 ...

  3. NET Core MVC中创建PDF

    使用Rotativa在ASP.NET Core MVC中创建PDF 在本文中,我们将学习如何使用Rotativa.AspNetCore工具从ASP.NET Core中的视图创建PDF.如果您使用ASP ...

  4. ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下

    ADO.NET   一.ADO.NET概要 ADO.NET是.NET框架中的重要组件,主要用于完成C#应用程序访问数据库 二.ADO.NET的组成 ①System.Data  → DataTable, ...

  5. C#中如何创建PDF网格并插入图片

    这篇文章我将向大家演示如何以编程的方式在PDF文档中创建一个网格,并将图片插入特定的网格中. 网上有一些类似的解决方法,在这里我选择了一个免费版的PDF组件.安装控件后,创建新项目,添加安装目录下的d ...

  6. ABBYY PDF Transformer+从文件选项中创建PDF文档的教程

    可使用OCR文字识别软件ABBYY PDF Transformer+从Microsoft Word.Microsoft Excel.Microsoft PowerPoint.HTML.RTF.Micr ...

  7. 怎么用OCR图文识别软件在MS Office中创建PDF文件

    ABBYY PDF Transformer+是一款可创建.编辑及将PDF文件转换为其他可编辑格式的OCR图文识别软件,不仅可以从纸质文档.图像文件和任何其他流行格式创建PDF文件(相关文章请参考如何从 ...

  8. MVC中使用EF(1):为ASP.NET MVC程序创建Entity Framework数据模型

    为ASP.NET MVC程序创建Entity Framework数据模型 (1 of 10) By  Tom Dykstra |July 30, 2013 Translated by litdwg   ...

  9. 在.NET中使用iTextSharp创建/读取PDF报告: Part I [翻译]

    原文地址:Create/Read Advance PDF Report using iTextSharp in C# .NET: Part I    By Debopam Pal, 27 Nov 20 ...

随机推荐

  1. 0601 Spring2.0 发布会

    ProductBacklog:继续向下细化; 1.界面美化,统一界面风格,以简洁美观为主: 2.丰富版面的内容,吸引用户: 3.尝试增加新的版面: Sprint 计划会议:确定此次冲刺要完成的目标 1 ...

  2. 多台web如何共享session进行存储(转载)

    session的存储了解以前是怎么做的,搞清楚了来龙去脉,才会明白进行共享背后的思想和出发点.我喜欢按照这样的方式来问(或者去搞清楚):为什么要session要进行共享,不共享会什么问题呢? php中 ...

  3. Prefab强制使用文本模式

    [Prefab强制使用文本模式] Edit -> ProjectSetting -> Editor:

  4. [2015hdu多校联赛补题]hdu5302 Connect the Graph

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5302 题意:给你一个无向图,它的边要么是黑色要么是白色,且图上的每个点最多与两个黑边两个白边相连.现在 ...

  5. ubuntu 16.04软件源

    来源:模板:16.04source   deb http://cn.archive.ubuntu.com/ubuntu/ xenial main restricted universe multive ...

  6. 编辑器sublime text3 破解码

    第一段亲测有效 —– BEGIN LICENSE —–Ryan ClarkSingle User LicenseEA7E-8124792158A7DE B690A7A3 8EC04710 006A5E ...

  7. XML的Pull解析

    //通过xml解析串    private void XMLtoStr(String result) {        News news=null;        try {             ...

  8. iptables配置允许vpnserver(softether vpn)

    防火墙配置 -A INPUT -p udp -m multiport --dport ,,,, -j ACCEPT

  9. ReferenceQueue的使用

    转:http://www.iflym.com/index.php/java-programe/201407140001.html 1 何为ReferenceQueue 在java的引用体系中,存在着强 ...

  10. 检查python模块是否成功安装

    例如,检查HTMLTestRunner模块是否成功安装(血淋淋的例子) 一个模块未成功安装,在直接运行python程序是不会报错,但是会提示类似于以下的错误 AttributeError: 'xxxx ...