这篇文章主要介绍使用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. regular expressions

  2. VC++ 用setsockopt()来控制recv()与send()的超时

    在send(),recv()过程中有时由于网络状况等原因,收发不能预期进行,而设置收发超时控制: 以下是来自于网上一篇文章中的摘录,它是这样写的: ;//1秒, //设置发送超时 setsockopt ...

  3. VC++绘图时,利用双缓冲解决屏幕闪烁 转载

    最近做中国象棋,绘制界面时遇到些问题,绘图过程中屏幕闪烁,估计都会想到利用双缓冲来解决问题,但查了下网上双缓冲的资料,发现基本是MFC的,转化为VC++后,大概代码如下: void DrawBmp(H ...

  4. ArrayEasyFinish

    (1)Plus One 解题思路:模拟现实中做加法的方式,在个位加一,并考虑进位的情况.代码如下: public class Solution { public int[] plusOne(int[] ...

  5. Oracle SQL优化一(常见方法)

    1.表访问方式优化: a)普通表优先“Index Lookup 索引扫描”,避免全表扫描 大多数场景下,通过“Index Lookup 索引扫描”要比“Full Table Scan (FTS) 全表 ...

  6. Linux编程下EAGAIN和EINTR宏的含义及处理

    Linux中的EAGAIN含义   在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中). linux下使用write\send ...

  7. 《机器学习实战》学习笔记——第2章 KNN

    一. KNN原理: 1. 有监督的学习 根据已知事例及其类标,对新的实例按照离他最近的K的邻居中出现频率最高的类别进行分类.伪代码如下: 1)计算已知类别数据集中的点与当前点之间的距离 2)按照距离从 ...

  8. android 编译错误 com/android/dx/command/dexer/Main : Unsupported major.minor version 52.0

    解决方案一: JDK版本不一致造成的,指的是高版本的JDK编译的class不能放在低版本的JDK上运行. 如果是Version 52,就表示JDK8编译的class不能运行在JDK7上,所以需要在本地 ...

  9. java多线程学习-开篇

    1.Java线程基本概念 在操作系统中两个比较容易混淆的概念是进程(process)和线程(thread).操作系统中的进程是资源的组织单位.进程有一个包含了程序内容和数据的地址空间,以及其它的资源, ...

  10. Java Web的开始学习

    今天开始学习Web了,需要的前提技能是  XML ,我还不太熟悉,今天的任务需要熟悉一下 XML-- 输入输出流  I/O     序列化反序列化,也需要看一下,我看这两块会有用到. 任务: ---- ...