在ASP.NET Core MVC开发中,有时我们需要为用户提供方便地下载或打印网页内容为PDF文档的功能。为此,可以使用第三方库Rotativa.AspNetCore。Rotativa是一个基于WebKit的库,它能够将HTML视图转换为高质量的PDF文档。在本文中,我们将详细介绍如何在ASP.NET Core MVC项目中集成并使用Rotativa来创建PDF。 你需要通过NuGet包管理器安装Rotativa.AspNetCore包。在Package Manager Console中运行以下命令: ```bash Install-Package Rotativa.AspNetCore ``` 接下来,在`Startup.cs`文件的`Configure`方法中配置Rotativa。我们需要告诉Rotativa在哪里找到wkhtmltopdf.exe文件,这是它用来生成PDF的核心工具。通常,你可以将这个文件放在项目的wwwroot目录下,并在`Configure`方法中设置其路径: ```csharp public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // ...其他配置 // 配置Rotativa.AspNetCore RotativaConfiguration.Setup(env); } ``` 创建一个新的控制器,如`DemoController`,并添加一个`HttpGet`方法,使用`ViewAsPdf`返回类型来生成PDF。这将从指定的视图(在这里是"DemoViewAsPdf")生成PDF: ```csharp public class DemoController : Controller { [HttpGet] public IActionResult DemoViewAsPdf() { return new ViewAsPdf("DemoViewAsPdf"); } } ``` 接下来,创建一个名为`DemoViewAsPdf.cshtml`的视图文件,并在其中添加基本的HTML内容,比如: ```html @{ ViewData["Title"] = "DemoViewAsPdf"; } <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Demo</title> </head> <body> <p>Hello AspNetCore!!</p> </body> </html> ``` 现在,你可以通过访问`http://localhost:55999/Demo/DemoViewAsPdf`来测试生成的PDF。默认情况下,Rotativa会将整个视图内容渲染为PDF。 此外,Rotativa还允许你对生成的PDF进行更复杂的定制。例如,你可以调整页面的边距。这可以通过创建一个`Margins`对象并在`ViewAsPdf`方法中设置它来实现: ```csharp [HttpGet] public IActionResult DemoViewAsPdf() { return new ViewAsPdf("DemoPageMarginsPDF") { PageMargins = { Left = 20, Bottom = 20, Right = 20, Top = 20 }, }; } ``` 这里,我们设置了页面的四周边距为20像素。你可以根据需求自定义这些值。 除此之外,Rotativa还支持其他高级功能,如设置PDF元数据、定义纸张大小和方向、添加CSS样式表、甚至嵌入JavaScript代码以在PDF生成时执行。这些都是通过在`ViewAsPdf`实例上设置相应的属性来完成的。 Rotativa.AspNetCore是一个强大的库,可以帮助ASP.NET Core MVC开发者轻松地将HTML视图转换为PDF文档。通过简单配置和视图调用,您可以创建高质量的PDF,满足用户下载和打印的需求。结合其他高级特性,你可以进一步定制PDF输出,使其符合特定的业务需求。




















剩余11页未读,继续阅读


- 粉丝: 1w+
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- Awesome-algorithm-interview-技术岗春招笔试/面试资源
- lnmp-mysql安装配置教程资源
- JNotepad-活动资源
- xASM-汇编语言资源
- AAGUI-C++资源
- MicroCommunity-Java资源
- python-office-Python资源
- 基于matlab的小工程-Matlab资源
- weChatRobot-机器人开发资源
- 【电子电路设计】运放三角波发生器在Proteus中呼吸灯电路的仿真与优化:问题分析及改进措施
- acp-admin-cloud-Kotlin资源
- modelcontextprotocol_specification-AI人工智能资源
- skywu520codelib-单片机开发资源
- lunar-javascript-JavaScript资源
- diboot-SQL资源
- Friday-毕业设计资源


