这篇文章主要介绍使用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. 使用 Intellij Idea 导出JavaDoc

    使用/* ...... /来注释代码,解释方法参数,返回参数,类的功能及用法. 常用的注释标签: @author 作者 @version 版本 @see 参考转向 @param 参数说明 @retur ...

  2. PacketiX VPN搭建企业VPN

    参考资料:http://jingyan.baidu.com/article/9989c746043c44f649ecfe69.html

  3. c# 文件夾操作

    #region 圖片對應異動           string newFilePath = "~/FileUpLoad/Book/" + bookModel.BookNo;     ...

  4. redis-redigo及redis存储时间问题测试

    package main import ( "log" "github.com/garyburd/redigo/redis" "github.com/ ...

  5. mysql之预处理语句prepare、execute、deallocate

    预制语句的SQL语法基于三个SQL语句: PREPARE stmt_name FROM preparable_stmt; EXECUTE stmt_name [USING @var_name [, @ ...

  6. TortoiseSVN-1.8.11 安装时弹出2503错误导致安装失败解决办法

    这个问题主要是由于msi格式文件在win8中默认不是以管理员身份运行造成,可通过命令行解决: 右键单击win8左下角启动图标,选择命令提示符(管理员): 输入:msiexec /package 要安装 ...

  7. An unknown error occurred & “”的 iPhone is busy: Processing symbol files

    An unknown error occurred & ""的 iPhone is busy: Processing symbol files An unknown err ...

  8. JS打印页面

         打印 整个html页面(PS:样式要写在页面里面才能打印(就是用内部样式))             <a id="dayi" runat="server ...

  9. iOS 判断电话号 几种方法

    1.方法一 - (BOOL)isMobileNumber:(NSString *)mobileNum { /** * 手机号码 * 移动:134[0-8],135,136,137,138,139,15 ...

  10. SDK,monkey 浅谈

    最近在工作之余碰到一些手机测试的新手,现在测试手机的基本都是android的系统. 然后在遇到压力测试的时候就开始遇到问题了. 压力测试用什么工具?怎么使用?工具怎么来? 今天遇到两个人都问我SDK是 ...